org.apache.axiom.om.impl.llom
Class OMStAXWrapper

java.lang.Object
  extended by org.apache.axiom.om.impl.llom.OMStAXWrapper
All Implemented Interfaces:
javax.xml.stream.XMLStreamConstants, javax.xml.stream.XMLStreamReader

public class OMStAXWrapper
extends java.lang.Object
implements javax.xml.stream.XMLStreamReader, javax.xml.stream.XMLStreamConstants

Note - This class also implements the streaming constants interface to get access to the StAX constants


Field Summary
private  boolean _isClosed
           
private  boolean _releaseParserOnClose
           
private  org.apache.axiom.om.OMXMLParserWrapper builder
          Field builder
private static short COMPLETED
           
private  int currentEvent
          Field currentEvent Default set to START_DOCUMENT
private  org.apache.axiom.om.OMNode currentNode
          Field currentNode
private static boolean DEBUG_ENABLED
           
(package private)  int depth
          Track depth to ensure we stop generating events when we are done with the root node.
private static short DOCUMENT_COMPLETE
           
private  java.util.Stack elementStack
          Field elementStack
private  boolean isFirst
          Field isFirst
private  org.apache.axiom.om.OMNode lastNode
          Field lastNode
private static org.apache.commons.logging.Log log
           
(package private)  boolean namespaceURIInterning
           
private static short NAVIGABLE
          Field NAVIGABLE
private  OMNavigator navigator
          Field navigator
private  boolean needToThrowEndDocument
           
private  org.apache.axiom.om.OMNode nextNode
          Field nextNode
private  javax.xml.stream.XMLStreamReader parser
          Field parser
private  org.apache.axiom.om.OMNode rootNode
          Field rootNode
private  short state
          Field state
private static short SWITCH_AT_NEXT
           
private static short SWITCHED
           
(package private)  boolean switchingAllowed
          Field switchingAllowed
 
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
OMStAXWrapper(org.apache.axiom.om.OMXMLParserWrapper builder, org.apache.axiom.om.OMElement startNode)
          When constructing the OMStaxWrapper, the creator must produce the builder (an instance of the OMXMLparserWrapper of the input) and the Element Node to start parsing.
OMStAXWrapper(org.apache.axiom.om.OMXMLParserWrapper builder, org.apache.axiom.om.OMElement startNode, boolean cache)
          Constructor OMStAXWrapper.
 
Method Summary
private  void addNamespaceToMap(org.apache.axiom.om.OMNamespace ns, java.util.Map map)
           
 void close()
          Method close.
private  int generateCdataEvents()
          Method generateCdataEvents
private  int generateCommentEvents()
          Method generateCommentEvents
private  int generateElementEvents(org.apache.axiom.om.OMElement elt)
          Method generateElementEvents.
private  int generateEvents(org.apache.axiom.om.OMNode node)
          Method generateEvents.
private  int generateTextEvents()
          Method generateTextEvents.
private  java.util.Map getAllNamespaces(java.lang.Object contextNode)
           
private  org.apache.axiom.om.OMAttribute getAttribute(org.apache.axiom.om.OMElement elt, int index)
           
 int getAttributeCount()
           
 java.lang.String getAttributeLocalName(int i)
           
 javax.xml.namespace.QName getAttributeName(int i)
           
 java.lang.String getAttributeNamespace(int i)
           
 java.lang.String getAttributePrefix(int i)
           
 java.lang.String getAttributeType(int i)
           
 java.lang.String getAttributeValue(int i)
           
 java.lang.String getAttributeValue(java.lang.String s, java.lang.String s1)
          Method getAttributeValue.
 org.apache.axiom.om.OMXMLParserWrapper getBuilder()
           
 java.lang.String getCharacterEncodingScheme()
          Method getCharacterEncodingScheme.
private  int getCount(java.util.Iterator it)
          helper method getCount.
 java.lang.String getElementText()
           
 java.lang.String getEncoding()
          Method getEncoding.
 int getEventType()
           
private  java.lang.Object getItemFromIterator(java.util.Iterator it, int index)
          Helper method getItemFromIterator.
 java.lang.String getLocalName()
           
 javax.xml.stream.Location getLocation()
          Method getLocation.
 javax.xml.namespace.QName getName()
           
 javax.xml.namespace.NamespaceContext getNamespaceContext()
          Method getNamespaceContext.
 int getNamespaceCount()
           
 java.lang.String getNamespacePrefix(int i)
           
 java.lang.String getNamespaceURI()
           
 java.lang.String getNamespaceURI(int i)
           
 java.lang.String getNamespaceURI(java.lang.String prefix)
          Method getNamespaceURI.
 java.lang.String getPIData()
          Method getPIData.
 java.lang.String getPITarget()
          Method getPITarget.
 java.lang.String getPrefix()
           
 java.lang.Object getProperty(java.lang.String s)
          Method getProperty.
