Package org.dellroad.stuff.xml
Class AnnotatedXMLStreamReader
java.lang.Object
javax.xml.stream.util.StreamReaderDelegate
org.dellroad.stuff.xml.AnnotatedXMLStreamReader
- All Implemented Interfaces:
XMLStreamConstants
,XMLStreamReader
- Direct Known Subclasses:
UpdatesXMLStreamReader
XMLStreamReader
that reads and removes an initial annotation element from an XML document.
The annotation element, if present, must be the first element inside the top-level document element.
When the annotation element is encountered, readAnnotationElement()
will be invoked.
This class can be used in combination with AnnotatedXMLStreamWriter
to transparently annotate XML documents.
- See Also:
-
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
-
Method Summary
Modifier and TypeMethodDescriptionint
next()
int
nextTag()
protected abstract boolean
readAnnotationElement
(XMLStreamReader reader) Determine if the givenXMLStreamReader
is positioned at the annotation element, and if so, read it.Methods inherited from class javax.xml.stream.util.StreamReaderDelegate
close, getAttributeCount, getAttributeLocalName, getAttributeName, getAttributeNamespace, getAttributePrefix, getAttributeType, getAttributeValue, getAttributeValue, getCharacterEncodingScheme, getElementText, getEncoding, getEventType, getLocalName, getLocation, getName, getNamespaceContext, getNamespaceCount, getNamespacePrefix, getNamespaceURI, getNamespaceURI, getNamespaceURI, getParent, getPIData, getPITarget, getPrefix, getProperty, getText, getTextCharacters, getTextCharacters, getTextLength, getTextStart, getVersion, hasName, hasNext, hasText, isAttributeSpecified, isCharacters, isEndElement, isStandalone, isStartElement, isWhiteSpace, require, setParent, standaloneSet
-
Constructor Details
-
AnnotatedXMLStreamReader
Constructor.- Parameters:
parent
- parent reader
-
-
Method Details
-
next
- Specified by:
next
in interfaceXMLStreamReader
- Overrides:
next
in classStreamReaderDelegate
- Throws:
XMLStreamException
-
nextTag
- Specified by:
nextTag
in interfaceXMLStreamReader
- Overrides:
nextTag
in classStreamReaderDelegate
- Throws:
XMLStreamException
-
readAnnotationElement
Determine if the givenXMLStreamReader
is positioned at the annotation element, and if so, read it.When this method is invoked, the
reader
's current event has typeXMLStreamConstants.START_ELEMENT
and may represent the start of the annotation element. If it doesn't, this method should not read any events and immediately return false. Otherwise, this method should read subsequent events up through the correspondingXMLStreamConstants.END_ELEMENT
event and return true. Upon return, thereader
's current event will have typeXMLStreamConstants.END_ELEMENT
.- Parameters:
reader
- source from which the the annotation element is to be read, if found- Returns:
- true if the current event is the start of the annotation element and has been read, false otherwise
- Throws:
XMLStreamException
- if an XML parse error occurs
-