info.bioinfweb.jphyloio.formats.xml.stax

## Class MetaXMLStreamReader

- java.lang.Object
- - info.bioinfweb.jphyloio.formats.xml.stax.AbstractMetaXMLReader
  - - info.bioinfweb.jphyloio.formats.xml.stax.MetaXMLStreamReader

- All Implemented Interfaces:
    javax.xml.stream.XMLStreamConstants, javax.xml.stream.XMLStreamReader

      public class MetaXMLStreamReader
      extends AbstractMetaXMLReader
      implements javax.xml.stream.XMLStreamReader

  Adapter class that allows reading a sequence of `LiteralMetadataContentEvent`s using an `XMLStreamReader`. Instances of this class should not (and cannot) be created directly in application code, but `JPhyloIOXMLEventReader.createMetaXMLStreamReader()` should be used instead.

  Since it is registered which events are read from the event stream, it is possible to read only a part of the custom XML tree with this reader, while the rest is read using the original `JPhyloIOEventReader`.

  Note that all methods intended to obtain information about the document start refer to the start of the whole document, not only the custom XML tree.

  Methods of this reader referring to element text as a character array , e.g. `getTextCharacters()`, all work on a string representation obtained from a characters event. The usual performance benefits in using these character array based methods do not apply for this implementation, since it works on an underlying instance of `JPhyloIOEventReader`.

  Author:
    Sarah Wiechers, Ben Stöver

- - ### 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`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MetaXMLStreamReader(XMLReaderStreamDataProvider<?> streamDataProvider)` Creates a new instance of this class.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getAttributeCount()`
    `java.lang.String` | `getAttributeLocalName(int index)`
    `javax.xml.namespace.QName` | `getAttributeName(int index)`
    `java.lang.String` | `getAttributeNamespace(int index)`
    `java.lang.String` | `getAttributePrefix(int index)`
    `java.lang.String` | `getAttributeType(int index)`
    `java.lang.String` | `getAttributeValue(int index)`
    `java.lang.String` | `getAttributeValue(java.lang.String namespaceURI, java.lang.String localName)`
    `java.lang.String` | `getCharacterEncodingScheme()`
    `java.lang.String` | `getElementText()`
    `java.lang.String` | `getEncoding()`
    `int` | `getEventType()`
    `java.lang.String` | `getLocalName()`
    `javax.xml.stream.Location` | `getLocation()`
    `javax.xml.namespace.QName` | `getName()`
    `javax.xml.namespace.NamespaceContext` | `getNamespaceContext()`
    `int` | `getNamespaceCount()`
    `java.lang.String` | `getNamespacePrefix(int index)`
    `java.lang.String` | `getNamespaceURI()`
    `java.lang.String` | `getNamespaceURI(int index)`
    `java.lang.String` | `getNamespaceURI(java.lang.String prefix)`
    `java.lang.String` | `getPIData()`
    `java.lang.String` | `getPITarget()`
    `java.lang.String` | `getPrefix()`
    `java.lang.String` | `getText()`
    `char[]` | `getTextCharacters()`
    `int` | `getTextCharacters(int sourceStart, char[] target, int targetStart, int length)`
    `int` | `getTextLength()`
    `int` | `getTextStart()`
    `java.lang.String` | `getVersion()`
    `boolean` | `hasName()`
    `boolean` | `hasText()`
    `boolean` | `isAttributeSpecified(int index)`
    `boolean` | `isCharacters()`
    `boolean` | `isEndElement()`
    `boolean` | `isStandalone()`
    `boolean` | `isStartElement()`
    `boolean` | `isWhiteSpace()`
    `int` | `next()`
    `int` | `nextTag()`
    `void` | `require(int type, java.lang.String namespaceURI, java.lang.String localName)`
    `boolean` | `standaloneSet()`

    - ### Methods inherited from class info.bioinfweb.jphyloio.formats.xml.stax.AbstractMetaXMLReader

      `close, getEventFactory, getJPhyloIOEventReader, getProperty, getStreamDataProvider, hasNext, isEndDocumentFired, isEndReached, isStartDocumentFired, obtainXMLContentEvent, setEndDocumentFired, setEndReached, setStartDocumentFired`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface javax.xml.stream.XMLStreamReader

      `close, getProperty, hasNext`

