public class WstxEventReader
extends java.lang.Object
implements org.codehaus.stax2.XMLEventReader2, javax.xml.stream.XMLStreamConstants
XMLEventReader2
(and XMLEventReader
).
NOTE: up to Woodstox 5.1, this was based on Stax2 Reference Implementation
(Stax2EventReaderImpl
), but due to various issues
has temporarily (?) been cut-paste-modified here. Ideally it would be reconciled
once Stax2-api version 4.2 can be relied as baseline, but that may take time.
Modifier and Type | Field and Description |
---|---|
protected static int |
ERR_GETELEMTEXT_NON_TEXT_EVENT
Encountered non-textual event (other than closing END_ELEMENT)
when collecting text for getElementText()
|
protected static int |
ERR_GETELEMTEXT_NOT_START_ELEM
Current state when getElementText() called not START_ELEMENT
|
protected static int |
ERR_NEXTTAG_NON_WS_TEXT
Encountered CHARACTERS or CDATA that contains non-white space
char(s), when trying to locate tag with nextTag()
|
protected static int |
ERR_NEXTTAG_WRONG_TYPE
Encountered non-skippable non-text/element event with
nextTag()
|
protected javax.xml.stream.util.XMLEventAllocator |
mAllocator |
protected boolean |
mCfgMultiDocMode
Marker flag to allow specialized handling in "multi-document" reading
mode.
|
protected javax.xml.stream.events.XMLEvent |
mPeekedEvent
Event that has been peeked, ie.
|
protected int |
mPrePeekEvent
This variable keeps track of the type of the 'previous' event
when peeking for the next Event.
|
protected org.codehaus.stax2.XMLStreamReader2 |
mReader |
protected int |
mState
High-level state indicator, with currently three values:
whether we are initializing (need to synthetize START_DOCUMENT),
at END_OF_INPUT (end-of-doc), or otherwise, normal operation.
|
protected static int |
STATE_CONTENT |
protected static int |
STATE_END_OF_INPUT |
protected static int |
STATE_INITIAL |
Constructor and Description |
---|
WstxEventReader(javax.xml.stream.util.XMLEventAllocator a,
org.codehaus.stax2.XMLStreamReader2 r) |
Modifier and Type | Method and Description |
---|---|
protected javax.xml.stream.XMLStreamException |
_checkUnwrap(java.lang.RuntimeException rex) |
void |
close() |
protected javax.xml.stream.events.XMLEvent |
createNextEvent(boolean checkEOD,
int type) |
protected javax.xml.stream.events.XMLEvent |
createStartDocumentEvent()
Method called to create the very first event (START_DOCUMENT).
|
protected java.lang.String |
findErrorDesc(int errorType,
int currEvent)
Method used to locate error message description to use.
|
java.lang.String |
getElementText() |
protected java.lang.String |
getErrorDesc(int errorType,
int currEvent)
Method called upon encountering a problem that should result
in an exception being thrown.
|
java.lang.Object |
getProperty(java.lang.String name) |
protected javax.xml.stream.XMLStreamReader |
getStreamReader() |
boolean |
hasNext() |
boolean |
hasNextEvent()
Note: although the interface allows implementations to
throw an
XMLStreamException , the reference implementation
doesn't currently need to. |
boolean |
isPropertySupported(java.lang.String name) |
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.
|
protected void |
reportProblem(java.lang.String msg) |
protected void |
reportProblem(java.lang.String msg,
javax.xml.stream.Location loc) |
boolean |
setProperty(java.lang.String name,
java.lang.Object value) |
protected void |
throwEndOfInput() |
protected void |
throwUnchecked(javax.xml.stream.XMLStreamException sex) |
protected void |
updateStateEndDocument()
Method called when we are about to return
END_DOCUMENT event. |
protected static final int STATE_INITIAL
protected static final int STATE_END_OF_INPUT
protected static final int STATE_CONTENT
protected static final int ERR_GETELEMTEXT_NOT_START_ELEM
protected static final int ERR_GETELEMTEXT_NON_TEXT_EVENT
protected static final int ERR_NEXTTAG_NON_WS_TEXT
protected static final int ERR_NEXTTAG_WRONG_TYPE
protected final javax.xml.stream.util.XMLEventAllocator mAllocator
protected final org.codehaus.stax2.XMLStreamReader2 mReader
protected javax.xml.stream.events.XMLEvent mPeekedEvent
nextEvent()
; will be returned and cleared by
call to nextEvent()
(or, returned again if peeked
again)protected int mState
protected int mPrePeekEvent
protected final boolean mCfgMultiDocMode
public WstxEventReader(javax.xml.stream.util.XMLEventAllocator a, org.codehaus.stax2.XMLStreamReader2 r)
public boolean isPropertySupported(java.lang.String name)
isPropertySupported
in interface org.codehaus.stax2.XMLEventReader2
public boolean setProperty(java.lang.String name, java.lang.Object value)
setProperty
in interface org.codehaus.stax2.XMLEventReader2
protected java.lang.String getErrorDesc(int errorType, int currEvent)
errorType
- Type of the problem, one of ERR_
constantscurrEvent
- Type of the event that triggered the problem,
if any; -1 if not available.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
protected void updateStateEndDocument() throws javax.xml.stream.XMLStreamException
END_DOCUMENT
event.
Usually this should change state to STATE_END_OF_INPUT
, but
may vary for some alternative read modes (like multi-document)javax.xml.stream.XMLStreamException
public boolean hasNextEvent() throws javax.xml.stream.XMLStreamException
Note: although the interface allows implementations to
throw an XMLStreamException
, the reference implementation
doesn't currently need to.
It's still declared, in case in future there is need to throw
such an exception.
hasNextEvent
in interface org.codehaus.stax2.XMLEventReader2
javax.xml.stream.XMLStreamException
protected javax.xml.stream.events.XMLEvent createNextEvent(boolean checkEOD, int type) throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
protected javax.xml.stream.XMLStreamException _checkUnwrap(java.lang.RuntimeException rex)
protected javax.xml.stream.events.XMLEvent createStartDocumentEvent() throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
protected void throwEndOfInput()
protected void throwUnchecked(javax.xml.stream.XMLStreamException sex)
protected void reportProblem(java.lang.String msg) throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
protected void reportProblem(java.lang.String msg, javax.xml.stream.Location loc) throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
protected javax.xml.stream.XMLStreamReader getStreamReader()
protected final java.lang.String findErrorDesc(int errorType, int currEvent)
getErrorDesc()
first, and only
if no message found, uses default messages defined here.