org.codehaus.staxmate.in
Class SMInputCursor

java.lang.Object
  extended by org.codehaus.staxmate.in.SMInputCursor
Direct Known Subclasses:
SMFlatteningCursor, SMHierarchicCursor

public abstract class SMInputCursor
extends java.lang.Object

Base class for reader-side cursors that form the main input-side abstraction offered by StaxMate.

Note: since cursors are thin wrappers around XMLStreamReader2, and since not all Stax implementations implement XMLStreamReader2, some wrapping may be involved.

Author:
Tatu Saloranta

Nested Class Summary
protected static class SMInputCursor.State
           
static class SMInputCursor.Tracking
          This enumeration lists different tracking behaviors available for cursors.
 
Field Summary
protected  SMInputCursor mChildCursor
          Cursor that has been opened for iterating child nodes of the start element node this cursor points to.
protected  SMEvent mCurrEvent
           
protected  java.lang.Object mData
          Non-typesafe payload data that applications can use, to pass an extra argument along with cursors.
protected  int mElemCount
          Number of start elements iterated over by this cursor, including the current one.
protected  ElementInfoFactory mElemInfoFactory
          Optional factory instance that is used to create element info objects if element tracking is enabled.
protected  SMInputCursor.Tracking mElemTracking
          Whether element information is to be tracked or not, and if it is, how much of it will be stored.
protected  SMFilter mFilter
          Optional filter object that can be used to filter out events of types caller is not interested in.
protected  int mNodeCount
          Number of nodes iterated over by this cursor, including the current one.
protected  int mParentCount
          Number of enclosing start elements for this cursor; 0 for root cursors
protected  SMElementInfo mParentTrackedElement
          Element parent cursor tracked when this cursor was created, if any.
protected  SMInputCursor.State mState
          Current state of the cursor.
protected  org.codehaus.stax2.XMLStreamReader2 mStreamReader
          Underlying stream reader used.
protected  SMElementInfo mTrackedElement
          Element that was last "tracked"; element over which cursor was moved, and of which state has been saved for further use.
protected static SMEvent[] sEventsByIds
          This is the mapping array, indexed by Stax 1.0 event type integer code, value being matching SMEvent enumeration value.
 
Constructor Summary
SMInputCursor(SMInputCursor parent, org.codehaus.stax2.XMLStreamReader2 sr, SMFilter filter)
           
 
Method Summary
 SMInputCursor childCursor()
           
 SMInputCursor childCursor(SMFilter f)
          Method that will create a new nested cursor for iterating over all (immediate) child nodes of the start element this cursor currently points to.
 SMInputCursor childElementCursor()
          Convenience method; equivalent to childCursor(SMFilterFactory.getElementOnlyFilter());
 SMInputCursor childElementCursor(javax.xml.namespace.QName elemName)
          Convenience method; equivalent to childCursor(SMFilterFactory.getElementOnlyFilter(elemName)); Will only return START_ELEMENT and END_ELEMENT events, whose element name matches given qname.
 SMInputCursor childElementCursor(java.lang.String elemLocalName)
          Convenience method; equivalent to childCursor(SMFilterFactory.getElementOnlyFilter(elemName)); Will only return START_ELEMENT and END_ELEMENT events, whose element's local name matches given local name, and that does not belong to a namespace.
 SMInputCursor childMixedCursor()
          Convenience method; equivalent to childCursor(SMFilterFactory.getMixedFilter());
 java.lang.String collectDescendantText(boolean includeIgnorable)
          Method that can collect all text contained within START_ELEMENT currently pointed by this cursor.
protected abstract  SMInputCursor constructChildCursor(SMFilter f)
           
protected abstract  SMInputCursor constructDescendantCursor(SMFilter f)
           
protected  SMElementInfo constructElementInfo(SMElementInfo parent, SMElementInfo prevSibling)
          Method cursor calls when it needs to track element state information; if so, it calls this method to take a snapshot of the element.
