Class Stax2Source

  • All Implemented Interfaces:
    Source
    Direct Known Subclasses:
    Stax2BlockSource, Stax2ReferentialSource

    public abstract class Stax2Source
    extends Object
    implements Source
    This is the base class for additional input sources (implementations of Source) that Stax2 XMLInputFactory2 implementations should support.

    Note about usage by the parser factory implementations: the expectation is that at least one of methods constructReader() and constructInputStream() will succeed, but not necessarily both. This generally depends on type of resource being represented: for example, if the source is a String or character array, it is most naturally represent via Reader. For a byte array, on the other hand, an InputStream is the most natural access method.

    Other things to note about using result Readers and InputStreams:

    • Caller is responsible for closing any Reader and InputStream instances requested. That is, caller owns these accessor objects.
    • Source objects are only required to return a non-null object once: after this, if new non-null instances are returned, they must not be the same objects as returned earlier. Implementations can choose to construct new instances to the same backing data structure or resource; if so, they should document this behavior.
    • Field Detail

      • mSystemId

        protected String mSystemId
      • mPublicId

        protected String mPublicId
      • mEncoding

        protected String mEncoding
    • Constructor Detail

      • Stax2Source

        protected Stax2Source()
    • Method Detail

      • getPublicId

        public String getPublicId()
      • setPublicId

        public void setPublicId​(String id)
      • getEncoding

        public String getEncoding()
      • setEncoding

        public void setEncoding​(String enc)
      • getReference

        public abstract URL getReference()
        Returns:
        URL that can be used to resolve references originating from the content read via this source; may be null if not known (which is the case for most non-referential sources)
      • constructReader

        public abstract Reader constructReader()
                                        throws IOException
        This method creates a Reader via which underlying input source can be accessed. Note that caller is responsible for closing that Reader when it is done reading it.
        Throws:
        IOException
      • constructInputStream

        public abstract InputStream constructInputStream()
                                                  throws IOException
        This method creates an InputStream via which underlying input source can be accessed. Note that caller is responsible for closing that InputSource when it is done reading it
        Throws:
        IOException