private  javax.xml.namespace.QName getQName(org.apache.axiom.om.OMElement element)
          Helper method getQName.
 java.lang.String getText()
           
 char[] getTextCharacters()
           
 int getTextCharacters(int i, char[] chars, int i1, int i2)
           
 int getTextLength()
           
 int getTextStart()
           
 java.lang.String getVersion()
          Method getVersion.
 boolean hasName()
           
 boolean hasNext()
          Method hasNext.
 boolean hasText()
           
 boolean isAllowSwitching()
          Method isAllowSwitching.
 boolean isAttributeSpecified(int i)
           
 boolean isCharacters()
          Method isCharacters.
 boolean isClosed()
           
 boolean isEndElement()
          Method isEndElement.
 boolean isNamespaceURIInterning()
           
 boolean isStandalone()
          Method isStandalone.
 boolean isStartElement()
          Method isStartElement.
 boolean isWhiteSpace()
          Method isWhiteSpace.
 int next()
          Method next.
 int nextTag()
          Returns the next tag.
 void releaseParserOnClose(boolean value)
          Indicate if the parser resource should be release when closed.
 void require(int i, java.lang.String s, java.lang.String s1)
           
 void setAllowSwitching(boolean b)
          Method setAllowSwitching.
 void setNamespaceURIInterning(boolean b)
          Set namespace uri interning
 void setParser(javax.xml.stream.XMLStreamReader parser)
           
 boolean standaloneSet()
          Method standaloneSet.
private  void updateCompleteStatus()
          Method updateCompleteStatus.
private  void updateLastNode()
          This is a very important method.
private  void updateNextNode()
          Method updateNextNode.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

private static final org.apache.commons.logging.Log log

DEBUG_ENABLED

private static boolean DEBUG_ENABLED

navigator

private OMNavigator navigator
Field navigator


builder

private org.apache.axiom.om.OMXMLParserWrapper builder
Field builder


parser

private javax.xml.stream.XMLStreamReader parser
Field parser


_isClosed

private boolean _isClosed

_releaseParserOnClose

private boolean _releaseParserOnClose

rootNode

private org.apache.axiom.om.OMNode rootNode
Field rootNode


isFirst

private boolean isFirst
Field isFirst


NAVIGABLE

private static final short NAVIGABLE
Field NAVIGABLE

See Also:
Constant Field Values

SWITCH_AT_NEXT

private static final short SWITCH_AT_NEXT
See Also:
Constant Field Values

COMPLETED

private static final short COMPLETED
See Also:
Constant Field Values

SWITCHED

private static final short SWITCHED
See Also:
Constant Field Values

DOCUMENT_COMPLETE

private static final short DOCUMENT_COMPLETE
See Also:
Constant Field Values

state

private short state
Field state


currentEvent

private int currentEvent
Field currentEvent Default set to START_DOCUMENT


switchingAllowed

boolean switchingAllowed
Field switchingAllowed


namespaceURIInterning

boolean namespaceURIInterning

elementStack

private java.util.Stack elementStack
Field elementStack


nextNode

private org.apache.axiom.om.OMNode nextNode
Field nextNode


currentNode

private org.apache.axiom.om.OMNode currentNode
Field currentNode


lastNode

private org.apache.axiom.om.OMNode lastNode
Field lastNode


depth

int depth
Track depth to ensure we stop generating events when we are done with the root node.


needToThrowEndDocument

private boolean needToThrowEndDocument
Constructor Detail

OMStAXWrapper

public OMStAXWrapper(org.apache.axiom.om.OMXMLParserWrapper builder,
                     org.apache.axiom.om.OMElement startNode)
When constructing the OMStaxWrapper, the creator must produce the builder (an instance of the OMXMLparserWrapper of the input) and the Element Node to start parsing. The wrapper will parse(proceed) until the end of the given element. Hence care should be taken to pass the root element if the entire document is needed.

Parameters:
builder -
startNode -

OMStAXWrapper

public OMStAXWrapper(org.apache.axiom.om.OMXMLParserWrapper builder,
                     org.apache.axiom.om.OMElement startNode,
                     boolean cache)
Constructor OMStAXWrapper.

Parameters:
builder -
startNode -
cache -
Method Detail

setAllowSwitching

