Interface HierarchicalStreamReader
-
- All Superinterfaces:
ErrorReporter
- All Known Subinterfaces:
DocumentReader
,ExtendedHierarchicalStreamReader
- All Known Implementing Classes:
AbstractDocumentReader
,AbstractPullReader
,AbstractReader
,AbstractXmlReader
,BinaryStreamReader
,DomReader
,PathTrackingReader
,ReaderWrapper
,StaxReader
,XppDomReader
,XppReader
public interface HierarchicalStreamReader extends ErrorReporter
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
appendErrors(ErrorWriter errorWriter)
If any errors are detected, allow the reader to add any additional information that can aid debugging (such as line numbers, XPath expressions, etc).void
close()
Close the reader, if necessary.java.lang.String
getAttribute(int index)
Get the value of an attribute of the current node, by index.java.lang.String
getAttribute(java.lang.String name)
Get the value of an attribute of the current node.int
getAttributeCount()
Number of attributes in current node.java.lang.String
getAttributeName(int index)
Name of attribute in current node.java.util.Iterator
getAttributeNames()
Iterator with the names of the attributes.java.lang.String
getNodeName()
Get the name of the current node.java.lang.String
getValue()
Get the value (text content) of the current node.boolean
hasMoreChildren()
Does the node have any more children remaining that have not yet been read?void
moveDown()
Select the current child as current node.void
moveUp()
Select the parent node as current node.HierarchicalStreamReader
underlyingReader()
Return the underlying HierarchicalStreamReader implementation.
-
-
-
Method Detail
-
hasMoreChildren
boolean hasMoreChildren()
Does the node have any more children remaining that have not yet been read?
-
moveDown
void moveDown()
Select the current child as current node. A call to this function must be balanced with a call tomoveUp()
.
-
moveUp
void moveUp()
Select the parent node as current node.
-
getNodeName
java.lang.String getNodeName()
Get the name of the current node.
-
getValue
java.lang.String getValue()
Get the value (text content) of the current node.
-
getAttribute
java.lang.String getAttribute(java.lang.String name)
Get the value of an attribute of the current node.If no such attribute exists, the method returns null.
-
getAttribute
java.lang.String getAttribute(int index)
Get the value of an attribute of the current node, by index.Note, the behavior of this method is dependent on the underlying parser when calling it with a non-existing index. Typically some kind of RuntimeException is thrown.
-
getAttributeCount
int getAttributeCount()
Number of attributes in current node.
-
getAttributeName
java.lang.String getAttributeName(int index)
Name of attribute in current node.Note, the behavior of this method is dependent on the underlying parser when calling it with a non-existing index. Typically some kind of RuntimeException is thrown.
-
getAttributeNames
java.util.Iterator getAttributeNames()
Iterator with the names of the attributes.Note, the iterator is only valid as long as the internal state of the underlying parser is still at the start of the current element. The behavior is undefined if the parser moved on.
-
appendErrors
void appendErrors(ErrorWriter errorWriter)
If any errors are detected, allow the reader to add any additional information that can aid debugging (such as line numbers, XPath expressions, etc).- Specified by:
appendErrors
in interfaceErrorReporter
- Parameters:
errorWriter
- the error writer
-
close
void close()
Close the reader, if necessary.
-
underlyingReader
HierarchicalStreamReader underlyingReader()
Return the underlying HierarchicalStreamReader implementation.If a Converter needs to access methods of a specific HierarchicalStreamReader implementation that are not defined in the HierarchicalStreamReader interface, it should call this method before casting. This is because the reader passed to the Converter is often wrapped/decorated by another implementation to provide additional functionality (such as XPath tracking).
For example:
MySpecificReader mySpecificReader = (MySpecificReader)reader; // INCORRECT! mySpecificReader.doSomethingSpecific();
MySpecificReader mySpecificReader = (MySpecificReader)reader.underlyingReader(); // CORRECT! mySpecificReader.doSomethingSpecific();
Implementations of HierarchicalStreamReader should return 'this', unless they are a decorator, in which case they should delegate to whatever they are wrapping.
-
-