public class Stax2EventReaderAdapter extends java.lang.Object implements XMLEventReader2
XMLEventReader2
, the
extended stream reader defined by Stax2 extension, by wrapping
a vanilla Stax 1.0 XMLEventReader
implementation.
Note: the implementation may be incomplete as-is, since not all features needed are necessarily accessible via basic Stax 1.0 interface. As such, two main use cases for this wrapper are:
Modifier and Type | Field and Description |
---|---|
protected javax.xml.stream.XMLEventReader |
mReader |
Modifier | Constructor and Description |
---|---|
protected |
Stax2EventReaderAdapter(javax.xml.stream.XMLEventReader er) |
Modifier and Type | Method and 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() |
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. |
static XMLEventReader2 |
wrapIfNecessary(javax.xml.stream.XMLEventReader er)
Method that should be used to add dynamic support for
XMLEventReader2 . |
protected Stax2EventReaderAdapter(javax.xml.stream.XMLEventReader er)
public static XMLEventReader2 wrapIfNecessary(javax.xml.stream.XMLEventReader er)
XMLEventReader2
. Method will check whether the
stream reader passed happens to be a XMLEventReader2
;
and if it is, return it properly cast. If not, it will create
necessary wrapper.public void close() throws javax.xml.stream.XMLStreamException
close
in interface javax.xml.stream.XMLEventReader
javax.xml.stream.XMLStreamException
public java.lang.String getElementText() throws javax.xml.stream.XMLStreamException
getElementText
in interface javax.xml.stream.XMLEventReader
javax.xml.stream.XMLStreamException
public java.lang.Object getProperty(java.lang.String name)
getProperty
in interface javax.xml.stream.XMLEventReader
public boolean hasNext()
hasNext
in interface java.util.Iterator
hasNext
in interface javax.xml.stream.XMLEventReader
public javax.xml.stream.events.XMLEvent nextEvent() throws javax.xml.stream.XMLStreamException
nextEvent
in interface javax.xml.stream.XMLEventReader
javax.xml.stream.XMLStreamException
public java.lang.Object next()
next
in interface java.util.Iterator
public javax.xml.stream.events.XMLEvent nextTag() throws javax.xml.stream.XMLStreamException
nextTag
in interface javax.xml.stream.XMLEventReader
javax.xml.stream.XMLStreamException
public javax.xml.stream.events.XMLEvent peek() throws javax.xml.stream.XMLStreamException
peek
in interface javax.xml.stream.XMLEventReader
javax.xml.stream.XMLStreamException
public void remove()
remove
in interface java.util.Iterator
public boolean hasNextEvent() throws javax.xml.stream.XMLStreamException
XMLEventReader2
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.hasNextEvent
in interface XMLEventReader2
javax.xml.stream.XMLStreamException
public boolean isPropertySupported(java.lang.String name)
XMLEventReader2
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.isPropertySupported
in interface XMLEventReader2
public boolean setProperty(java.lang.String name, java.lang.Object value)
XMLEventReader2
XMLInputFactory2
instance. Exactly which methods are mutable is implementation
specific.setProperty
in interface XMLEventReader2
name
- Name of the property to setvalue
- Value to set property to.