protected  java.lang.String currentEventStr()
           
 SMInputCursor descendantCursor()
           
 SMInputCursor descendantCursor(SMFilter f)
          Method that will create a new nested cursor for iterating over all the descendant (children and grandchildren) nodes of the start element this cursor currently points to.
 SMInputCursor descendantElementCursor()
          Convenience method; equivalent to descendantCursor(SMFilterFactory.getElementOnlyFilter());
 SMInputCursor descendantElementCursor(javax.xml.namespace.QName elemName)
          Convenience method; equivalent to descendantCursor(SMFilterFactory.getElementOnlyFilter(elemName)); Will only return START_ELEMENT and END_ELEMENT events, whose element name matches given qname.
 SMInputCursor descendantElementCursor(java.lang.String elemLocalName)
          Convenience method; equivalent to descendantCursor(SMFilterFactory.getElementOnlyFilter(elemLocalName));.
 SMInputCursor descendantMixedCursor()
          Convenience method; equivalent to descendantCursor(SMFilterFactory.getMixedFilter());
protected  int doParseInt(java.lang.String valueStr)
           
protected  int doParseInt(java.lang.String valueStr, int defValue)
           
 int findAttrIndex(java.lang.String uri, java.lang.String localName)
           
 int getAttrCount()
           
 int getAttrIntValue(int index)
           
 int getAttrIntValue(int index, int defValue)
           
 int getAttrIntValue(java.lang.String uri, java.lang.String localName)
           
 int getAttrIntValue(java.lang.String uri, java.lang.String localName, int defValue)
           
 java.lang.String getAttrLocalName(int index)
           
 javax.xml.namespace.QName getAttrName(int index)
           
 java.lang.String getAttrNsUri(int index)
           
 java.lang.String getAttrPrefix(int index)
           
 java.lang.String getAttrValue(int index)
           
 java.lang.String getAttrValue(java.lang.String localName)
          Convenience accessor method to access an attribute that is not in a namespace (has no prefix).
 java.lang.String getAttrValue(java.lang.String uri, java.lang.String localName)
           
 SMEvent getCurrEvent()
          Returns the type of event this cursor either currently points to (if in valid state), or pointed to (if ever iterated forward), or null if just created.
 int getCurrEventCode()
          Convenience method doing
 java.lang.Object getData()
           
abstract  int getDepth()
          Returns number of parent elements current node (or, the last node cursor pointed to, or in absence of one [before cursor has been advanced for the first time], it would point if advanced) has.
 int getElementCount()
           
 ElementInfoFactory getElementInfoFactory()
           
 SMInputCursor.Tracking getElementTracking()
           
 java.lang.String getLocalName()
          For events with fully qualified names (START_ELEMENT, END_ELEMENT, ATTRIBUTE, NAMESPACE), returns the local component of the full name.
 javax.xml.stream.Location getLocation()
           
abstract  SMEvent getNext()
          Main iterating method.
 int getNodeCount()
           
 java.lang.String getNsUri()
           
 SMElementInfo getParentTrackedElement()
           
 java.lang.String getPrefix()
           
 java.lang.String getPrefixedName()
          Returns a String representation of either the fully-qualified name (if the event has full name) or the local name (if event does not have full name but has local name); or if no name available, throws stream exception.
 javax.xml.namespace.QName getQName()
           
protected  java.lang.String getStateDesc()
           
 org.codehaus.stax2.XMLStreamReader2 getStreamReader()
          Method that can be used to get direct access to the underlying stream reader.
 java.lang.String getText()
          Method that can be used when this cursor points to a textual event; something for which XMLStreamReader.getText() can be called.
 SMElementInfo getTrackedElement()
           
protected  boolean isRootCursor()
           
protected  java.lang.String notAccessible(java.lang.String method)
           
 void processDescendantText(java.io.Writer w, boolean includeIgnorable)
          Method similar to collectDescendantText(boolean), but will write the text to specified Writer instead of collecting it into a String.
 boolean readerAccessible()
           
 void setData(java.lang.Object o)
           
 void setElementInfoFactory(ElementInfoFactory f)
           
 void setElementTracking(SMInputCursor.Tracking tracking)
          Changes tracking mode of this cursor to the new specified mode.
 void setFilter(SMFilter f)
           
protected  void skipSubTree(int depth)
           
protected abstract  void skipTree()
          Method called by the parent cursor, to skip over the scope this cursor iterates, and of its sub-scopes if any.