public void setAllowSwitching(boolean b)
Method setAllowSwitching.

Parameters:
b -

isAllowSwitching

public boolean isAllowSwitching()
Method isAllowSwitching.

Returns:
Returns boolean.

setNamespaceURIInterning

public void setNamespaceURIInterning(boolean b)
Set namespace uri interning

Parameters:
b -

isNamespaceURIInterning

public boolean isNamespaceURIInterning()
Returns:
if namespace uri interning

getPrefix

public java.lang.String getPrefix()
Specified by:
getPrefix in interface javax.xml.stream.XMLStreamReader
Returns:
Returns String.
See Also:
XMLStreamReader.getPrefix()

getNamespaceURI

public java.lang.String getNamespaceURI()
Specified by:
getNamespaceURI in interface javax.xml.stream.XMLStreamReader
Returns:
Returns String.
See Also:
XMLStreamReader.getNamespaceURI()

hasName

public boolean hasName()
Specified by:
hasName in interface javax.xml.stream.XMLStreamReader
Returns:
Returns boolean.
See Also:
XMLStreamReader.hasName()

getLocalName

public java.lang.String getLocalName()
Specified by:
getLocalName in interface javax.xml.stream.XMLStreamReader
Returns:
Returns String.
See Also:
XMLStreamReader.getLocalName()

getName

public javax.xml.namespace.QName getName()
Specified by:
getName in interface javax.xml.stream.XMLStreamReader
Returns:
Returns QName.
See Also:
XMLStreamReader.getName()

hasText

public boolean hasText()
Specified by:
hasText in interface javax.xml.stream.XMLStreamReader
Returns:
Returns boolean.
See Also:
XMLStreamReader.hasText()

getTextLength

public int getTextLength()
Specified by:
getTextLength in interface javax.xml.stream.XMLStreamReader
Returns:
Returns int.
See Also:
XMLStreamReader.getTextLength()

getTextStart

public int getTextStart()
Specified by:
getTextStart in interface javax.xml.stream.XMLStreamReader
Returns:
Returns int.
See Also:
XMLStreamReader.getTextStart()

getTextCharacters

public int getTextCharacters(int i,
                             char[] chars,
                             int i1,
                             int i2)
                      throws javax.xml.stream.XMLStreamException
Specified by:
getTextCharacters in interface javax.xml.stream.XMLStreamReader
Parameters:
i -
chars -
i1 -
i2 -
Returns:
Returns int.
Throws:
javax.xml.stream.XMLStreamException
See Also:
XMLStreamReader.getTextCharacters(int, char[], int, int)

getTextCharacters

public char[] getTextCharacters()
Specified by:
getTextCharacters in interface javax.xml.stream.XMLStreamReader
Returns:
Returns char[].
See Also:
XMLStreamReader.getTextCharacters()

getText

public java.lang.String getText()
Specified by:
getText in interface javax.xml.stream.XMLStreamReader
Returns:
Returns String.
See Also:
XMLStreamReader.getText()

getEventType

public int getEventType()
Specified by:
getEventType in interface javax.xml.stream.XMLStreamReader
Returns:
Returns int.
See Also:
XMLStreamReader.getEventType()

getNamespaceURI

public java.lang.String getNamespaceURI(int i)
Specified by:
getNamespaceURI in interface javax.xml.stream.XMLStreamReader
Parameters:
i -
Returns:
Returns String.
See Also:
XMLStreamReader.getNamespaceURI()

getNamespacePrefix

public java.lang.String getNamespacePrefix(int i)
Specified by:
getNamespacePrefix in interface javax.xml.stream.XMLStreamReader
Parameters:
i -
Returns:
Returns String.
See Also:
XMLStreamReader.getNamespacePrefix(int)

getNamespaceCount

public int getNamespaceCount()
Specified by:
getNamespaceCount in interface javax.xml.stream.XMLStreamReader
Returns:
Returns int.
See Also:
XMLStreamReader.getNamespaceCount()

isAttributeSpecified

public boolean isAttributeSpecified(int i)
Specified by:
isAttributeSpecified in interface javax.xml.stream.XMLStreamReader
Parameters:
i -
Returns:
Returns boolean.
See Also:
XMLStreamReader.isAttributeSpecified(int)

getAttributeValue

public java.lang.String getAttributeValue(int i)
Specified by:
getAttributeValue in interface javax.xml.stream.XMLStreamReader
Parameters:
i -
Returns:
Returns String.
See Also:
XMLStreamReader.getAttributeValue(int)

getAttributeType