- - ### Constructor Detail

    - #### MetaXMLStreamReader

          public MetaXMLStreamReader(XMLReaderStreamDataProvider<?> streamDataProvider)

      Creates a new instance of this class. Application code should not use this constructor directly, but use `JPhyloIOXMLEventReader.createMetaXMLStreamReader()` instead.
      Parameters:
        `streamDataProvider` - the stream data provider of the underlying `JPhyloIOEventReader`

  - ### Method Detail

    - #### getAttributeCount

          public int getAttributeCount()

      Specified by:
        `getAttributeCount` in interface `javax.xml.stream.XMLStreamReader`

    - #### getAttributeLocalName

          public java.lang.String getAttributeLocalName(int index)

      Specified by:
        `getAttributeLocalName` in interface `javax.xml.stream.XMLStreamReader`

    - #### getAttributeName

          public javax.xml.namespace.QName getAttributeName(int index)

      Specified by:
        `getAttributeName` in interface `javax.xml.stream.XMLStreamReader`

    - #### getAttributeNamespace

          public java.lang.String getAttributeNamespace(int index)

      Specified by:
        `getAttributeNamespace` in interface `javax.xml.stream.XMLStreamReader`

    - #### getAttributePrefix

          public java.lang.String getAttributePrefix(int index)

      Specified by:
        `getAttributePrefix` in interface `javax.xml.stream.XMLStreamReader`

    - #### getAttributeType

          public java.lang.String getAttributeType(int index)

      Specified by:
        `getAttributeType` in interface `javax.xml.stream.XMLStreamReader`

    - #### getAttributeValue

          public java.lang.String getAttributeValue(int index)

      Specified by:
        `getAttributeValue` in interface `javax.xml.stream.XMLStreamReader`

    - #### getAttributeValue

          public java.lang.String getAttributeValue(java.lang.String namespaceURI,
                                                    java.lang.String localName)

      Specified by:
        `getAttributeValue` in interface `javax.xml.stream.XMLStreamReader`

    - #### getCharacterEncodingScheme

          public java.lang.String getCharacterEncodingScheme()

      Specified by:
        `getCharacterEncodingScheme` in interface `javax.xml.stream.XMLStreamReader`

    - #### getElementText

          public java.lang.String getElementText()
                                          throws javax.xml.stream.XMLStreamException

      Specified by:
        `getElementText` in interface `javax.xml.stream.XMLStreamReader`
      Throws:
        `javax.xml.stream.XMLStreamException`

    - #### getEncoding

          public java.lang.String getEncoding()

      Specified by:
        `getEncoding` in interface `javax.xml.stream.XMLStreamReader`

    - #### getEventType

          public int getEventType()

      Specified by:
        `getEventType` in interface `javax.xml.stream.XMLStreamReader`

    - #### getLocalName

          public java.lang.String getLocalName()

      Specified by:
        `getLocalName` in interface `javax.xml.stream.XMLStreamReader`

    - #### getLocation

          public javax.xml.stream.Location getLocation()

      Specified by:
        `getLocation` in interface `javax.xml.stream.XMLStreamReader`

    - #### getName

          public javax.xml.namespace.QName getName()

      Specified by:
        `getName` in interface `javax.xml.stream.XMLStreamReader`

    - #### getNamespaceContext

          public javax.xml.namespace.NamespaceContext getNamespaceContext()

      Specified by:
        `getNamespaceContext` in interface `javax.xml.stream.XMLStreamReader`

    - #### getNamespaceCount

          public int getNamespaceCount()

      Specified by:
        `getNamespaceCount` in interface `javax.xml.stream.XMLStreamReader`

    - #### getNamespacePrefix

          public java.lang.String getNamespacePrefix(int index)

      Specified by:
        `getNamespacePrefix` in interface `javax.xml.stream.XMLStreamReader`

    - #### getNamespaceURI

          public java.lang.String getNamespaceURI()

      Specified by:
        `getNamespaceURI` in interface `javax.xml.stream.XMLStreamReader`

    - #### getNamespaceURI

          public java.lang.String getNamespaceURI(int index)

      Specified by:
        `getNamespaceURI` in interface `javax.xml.stream.XMLStreamReader`

    - #### getNamespaceURI

          public java.lang.String getNamespaceURI(java.lang.String prefix)

      Specified by:
        `getNamespaceURI` in interface `javax.xml.stream.XMLStreamReader`

    - #### getPIData

          public java.lang.String getPIData()

      Specified by:
        `getPIData` in interface `javax.xml.stream.XMLStreamReader`

    - #### getPITarget

          public java.lang.String getPITarget()

      Specified by:
        `getPITarget` in interface `javax.xml.stream.XMLStreamReader`

    - #### getPrefix

          public java.lang.String getPrefix()

      Specified by:
        `getPrefix` in interface `javax.xml.stream.XMLStreamReader`

    - #### getText

          public java.lang.String getText()

      Specified by:
        `getText` in interface `javax.xml.stream.XMLStreamReader`

    - #### getTextCharacters

          public char[] getTextCharacters()

      Specified by:
        `getTextCharacters` in interface `javax.xml.stream.XMLStreamReader`

    - #### getTextCharacters

          public int getTextCharacters(int sourceStart,
                                       char[] target,
                                       int targetStart,
                                       int length)
                                throws javax.xml.stream.XMLStreamException

      Specified by:
        `getTextCharacters` in interface `javax.xml.stream.XMLStreamReader`
      Throws:
        `javax.xml.stream.XMLStreamException`

    - #### getTextLength

          public int getTextLength()

      Specified by:
        `getTextLength` in interface `javax.xml.stream.XMLStreamReader`

    - #### getTextStart

          public int getTextStart()

      Specified by:
        `getTextStart` in interface `javax.xml.stream.XMLStreamReader`

    - #### getVersion

          public java.lang.String getVersion()

      Specified by:
        `getVersion` in interface `javax.xml.stream.XMLStreamReader`

    - #### hasName

          public boolean hasName()

      Specified by:
        `hasName` in interface `javax.xml.stream.XMLStreamReader`

    - #### hasText

          public boolean hasText()

      Specified by:
        `hasText` in interface `javax.xml.stream.XMLStreamReader`

    - #### isAttributeSpecified

          public boolean isAttributeSpecified(int index)

      Specified by:
        `isAttributeSpecified` in interface `javax.xml.stream.XMLStreamReader`

    - #### isCharacters

          public boolean isCharacters()

      Specified by:
        `isCharacters` in interface `javax.xml.stream.XMLStreamReader`

    - #### isEndElement

          public boolean isEndElement()

      Specified by:
        `isEndElement` in interface `javax.xml.stream.XMLStreamReader`

    - #### isStandalone

          public boolean isStandalone()

      Specified by:
        `isStandalone` in interface `javax.xml.stream.XMLStreamReader`

    - #### isStartElement

          public boolean isStartElement()

      Specified by:
        `isStartElement` in interface `javax.xml.stream.XMLStreamReader`

    - #### isWhiteSpace

          public boolean isWhiteSpace()

      Specified by:
        `isWhiteSpace` in interface `javax.xml.stream.XMLStreamReader`

    - #### next

          public int next()
                   throws javax.xml.stream.XMLStreamException

      Specified by:
        `next` in interface `javax.xml.stream.XMLStreamReader`
      Throws:
        `javax.xml.stream.XMLStreamException`

    - #### nextTag

          public int nextTag()
                      throws javax.xml.stream.XMLStreamException

      Specified by:
        `nextTag` in interface `javax.xml.stream.XMLStreamReader`
      Throws:
        `javax.xml.stream.XMLStreamException`

    - #### require

          public void require(int type,
                              java.lang.String namespaceURI,
                              java.lang.String localName)
                       throws javax.xml.stream.XMLStreamException

      Specified by:
        `require` in interface `javax.xml.stream.XMLStreamReader`
      Throws:
        `javax.xml.stream.XMLStreamException`

    - #### standaloneSet

          public boolean standaloneSet()

      Specified by:
        `standaloneSet` in interface `javax.xml.stream.XMLStreamReader`