protected  void throwXsEx(java.lang.String msg)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

sEventsByIds

protected static final SMEvent[] sEventsByIds
This is the mapping array, indexed by Stax 1.0 event type integer code, value being matching SMEvent enumeration value.


mStreamReader

protected final org.codehaus.stax2.XMLStreamReader2 mStreamReader
Underlying stream reader used. It will either be a native XMLStreamReader2 instance, or a regular (Stax 1.0) XMLStreamReader wrapped in an adapter.


mFilter

protected SMFilter mFilter
Optional filter object that can be used to filter out events of types caller is not interested in.


mElemTracking

protected SMInputCursor.Tracking mElemTracking
Whether element information is to be tracked or not, and if it is, how much of it will be stored. See SMInputCursor.Tracking for details.


mElemInfoFactory

protected ElementInfoFactory mElemInfoFactory
Optional factory instance that is used to create element info objects if element tracking is enabled. If null, will use default generation mechanism, implemented by SMInputCursor itself.

Note that by default, this factory will be passed down to child and descendant cursors this cursor creates, so usually one only needs to set the factory of the root cursor.


mCurrEvent

protected SMEvent mCurrEvent

mState

protected SMInputCursor.State mState
Current state of the cursor.


mNodeCount

protected int mNodeCount
Number of nodes iterated over by this cursor, including the current one.


mElemCount

protected int mElemCount
Number of start elements iterated over by this cursor, including the current one.


mParentCount

protected final int mParentCount
Number of enclosing start elements for this cursor; 0 for root cursors


mTrackedElement

protected SMElementInfo mTrackedElement
Element that was last "tracked"; element over which cursor was moved, and of which state has been saved for further use. At this point, it can be null if no elements have yet been iterater over. Alternatively, if it's not null, it may be currently pointed to or not; if it's not, either child cursor is active, or this cursor points to a non-start-element node.


mParentTrackedElement

protected SMElementInfo mParentTrackedElement
Element parent cursor tracked when this cursor was created, if any.


mChildCursor

protected SMInputCursor mChildCursor
Cursor that has been opened for iterating child nodes of the start element node this cursor points to. Needed to keep cursor hierarchy synchronized, independent of which ones are traversed.


mData

protected java.lang.Object mData
Non-typesafe payload data that applications can use, to pass an extra argument along with cursors. Not used by the framework itself for anything.

Constructor Detail

SMInputCursor

public SMInputCursor(SMInputCursor parent,
                     org.codehaus.stax2.XMLStreamReader2 sr,
                     SMFilter filter)
Method Detail

setFilter

public final void setFilter(SMFilter f)

setElementTracking

public final void setElementTracking(SMInputCursor.Tracking tracking)
Changes tracking mode of this cursor to the new specified mode. Default mode for cursors is the one their parent uses; SMInputCursor.Tracking.NONE for root cursors with no parent.


getElementTracking

public final SMInputCursor.Tracking getElementTracking()

setElementInfoFactory

public final void setElementInfoFactory(ElementInfoFactory f)

getElementInfoFactory

public final ElementInfoFactory getElementInfoFactory()

getNodeCount

public int getNodeCount()
Returns:
Number of nodes cursor has traversed (including ones filtered out). Starts with 0, and is incremented each time underlying stream reader's XMLStreamReader.next() method is called, but not counting child cursors' node counts.

getElementCount

public int getElementCount()
Returns:
Number of start elements cursor has traversed (including ones filtered out). Starts with 0, and is incremented each time underlying stream reader's XMLStreamReader.next() method is called and has moved over a start element, but not counting child cursors' element counts.

getDepth

public abstract int getDepth()
Returns number of parent elements current node (or, the last node cursor pointed to, or in absence of one [before cursor has been advanced for the first time], it would point if advanced) has.

For example, here are expected results for getDepth() for an example XML document:

  <!-- Comment outside tree --> [0]
  <root> [0]
    Text [1]
    <branch> [1]
      Inner text [2]
      <child /> [2]
    </branch> [1]
  </root> [0]
Numbers in bracket are depths that would be returned when the cursor points to the node.

Note: depths are different from what some APIs (such as XmlPull) return.