public java.lang.String getAttributeType(int i)
Specified by:
getAttributeType in interface javax.xml.stream.XMLStreamReader
Parameters:
i -
Returns:
Returns String.
See Also:
XMLStreamReader.getAttributeType(int)

getAttributePrefix

public java.lang.String getAttributePrefix(int i)
Specified by:
getAttributePrefix in interface javax.xml.stream.XMLStreamReader
Parameters:
i -
Returns:
Returns String.
See Also:
XMLStreamReader.getAttributePrefix(int)

getAttributeLocalName

public java.lang.String getAttributeLocalName(int i)
Specified by:
getAttributeLocalName in interface javax.xml.stream.XMLStreamReader
Parameters:
i -
Returns:
Returns String.
See Also:
XMLStreamReader.getAttributeLocalName(int)

getAttributeNamespace

public java.lang.String getAttributeNamespace(int i)
Specified by:
getAttributeNamespace in interface javax.xml.stream.XMLStreamReader
Parameters:
i -
Returns:
Returns String.
See Also:
XMLStreamReader.getAttributeNamespace(int)

getAttributeName

public javax.xml.namespace.QName getAttributeName(int i)
Specified by:
getAttributeName in interface javax.xml.stream.XMLStreamReader
Parameters:
i -
Returns:
Returns QName.
See Also:
XMLStreamReader.getAttributeName(int)

getAttributeCount

public int getAttributeCount()
Specified by:
getAttributeCount in interface javax.xml.stream.XMLStreamReader
Returns:
Returns int.
See Also:
XMLStreamReader.getAttributeCount()

getAttributeValue

public java.lang.String getAttributeValue(java.lang.String s,
                                          java.lang.String s1)
Method getAttributeValue.

Specified by:
getAttributeValue in interface javax.xml.stream.XMLStreamReader
Parameters:
s -
s1 -
Returns:
Returns String.

isWhiteSpace

public boolean isWhiteSpace()
Method isWhiteSpace.

Specified by:
isWhiteSpace in interface javax.xml.stream.XMLStreamReader
Returns:
Returns boolean.

isCharacters

public boolean isCharacters()
Method isCharacters.

Specified by:
isCharacters in interface javax.xml.stream.XMLStreamReader
Returns:
Returns boolean.

isEndElement

public boolean isEndElement()
Method isEndElement.

Specified by:
isEndElement in interface javax.xml.stream.XMLStreamReader
Returns:
Returns boolean.

require

public void require(int i,
                    java.lang.String s,
                    java.lang.String s1)
             throws javax.xml.stream.XMLStreamException
Specified by:
require in interface javax.xml.stream.XMLStreamReader
Parameters:
i -
s -
s1 -
Throws:
javax.xml.stream.XMLStreamException
See Also:
XMLStreamReader.require(int, String, String)

isStartElement

public boolean isStartElement()
Method isStartElement.

Specified by:
isStartElement in interface javax.xml.stream.XMLStreamReader
Returns:
Returns boolean.

getNamespaceURI

public java.lang.String getNamespaceURI(java.lang.String prefix)
Method getNamespaceURI.

Specified by:
getNamespaceURI in interface javax.xml.stream.XMLStreamReader
Parameters:
prefix -
Returns:
Returns String.

close

public void close()
           throws javax.xml.stream.XMLStreamException
Method close.

Specified by:
close in interface javax.xml.stream.XMLStreamReader
Throws:
javax.xml.stream.XMLStreamException

hasNext

public boolean hasNext()
                throws javax.xml.stream.XMLStreamException
Method hasNext.

Specified by:
hasNext in interface javax.xml.stream.XMLStreamReader
Returns:
Returns boolean.
Throws:
javax.xml.stream.XMLStreamException

nextTag

public int nextTag()
            throws javax.xml.stream.XMLStreamException
Returns the next tag.

Specified by:
nextTag in interface javax.xml.stream.XMLStreamReader
Returns:
Returns int.
Throws:
org.apache.axiom.om.impl.exception.OMStreamingException
javax.xml.stream.XMLStreamException

getElementText

public java.lang.String getElementText()
                                throws javax.xml.stream.XMLStreamException
Specified by:
getElementText in interface javax.xml.stream.XMLStreamReader
Returns:
Returns String.
Throws:
javax.xml.stream.XMLStreamException
See Also:
XMLStreamReader.getElementText()

next

public int next()
         throws javax.xml.stream.XMLStreamException
Method next.

Specified by:
next in interface javax.xml.stream.XMLStreamReader
Returns:
Returns int.
Throws:
javax.xml.stream.XMLStreamException

