Class Stax2FilteredEventReader

  • All Implemented Interfaces:
    java.util.Iterator<java.lang.Object>, javax.xml.stream.XMLEventReader, javax.xml.stream.XMLStreamConstants, XMLEventReader2

    public class Stax2FilteredEventReader
    extends java.lang.Object
    implements XMLEventReader2, javax.xml.stream.XMLStreamConstants

    Some notes about implemention:

    • There is no way to filter out values of peek(), so we'll just straight dispatch the call to underlying reader
    • Field Summary

      • Fields inherited from interface javax.xml.stream.XMLStreamConstants

        ATTRIBUTE, CDATA, CHARACTERS, COMMENT, DTD, END_DOCUMENT, END_ELEMENT, ENTITY_DECLARATION, ENTITY_REFERENCE, NAMESPACE, NOTATION_DECLARATION, PROCESSING_INSTRUCTION, SPACE, START_DOCUMENT, START_ELEMENT
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      java.lang.String getElementText()  
      java.lang.Object getProperty​(java.lang.String name)  
      boolean hasNext()  
      boolean hasNextEvent()
      Method that is similar to XMLEventReader.hasNext(), except that it can throw a XMLStreamException.
      boolean isPropertySupported​(java.lang.String name)
      Method similar to XMLInputFactory.isPropertySupported(java.lang.String), used to determine whether a property is supported by the Reader instance.
      java.lang.Object next()  
      javax.xml.stream.events.XMLEvent nextEvent()  
      javax.xml.stream.events.XMLEvent nextTag()  
      javax.xml.stream.events.XMLEvent peek()
      This is bit tricky to implement, but it should filter out events just as nextEvent() would.
      void remove()
      Note: only here because we implement Iterator interface
      boolean setProperty​(java.lang.String name, java.lang.Object value)
      Method that can be used to set per-reader properties; a subset of properties one can set via matching XMLInputFactory2 instance.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.util.Iterator

        forEachRemaining
    • Constructor Detail

      • Stax2FilteredEventReader

        public Stax2FilteredEventReader​(XMLEventReader2 r,
                                        javax.xml.stream.EventFilter f)
    • Method Detail

      • close

        public void close()
                   throws javax.xml.stream.XMLStreamException
        Specified by:
        close in interface javax.xml.stream.XMLEventReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getElementText

        public java.lang.String getElementText()
                                        throws javax.xml.stream.XMLStreamException
        Specified by:
        getElementText in interface javax.xml.stream.XMLEventReader
        Throws:
        javax.xml.stream.XMLStreamException
      • getProperty

        public java.lang.Object getProperty​(java.lang.String name)
        Specified by:
        getProperty in interface javax.xml.stream.XMLEventReader
      • hasNext

        public boolean hasNext()
        Specified by:
        hasNext in interface java.util.Iterator<java.lang.Object>
        Specified by:
        hasNext in interface javax.xml.stream.XMLEventReader
      • nextEvent

        public javax.xml.stream.events.XMLEvent nextEvent()
                                                   throws javax.xml.stream.XMLStreamException
        Specified by:
        nextEvent in interface javax.xml.stream.XMLEventReader
        Throws:
        javax.xml.stream.XMLStreamException
      • next

        public java.lang.Object next()
        Specified by:
        next in interface java.util.Iterator<java.lang.Object>
      • nextTag

        public javax.xml.stream.events.XMLEvent nextTag()
                                                 throws javax.xml.stream.XMLStreamException
        Specified by:
        nextTag in interface javax.xml.stream.XMLEventReader
        Throws:
        javax.xml.stream.XMLStreamException
      • peek

        public javax.xml.stream.events.XMLEvent peek()
                                              throws javax.xml.stream.XMLStreamException
        This is bit tricky to implement, but it should filter out events just as nextEvent() would.
        Specified by:
        peek in interface javax.xml.stream.XMLEventReader
        Throws:
        javax.xml.stream.XMLStreamException
      • remove

        public void remove()
        Note: only here because we implement Iterator interface
        Specified by:
        remove in interface java.util.Iterator<java.lang.Object>
      • hasNextEvent

        public boolean hasNextEvent()
                             throws javax.xml.stream.XMLStreamException
        Description copied from interface: XMLEventReader2
        Method that is similar to XMLEventReader.hasNext(), except that it can throw a XMLStreamException. This is important distinction, since the underlying stream reader is NOT allowed to throw such an exception when its hasNext() gets called; but the underlying parser may well need to advance the input stream and in doing so may encounter an exception. This exception should be propagated to the caller, as it may signal a problem with the input stream or xml content.
        Specified by:
        hasNextEvent in interface XMLEventReader2
        Throws:
        javax.xml.stream.XMLStreamException
      • isPropertySupported

        public boolean isPropertySupported​(java.lang.String name)
        Description copied from interface: XMLEventReader2
        Method similar to XMLInputFactory.isPropertySupported(java.lang.String), used to determine whether a property is supported by the Reader instance. This means that this method may return false for some properties that the input factory does support: specifically, it should only return true if the value is mutable on per-instance basis. False means that either the property is not recognized, or is not mutable via reader instance.
        Specified by:
        isPropertySupported in interface XMLEventReader2
      • setProperty

        public boolean setProperty​(java.lang.String name,
                                   java.lang.Object value)
        Description copied from interface: XMLEventReader2
        Method that can be used to set per-reader properties; a subset of properties one can set via matching XMLInputFactory2 instance. Exactly which methods are mutable is implementation specific.
        Specified by:
        setProperty in interface XMLEventReader2
        Parameters:
        name - Name of the property to set
        value - Value to set property to.
        Returns:
        True, if the specified property was succesfully set to specified value; false if its value was not changed