Returns:
Number of enclosing nesting levels, ie. number of parent start elements for the node that cursor currently points to (or, in case of initial state, that it will point to if scope has node(s)).

getCurrEvent

public SMEvent getCurrEvent()
Returns the type of event this cursor either currently points to (if in valid state), or pointed to (if ever iterated forward), or null if just created.

Returns:
Type of event this cursor points to, if it currently points to one, or last one it pointed to otherwise (if ever pointed to a valid event), or null if neither.

getCurrEventCode

public int getCurrEventCode()
Convenience method doing


getTrackedElement

public SMElementInfo getTrackedElement()
Returns:
Information about last "tracked" element; element we have last iterated over when tracking has been enabled.

getParentTrackedElement

public SMElementInfo getParentTrackedElement()
Returns:
Information about the tracked element the parent cursor had, if parent cursor existed and was tracking element information.

readerAccessible

public final boolean readerAccessible()

getStreamReader

public final org.codehaus.stax2.XMLStreamReader2 getStreamReader()
Method that can be used to get direct access to the underlying stream reader. This is usually needed to access some of less often needed accessors for which there is no convenience method in StaxMate API.

Returns:
Stream reader the cursor uses for getting XML events

getLocation

public javax.xml.stream.Location getLocation()
                                      throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

getText

public java.lang.String getText()
                         throws javax.xml.stream.XMLStreamException
Method that can be used when this cursor points to a textual event; something for which XMLStreamReader.getText() can be called. Note that it does not advance the cursor, or combine multiple textual events.

Returns:
Textual content of the current event that this cursor points to, if any
Throws:
javax.xml.stream.XMLStreamException - if either the underlying parser has problems (possibly including event type not being of textual type, see Stax 1.0 specs for details); or if this cursor does not currently point to an event.

collectDescendantText

public java.lang.String collectDescendantText(boolean includeIgnorable)
                                       throws javax.xml.stream.XMLStreamException
Method that can collect all text contained within START_ELEMENT currently pointed by this cursor. Collection is done recursively through all descendant text (CHARACTER, CDATA; optionally SPACE) nodes, ignoring nodes of other types. After collecting text, cursor will be positioned at the END_ELEMENT matching initial START_ELEMENT and thus needs to be advanced to access the next sibling event.

Parameters:
includeIgnorable - Whether text for events of type SPACE should be ignored in the results or not. If false, SPACE events will be skipped; if true, white space will be included in results.
Throws:
javax.xml.stream.XMLStreamException

processDescendantText

public void processDescendantText(java.io.Writer w,
                                  boolean includeIgnorable)
                           throws java.io.IOException,
                                  javax.xml.stream.XMLStreamException
Method similar to collectDescendantText(boolean), but will write the text to specified Writer instead of collecting it into a String.

Parameters:
w - Writer to use for outputting text found
includeIgnorable - Whether text for events of type SPACE should be ignored in the results or not. If false, SPACE events will be skipped; if true, white space will be included in results.
Throws:
java.io.IOException
javax.xml.stream.XMLStreamException

getQName

public javax.xml.namespace.QName getQName()
                                   throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

getLocalName

public java.lang.String getLocalName()
                              throws javax.xml.stream.XMLStreamException
For events with fully qualified names (START_ELEMENT, END_ELEMENT, ATTRIBUTE, NAMESPACE), returns the local component of the full name. For events with only non-qualified name (PROCESSING_INSTRUCTION, entity and notation declarations, references), returns the name. For other events, returns null.

Returns:
Local component of the name
Throws:
javax.xml.stream.XMLStreamException

getPrefix

public java.lang.String getPrefix()
                           throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

getNsUri

public java.lang.String getNsUri()
                          throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

getPrefixedName

public java.lang.String getPrefixedName()
                                 throws javax.xml.stream.XMLStreamException
Returns a String representation of either the fully-qualified name (if the event has full name) or the local name (if event does not have full name but has local name); or if no name available, throws stream exception.

Throws:
javax.xml.stream.XMLStreamException

getAttrCount

public int getAttrCount()
                 throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

findAttrIndex

public int findAttrIndex(java.lang.String uri,
                         java.lang.String localName)
                  throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