getProperty

public java.lang.Object getProperty(java.lang.String s)
                             throws java.lang.IllegalArgumentException
Method getProperty.

Specified by:
getProperty in interface javax.xml.stream.XMLStreamReader
Parameters:
s -
Returns:
Returns Object.
Throws:
java.lang.IllegalArgumentException

updateLastNode

private void updateLastNode()
                     throws javax.xml.stream.XMLStreamException
This is a very important method. It keeps the navigator one step ahead and pushes it one event ahead. If the nextNode is null then navigable is set to false. At the same time the parser and builder are set up for the upcoming event generation.

Throws:
javax.xml.stream.XMLStreamException

updateNextNode

private void updateNextNode()
Method updateNextNode.


updateCompleteStatus

private void updateCompleteStatus()
Method updateCompleteStatus.


getNamespaceContext

public javax.xml.namespace.NamespaceContext getNamespaceContext()
Method getNamespaceContext.

Specified by:
getNamespaceContext in interface javax.xml.stream.XMLStreamReader
Returns:
Returns NamespaceContext.

getEncoding

public java.lang.String getEncoding()
Method getEncoding.

Specified by:
getEncoding in interface javax.xml.stream.XMLStreamReader
Returns:
Returns String.

getLocation

public javax.xml.stream.Location getLocation()
Method getLocation.

Specified by:
getLocation in interface javax.xml.stream.XMLStreamReader
Returns:
Returns Location.

getVersion

public java.lang.String getVersion()
Method getVersion.

Specified by:
getVersion in interface javax.xml.stream.XMLStreamReader
Returns:
Returns String.

isStandalone

public boolean isStandalone()
Method isStandalone.

Specified by:
isStandalone in interface javax.xml.stream.XMLStreamReader
Returns:
Returns boolean.

standaloneSet

public boolean standaloneSet()
Method standaloneSet.

Specified by:
standaloneSet in interface javax.xml.stream.XMLStreamReader
Returns:
Returns boolean.

getCharacterEncodingScheme

public java.lang.String getCharacterEncodingScheme()
Method getCharacterEncodingScheme.

Specified by:
getCharacterEncodingScheme in interface javax.xml.stream.XMLStreamReader
Returns:
Returns String.

getPITarget

public java.lang.String getPITarget()
Method getPITarget.

Specified by:
getPITarget in interface javax.xml.stream.XMLStreamReader
Returns:
Returns String.

getPIData

public java.lang.String getPIData()
Method getPIData.

Specified by:
getPIData in interface javax.xml.stream.XMLStreamReader
Returns:
Returns String.

generateEvents

private int generateEvents(org.apache.axiom.om.OMNode node)
Method generateEvents.

Parameters:
node -
Returns:
Returns int.

generateElementEvents

private int generateElementEvents(org.apache.axiom.om.OMElement elt)
Method generateElementEvents.

Parameters:
elt -
Returns:
Returns int.

generateTextEvents

private int generateTextEvents()
Method generateTextEvents.

Returns:
Returns int.

generateCommentEvents

private int generateCommentEvents()
Method generateCommentEvents

Returns:
Returns int.

generateCdataEvents

private int generateCdataEvents()
Method generateCdataEvents

Returns:
Returns int.

getCount

private int getCount(java.util.Iterator it)
helper method getCount.

Parameters:
it -
Returns:
Returns int.

getItemFromIterator

private java.lang.Object getItemFromIterator(java.util.Iterator it,
                                             int index)
Helper method getItemFromIterator.

Parameters:
it -
index -
Returns:
Returns Object.

getQName

private javax.xml.namespace.QName getQName(org.apache.axiom.om.OMElement element)
Helper method getQName.

Parameters:
element -
Returns:
Returns QName.

getAttribute

private org.apache.axiom.om.OMAttribute getAttribute(org.apache.axiom.om.OMElement elt,
                                                     int index)
Parameters:
elt -
index -
Returns:
Returns OMAttribute.

setParser

public void setParser(javax.xml.stream.XMLStreamReader parser)

getAllNamespaces

private java.util.Map getAllNamespaces(java.lang.Object contextNode)

addNamespaceToMap

private void addNamespaceToMap(org.apache.axiom.om.OMNamespace ns,
                               java.util.Map map)

getBuilder

public org.apache.axiom.om.OMXMLParserWrapper getBuilder()

isClosed

public boolean isClosed()
Returns:
if parser is closed

releaseParserOnClose

public void releaseParserOnClose(boolean value)
Indicate if the parser resource should be release when closed.

Parameters:
value - boolean