Package org.jboss.staxmapper
Class XMLExtendedStreamReaderImpl
- java.lang.Object
-
- org.jboss.staxmapper.XMLExtendedStreamReaderImpl
-
- All Implemented Interfaces:
javax.xml.stream.XMLStreamConstants,javax.xml.stream.XMLStreamReader,XMLExtendedStreamReader
final class XMLExtendedStreamReaderImpl extends java.lang.Object implements XMLExtendedStreamReader
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classXMLExtendedStreamReaderImpl.Context
-
Field Summary
Fields Modifier and Type Field Description private javax.xml.stream.XMLStreamReaderfixedStreamReaderprivate static int[]NO_INTSprivate static long[]NO_LONGSprivate static java.lang.String[]NO_STRINGSprivate java.util.Deque<XMLExtendedStreamReaderImpl.Context>stackprivate javax.xml.stream.XMLStreamReaderstreamReaderprivate booleantrimElementTextprivate XMLMapperImplxmlMapper
-
Constructor Summary
Constructors Constructor Description XMLExtendedStreamReaderImpl(XMLMapperImpl xmlMapper, javax.xml.stream.XMLStreamReader streamReader)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()voiddiscardRemainder()Discard the remaining content of an element.private voiddoDiscard()intgetAttributeCount()java.lang.StringgetAttributeLocalName(int index)javax.xml.namespace.QNamegetAttributeName(int index)java.lang.StringgetAttributeNamespace(int index)java.lang.StringgetAttributePrefix(int index)java.lang.StringgetAttributeType(int index)java.lang.StringgetAttributeValue(int index)<T> TgetAttributeValue(int index, java.lang.Class<T> kind)Get the attribute value using intelligent type conversion.java.lang.StringgetAttributeValue(java.lang.String namespaceURI, java.lang.String localName)java.lang.StringgetCharacterEncodingScheme()java.lang.StringgetElementText()java.lang.StringgetEncoding()intgetEventType()java.lang.StringgetId()Get the XML ID attribute, if any.intgetIntAttributeValue(int index)Get the value of an attribute as an integer.int[]getIntListAttributeValue(int index)Get the value of an attribute as an integer list.java.util.List<java.lang.String>getListAttributeValue(int index)Get the value of an attribute as a space-delimited string list.<T> java.util.List<? extends T>getListAttributeValue(int index, java.lang.Class<T> kind)Get the attribute value as a list using intelligent type conversion.java.lang.StringgetLocalName()javax.xml.stream.LocationgetLocation()longgetLongAttributeValue(int index)Get the value of an attribute as a long.long[]getLongListAttributeValue(int index)Get the value of an attribute as a long integer list.javax.xml.namespace.QNamegetName()javax.xml.namespace.NamespaceContextgetNamespaceContext()intgetNamespaceCount()java.lang.StringgetNamespacePrefix(int index)java.lang.StringgetNamespaceURI()java.lang.StringgetNamespaceURI(int index)java.lang.StringgetNamespaceURI(java.lang.String prefix)java.lang.StringgetPIData()java.lang.StringgetPITarget()java.lang.StringgetPrefix()java.lang.ObjectgetProperty(java.lang.String name)java.lang.StringgetText()char[]getTextCharacters()intgetTextCharacters(int sourceStart, char[] target, int targetStart, int length)intgetTextLength()intgetTextStart()java.lang.StringgetVersion()XMLMappergetXMLMapper()voidhandleAny(java.lang.Object value)Handle an<xs:any>-type nested element, passing in the given value, returning after the end of the element.voidhandleAttribute(java.lang.Object value, int index)Handle an extended attribute, passing in the given value.booleanhasName()booleanhasNext()booleanhasText()private static javax.xml.stream.XMLStreamExceptionintParseException(java.lang.NumberFormatException e, javax.xml.stream.Location location)booleanisAttributeSpecified(int index)booleanisCharacters()booleanisEndElement()booleanisStandalone()booleanisStartElement()booleanisWhiteSpace()intnext()intnextTag()private static javax.xml.stream.XMLStreamExceptionreadPastEnd(javax.xml.stream.Location location)voidrequire(int type, java.lang.String namespaceURI, java.lang.String localName)private voidsafeClose()voidsetTrimElementText(boolean trim)Whether or notXMLStreamReader.getElementText()should trim content.booleanstandaloneSet()private static int[]toInts(java.util.Iterator<java.lang.String> i, int count)private static long[]toLongs(java.util.Iterator<java.lang.String> i, int count)private static java.lang.String[]toStrings(java.util.Iterator<java.lang.String> i, int count)
-
-
-
Field Detail
-
xmlMapper
private final XMLMapperImpl xmlMapper
-
streamReader
private final javax.xml.stream.XMLStreamReader streamReader
-
fixedStreamReader
private final javax.xml.stream.XMLStreamReader fixedStreamReader
-
stack
private final java.util.Deque<XMLExtendedStreamReaderImpl.Context> stack
-
trimElementText
private boolean trimElementText
-
NO_INTS
private static final int[] NO_INTS
-
NO_LONGS
private static final long[] NO_LONGS
-
NO_STRINGS
private static final java.lang.String[] NO_STRINGS
-
-
Constructor Detail
-
XMLExtendedStreamReaderImpl
XMLExtendedStreamReaderImpl(XMLMapperImpl xmlMapper, javax.xml.stream.XMLStreamReader streamReader)
-
-
Method Detail
-
setTrimElementText
public void setTrimElementText(boolean trim)
Description copied from interface:XMLExtendedStreamReaderWhether or notXMLStreamReader.getElementText()should trim content. The default is true.- Specified by:
setTrimElementTextin interfaceXMLExtendedStreamReader- Parameters:
trim- trim if true, don't if false
-
handleAny
public void handleAny(java.lang.Object value) throws javax.xml.stream.XMLStreamExceptionDescription copied from interface:XMLExtendedStreamReaderHandle an<xs:any>-type nested element, passing in the given value, returning after the end of the element. Must be positioned on aSTART_ELEMENTor an exception will occur. On return the cursor will be positioned on the correspondingEND_ELEMENT.- Specified by:
handleAnyin interfaceXMLExtendedStreamReader- Parameters:
value- the value to pass in- Throws:
javax.xml.stream.XMLStreamException- if an error occurs (e.g. the given value does not match the type of the handler for the element, or the element is unknown)
-
handleAttribute
public void handleAttribute(java.lang.Object value, int index) throws javax.xml.stream.XMLStreamExceptionDescription copied from interface:XMLExtendedStreamReaderHandle an extended attribute, passing in the given value. Must be positioned on aSTART_ELEMENTor an exception will occur. On return the cursor will be pointing at the sameSTART_ELEMENT.- Specified by:
handleAttributein interfaceXMLExtendedStreamReader- Parameters:
value- the value to pass inindex- the index of the attribute to process- Throws:
javax.xml.stream.XMLStreamException- if an error occurs
-
discardRemainder
public void discardRemainder() throws javax.xml.stream.XMLStreamExceptionDescription copied from interface:XMLExtendedStreamReaderDiscard the remaining content of an element. Runs until aEND_ELEMENTis encountered. If aSTART_ELEMENTis encountered, then recursively consume and ignore its content as well.- Specified by:
discardRemainderin interfaceXMLExtendedStreamReader- Throws:
javax.xml.stream.XMLStreamException- if an error occurs.
-
getProperty
public java.lang.Object getProperty(java.lang.String name) throws java.lang.IllegalArgumentException- Specified by:
getPropertyin interfacejavax.xml.stream.XMLStreamReader- Throws:
java.lang.IllegalArgumentException
-
next
public int next() throws javax.xml.stream.XMLStreamException- Specified by:
nextin interfacejavax.xml.stream.XMLStreamReader- Throws:
javax.xml.stream.XMLStreamException
-
require
public void require(int type, java.lang.String namespaceURI, java.lang.String localName) throws javax.xml.stream.XMLStreamException- Specified by:
requirein interfacejavax.xml.stream.XMLStreamReader- Throws:
javax.xml.stream.XMLStreamException
-
getElementText
public java.lang.String getElementText() throws javax.xml.stream.XMLStreamException- Specified by:
getElementTextin interfacejavax.xml.stream.XMLStreamReader- Throws:
javax.xml.stream.XMLStreamException
-
nextTag
public int nextTag() throws javax.xml.stream.XMLStreamException- Specified by:
nextTagin interfacejavax.xml.stream.XMLStreamReader- Throws:
javax.xml.stream.XMLStreamException
-
hasNext
public boolean hasNext() throws javax.xml.stream.XMLStreamException- Specified by:
hasNextin interfacejavax.xml.stream.XMLStreamReader- Throws:
javax.xml.stream.XMLStreamException
-
close
public void close() throws javax.xml.stream.XMLStreamException- Specified by:
closein interfacejavax.xml.stream.XMLStreamReader- Throws:
javax.xml.stream.XMLStreamException
-
getNamespaceURI
public java.lang.String getNamespaceURI(java.lang.String prefix)
- Specified by:
getNamespaceURIin interfacejavax.xml.stream.XMLStreamReader
-
isStartElement
public boolean isStartElement()
- Specified by:
isStartElementin interfacejavax.xml.stream.XMLStreamReader
-
isEndElement
public boolean isEndElement()
- Specified by:
isEndElementin interfacejavax.xml.stream.XMLStreamReader
-
isCharacters
public boolean isCharacters()
- Specified by:
isCharactersin interfacejavax.xml.stream.XMLStreamReader
-
isWhiteSpace
public boolean isWhiteSpace()
- Specified by:
isWhiteSpacein interfacejavax.xml.stream.XMLStreamReader
-
getAttributeValue
public java.lang.String getAttributeValue(java.lang.String namespaceURI, java.lang.String localName)- Specified by:
getAttributeValuein interfacejavax.xml.stream.XMLStreamReader
-
getAttributeCount
public int getAttributeCount()
- Specified by:
getAttributeCountin interfacejavax.xml.stream.XMLStreamReader
-
getAttributeName
public javax.xml.namespace.QName getAttributeName(int index)
- Specified by:
getAttributeNamein interfacejavax.xml.stream.XMLStreamReader
-
getAttributeNamespace
public java.lang.String getAttributeNamespace(int index)
- Specified by:
getAttributeNamespacein interfacejavax.xml.stream.XMLStreamReader
-
getAttributeLocalName
public java.lang.String getAttributeLocalName(int index)
- Specified by:
getAttributeLocalNamein interfacejavax.xml.stream.XMLStreamReader
-
getAttributePrefix
public java.lang.String getAttributePrefix(int index)
- Specified by:
getAttributePrefixin interfacejavax.xml.stream.XMLStreamReader
-
getAttributeType
public java.lang.String getAttributeType(int index)
- Specified by:
getAttributeTypein interfacejavax.xml.stream.XMLStreamReader
-
getAttributeValue
public java.lang.String getAttributeValue(int index)
- Specified by:
getAttributeValuein interfacejavax.xml.stream.XMLStreamReader
-
isAttributeSpecified
public boolean isAttributeSpecified(int index)
- Specified by:
isAttributeSpecifiedin interfacejavax.xml.stream.XMLStreamReader
-
getNamespaceCount
public int getNamespaceCount()
- Specified by:
getNamespaceCountin interfacejavax.xml.stream.XMLStreamReader
-
getNamespacePrefix
public java.lang.String getNamespacePrefix(int index)
- Specified by:
getNamespacePrefixin interfacejavax.xml.stream.XMLStreamReader
-
getNamespaceURI
public java.lang.String getNamespaceURI(int index)
- Specified by:
getNamespaceURIin interfacejavax.xml.stream.XMLStreamReader
-
getNamespaceContext
public javax.xml.namespace.NamespaceContext getNamespaceContext()
- Specified by:
getNamespaceContextin interfacejavax.xml.stream.XMLStreamReader
-
getEventType
public int getEventType()
- Specified by:
getEventTypein interfacejavax.xml.stream.XMLStreamReader
-
getText
public java.lang.String getText()
- Specified by:
getTextin interfacejavax.xml.stream.XMLStreamReader
-
getTextCharacters
public char[] getTextCharacters()
- Specified by:
getTextCharactersin interfacejavax.xml.stream.XMLStreamReader
-
getTextCharacters
public int getTextCharacters(int sourceStart, char[] target, int targetStart, int length) throws javax.xml.stream.XMLStreamException- Specified by:
getTextCharactersin interfacejavax.xml.stream.XMLStreamReader- Throws:
javax.xml.stream.XMLStreamException
-
getTextStart
public int getTextStart()
- Specified by:
getTextStartin interfacejavax.xml.stream.XMLStreamReader
-
getTextLength
public int getTextLength()
- Specified by:
getTextLengthin interfacejavax.xml.stream.XMLStreamReader
-
getEncoding
public java.lang.String getEncoding()
- Specified by:
getEncodingin interfacejavax.xml.stream.XMLStreamReader
-
hasText
public boolean hasText()
- Specified by:
hasTextin interfacejavax.xml.stream.XMLStreamReader
-
getLocation
public javax.xml.stream.Location getLocation()
- Specified by:
getLocationin interfacejavax.xml.stream.XMLStreamReader
-
getName
public javax.xml.namespace.QName getName()
- Specified by:
getNamein interfacejavax.xml.stream.XMLStreamReader
-
getLocalName
public java.lang.String getLocalName()
- Specified by:
getLocalNamein interfacejavax.xml.stream.XMLStreamReader
-
hasName
public boolean hasName()
- Specified by:
hasNamein interfacejavax.xml.stream.XMLStreamReader
-
getNamespaceURI
public java.lang.String getNamespaceURI()
- Specified by:
getNamespaceURIin interfacejavax.xml.stream.XMLStreamReader
-
getPrefix
public java.lang.String getPrefix()
- Specified by:
getPrefixin interfacejavax.xml.stream.XMLStreamReader
-
getVersion
public java.lang.String getVersion()
- Specified by:
getVersionin interfacejavax.xml.stream.XMLStreamReader
-
isStandalone
public boolean isStandalone()
- Specified by:
isStandalonein interfacejavax.xml.stream.XMLStreamReader
-
standaloneSet
public boolean standaloneSet()
- Specified by:
standaloneSetin interfacejavax.xml.stream.XMLStreamReader
-
getCharacterEncodingScheme
public java.lang.String getCharacterEncodingScheme()
- Specified by:
getCharacterEncodingSchemein interfacejavax.xml.stream.XMLStreamReader
-
getPITarget
public java.lang.String getPITarget()
- Specified by:
getPITargetin interfacejavax.xml.stream.XMLStreamReader
-
getPIData
public java.lang.String getPIData()
- Specified by:
getPIDatain interfacejavax.xml.stream.XMLStreamReader
-
getIntAttributeValue
public int getIntAttributeValue(int index) throws javax.xml.stream.XMLStreamExceptionDescription copied from interface:XMLExtendedStreamReaderGet the value of an attribute as an integer.- Specified by:
getIntAttributeValuein interfaceXMLExtendedStreamReader- Parameters:
index- the index of the attribute- Returns:
- the integer value
- Throws:
javax.xml.stream.XMLStreamException- if an error occurs
-
getIntListAttributeValue
public int[] getIntListAttributeValue(int index) throws javax.xml.stream.XMLStreamExceptionDescription copied from interface:XMLExtendedStreamReaderGet the value of an attribute as an integer list.- Specified by:
getIntListAttributeValuein interfaceXMLExtendedStreamReader- Parameters:
index- the index of the attribute- Returns:
- the integer values
- Throws:
javax.xml.stream.XMLStreamException- if an error occurs
-
getListAttributeValue
public java.util.List<java.lang.String> getListAttributeValue(int index) throws javax.xml.stream.XMLStreamExceptionDescription copied from interface:XMLExtendedStreamReaderGet the value of an attribute as a space-delimited string list.- Specified by:
getListAttributeValuein interfaceXMLExtendedStreamReader- Parameters:
index- the index of the attribute- Returns:
- the values
- Throws:
javax.xml.stream.XMLStreamException- if an error occurs
-
getLongAttributeValue
public long getLongAttributeValue(int index) throws javax.xml.stream.XMLStreamExceptionDescription copied from interface:XMLExtendedStreamReaderGet the value of an attribute as a long.- Specified by:
getLongAttributeValuein interfaceXMLExtendedStreamReader- Parameters:
index- the index of the attribute- Returns:
- the long value
- Throws:
javax.xml.stream.XMLStreamException- if an error occurs
-
getLongListAttributeValue
public long[] getLongListAttributeValue(int index) throws javax.xml.stream.XMLStreamExceptionDescription copied from interface:XMLExtendedStreamReaderGet the value of an attribute as a long integer list.- Specified by:
getLongListAttributeValuein interfaceXMLExtendedStreamReader- Parameters:
index- the index of the attribute- Returns:
- the long values
- Throws:
javax.xml.stream.XMLStreamException- if an error occurs
-
getAttributeValue
public <T> T getAttributeValue(int index, java.lang.Class<T> kind) throws javax.xml.stream.XMLStreamExceptionDescription copied from interface:XMLExtendedStreamReaderGet the attribute value using intelligent type conversion. Numeric types will be parsed; enum types will be mapped.- Specified by:
getAttributeValuein interfaceXMLExtendedStreamReader- Type Parameters:
T- the type of the expected object- Parameters:
index- the index of the attributekind- the class of the expected object- Returns:
- the object equivalent
- Throws:
javax.xml.stream.XMLStreamException- if an error occurs
-
getListAttributeValue
public <T> java.util.List<? extends T> getListAttributeValue(int index, java.lang.Class<T> kind) throws javax.xml.stream.XMLStreamExceptionDescription copied from interface:XMLExtendedStreamReaderGet the attribute value as a list using intelligent type conversion. Numeric types will be parsed; enum types will be mapped.- Specified by:
getListAttributeValuein interfaceXMLExtendedStreamReader- Parameters:
index- the index of the attributekind- the class of the expected object- Returns:
- the list of object equivalents
- Throws:
javax.xml.stream.XMLStreamException- if an error occurs
-
getId
public java.lang.String getId() throws javax.xml.stream.XMLStreamExceptionDescription copied from interface:XMLExtendedStreamReaderGet the XML ID attribute, if any.- Specified by:
getIdin interfaceXMLExtendedStreamReader- Returns:
- the attribute value
- Throws:
javax.xml.stream.XMLStreamException- if an error occurs
-
getXMLMapper
public XMLMapper getXMLMapper()
Description copied from interface:XMLExtendedStreamReader- Specified by:
getXMLMapperin interfaceXMLExtendedStreamReader- Returns:
- the XMLMapper. Will not return
null
-
doDiscard
private void doDiscard() throws javax.xml.stream.XMLStreamException- Throws:
javax.xml.stream.XMLStreamException
-
safeClose
private void safeClose()
-
toInts
private static int[] toInts(java.util.Iterator<java.lang.String> i, int count)
-
toLongs
private static long[] toLongs(java.util.Iterator<java.lang.String> i, int count)
-
toStrings
private static java.lang.String[] toStrings(java.util.Iterator<java.lang.String> i, int count)
-
readPastEnd
private static javax.xml.stream.XMLStreamException readPastEnd(javax.xml.stream.Location location)
-
intParseException
private static javax.xml.stream.XMLStreamException intParseException(java.lang.NumberFormatException e, javax.xml.stream.Location location)
-
-