getAttrName

public javax.xml.namespace.QName getAttrName(int index)
                                      throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

getAttrLocalName

public java.lang.String getAttrLocalName(int index)
                                  throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

getAttrPrefix

public java.lang.String getAttrPrefix(int index)
                               throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

getAttrNsUri

public java.lang.String getAttrNsUri(int index)
                              throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

getAttrValue

public java.lang.String getAttrValue(int index)
                              throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

getAttrValue

public java.lang.String getAttrValue(java.lang.String localName)
                              throws javax.xml.stream.XMLStreamException
Convenience accessor method to access an attribute that is not in a namespace (has no prefix).

Throws:
javax.xml.stream.XMLStreamException

getAttrValue

public java.lang.String getAttrValue(java.lang.String uri,
                                     java.lang.String localName)
                              throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

getAttrIntValue

public int getAttrIntValue(int index)
                    throws java.lang.NumberFormatException,
                           javax.xml.stream.XMLStreamException
Throws:
java.lang.NumberFormatException
javax.xml.stream.XMLStreamException

getAttrIntValue

public int getAttrIntValue(java.lang.String uri,
                           java.lang.String localName)
                    throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

getAttrIntValue

public int getAttrIntValue(int index,
                           int defValue)
                    throws java.lang.NumberFormatException,
                           javax.xml.stream.XMLStreamException
Throws:
java.lang.NumberFormatException
javax.xml.stream.XMLStreamException

getAttrIntValue

public int getAttrIntValue(java.lang.String uri,
                           java.lang.String localName,
                           int defValue)
                    throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

getData

public java.lang.Object getData()

setData

public void setData(java.lang.Object o)

getNext

public abstract SMEvent getNext()
                         throws javax.xml.stream.XMLStreamException
Main iterating method.

Returns:
Type of event (from XMLStreamConstants, such as XMLStreamConstants.START_ELEMENT, if a new node was iterated over; null when there are no more nodes this cursor can iterate over.
Throws:
javax.xml.stream.XMLStreamException

childCursor

public SMInputCursor childCursor(SMFilter f)
                          throws javax.xml.stream.XMLStreamException
Method that will create a new nested cursor for iterating over all (immediate) child nodes of the start element this cursor currently points to. If cursor does not point to a start element, it will throw IllegalStateException; if it does not support concept of child cursors, it will throw UnsupportedOperationException

Parameters:
f - Filter child cursor is to use for filtering out 'unwanted' nodes; may be null for no filtering
Throws:
java.lang.IllegalStateException - If cursor can not be created due to the state cursor is in.
java.lang.UnsupportedOperationException - If cursor does not allow creation of child cursors.
javax.xml.stream.XMLStreamException

childCursor

public final SMInputCursor childCursor()
                                throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

descendantCursor

public SMInputCursor descendantCursor(SMFilter f)
                               throws javax.xml.stream.XMLStreamException
Method that will create a new nested cursor for iterating over all the descendant (children and grandchildren) nodes of the start element this cursor currently points to. If cursor does not point to a start element, it will throw IllegalStateException; if it does not support concept of descendant cursors, it will throw UnsupportedOperationException

Throws:
java.lang.IllegalStateException - If cursor can not be created due to the state cursor is in (or for some cursors, if they never allow creating such cursors)
java.lang.UnsupportedOperationException - If cursor does not allow creation of descendant cursors.
javax.xml.stream.XMLStreamException

descendantCursor

public final SMInputCursor descendantCursor()
                                     throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

childElementCursor

public final SMInputCursor childElementCursor()
                                       throws javax.xml.stream.XMLStreamException
Convenience method; equivalent to childCursor(SMFilterFactory.getElementOnlyFilter());

Throws:
javax.xml.stream.XMLStreamException

childElementCursor

public final SMInputCursor childElementCursor(javax.xml.namespace.QName elemName)
                                       throws javax.xml.stream.XMLStreamException
Convenience method; equivalent to childCursor(SMFilterFactory.getElementOnlyFilter(elemName)); Will only return START_ELEMENT and END_ELEMENT events, whose element name matches given qname.

Throws:
javax.xml.stream.XMLStreamException

childElementCursor

public final SMInputCursor childElementCursor(java.lang.String elemLocalName)
                                       throws javax.xml.stream.XMLStreamException
Convenience method; equivalent to childCursor(SMFilterFactory.getElementOnlyFilter(elemName)); Will only return START_ELEMENT and END_ELEMENT events, whose element's local name matches given local name, and that does not belong to a namespace.

Throws:
javax.xml.stream.XMLStreamException

descendantElementCursor

public final SMInputCursor descendantElementCursor()
                                            throws javax.xml.stream.XMLStreamException
Convenience method; equivalent to descendantCursor(SMFilterFactory.getElementOnlyFilter());

Throws:
javax.xml.stream.XMLStreamException

descendantElementCursor

public final SMInputCursor descendantElementCursor(javax.xml.namespace.QName elemName)
                                            throws javax.xml.stream.XMLStreamException
Convenience method; equivalent to descendantCursor(SMFilterFactory.getElementOnlyFilter(elemName)); Will only return START_ELEMENT and END_ELEMENT events, whose element name matches given qname.

Throws:
javax.xml.stream.XMLStreamException

descendantElementCursor

public final SMInputCursor descendantElementCursor(java.lang.String elemLocalName)
                                            throws javax.xml.stream.XMLStreamException
Convenience method; equivalent to descendantCursor(SMFilterFactory.getElementOnlyFilter(elemLocalName));. Will only return START_ELEMENT and END_ELEMENT events, whose element local name matches given local name, and that do not belong to a namespace

Throws:
javax.xml.stream.XMLStreamException

childMixedCursor

public final SMInputCursor childMixedCursor()
                                     throws javax.xml.stream.XMLStreamException
Convenience method; equivalent to childCursor(SMFilterFactory.getMixedFilter());

Throws:
javax.xml.stream.XMLStreamException

descendantMixedCursor

public final SMInputCursor descendantMixedCursor()
                                          throws javax.xml.stream.XMLStreamException
Convenience method; equivalent to descendantCursor(SMFilterFactory.getMixedFilter());

Throws:
javax.xml.stream.XMLStreamException

skipTree

protected abstract void skipTree()
                          throws javax.xml.stream.XMLStreamException
Method called by the parent cursor, to skip over the scope this cursor iterates, and of its sub-scopes if any.

Throws:
javax.xml.stream.XMLStreamException

constructElementInfo

protected SMElementInfo constructElementInfo(SMElementInfo parent,
                                             SMElementInfo prevSibling)
                                      throws javax.xml.stream.XMLStreamException
Method cursor calls when it needs to track element state information; if so, it calls this method to take a snapshot of the element.

Note caller already suppresses calls so that this method is only called when information needs to be preserved. Further, previous element is only passed if such linkage is to be preserved (reason for not always doing it is the increased memory usage).

Finally, note that this method does NOT implement ElementInfoFactory, as its signature does not include the cursor argument, as that's passed as this pointer already.

Throws:
javax.xml.stream.XMLStreamException

constructChildCursor

protected abstract SMInputCursor constructChildCursor(SMFilter f)
                                               throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

constructDescendantCursor

protected abstract SMInputCursor constructDescendantCursor(SMFilter f)
                                                    throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

doParseInt

protected int doParseInt(java.lang.String valueStr)
                  throws java.lang.NumberFormatException
Throws:
java.lang.NumberFormatException

doParseInt

protected int doParseInt(java.lang.String valueStr,
                         int defValue)

isRootCursor

protected final boolean isRootCursor()

skipSubTree

protected void skipSubTree(int depth)
                    throws javax.xml.stream.XMLStreamException
Parameters:
depth - Number of enclosing 'extra' START_ELEMENTs to match; usually either 0 or 1
Throws:
javax.xml.stream.XMLStreamException

notAccessible

protected java.lang.String notAccessible(java.lang.String method)
                                  throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

getStateDesc

protected java.lang.String getStateDesc()

currentEventStr

protected java.lang.String currentEventStr()
Returns:
Human-readable description of the underlying Stax event this cursor points to.

throwXsEx

protected void throwXsEx(java.lang.String msg)
                  throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object