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 class
XMLExtendedStreamReaderImpl.Context
-
Field Summary
Fields Modifier and Type Field Description private javax.xml.stream.XMLStreamReader
fixedStreamReader
private static int[]
NO_INTS
private static long[]
NO_LONGS
private static java.lang.String[]
NO_STRINGS
private java.util.Deque<XMLExtendedStreamReaderImpl.Context>
stack
private javax.xml.stream.XMLStreamReader
streamReader
private boolean
trimElementText
private XMLMapperImpl
xmlMapper
-
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 void
close()
void
discardRemainder()
Discard the remaining content of an element.private void
doDiscard()
int
getAttributeCount()
java.lang.String
getAttributeLocalName(int index)
javax.xml.namespace.QName
getAttributeName(int index)
java.lang.String
getAttributeNamespace(int index)
java.lang.String
getAttributePrefix(int index)
java.lang.String
getAttributeType(int index)
java.lang.String
getAttributeValue(int index)
<T> T
getAttributeValue(int index, java.lang.Class<T> kind)
Get the attribute value using intelligent type conversion.java.lang.String
getAttributeValue(java.lang.String namespaceURI, java.lang.String localName)
java.lang.String
getCharacterEncodingScheme()
java.lang.String
getElementText()
java.lang.String
getEncoding()
int
getEventType()
java.lang.String
getId()
Get the XML ID attribute, if any.int
getIntAttributeValue(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.String
getLocalName()
javax.xml.stream.Location
getLocation()
long
getLongAttributeValue(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.QName
getName()
javax.xml.namespace.NamespaceContext
getNamespaceContext()
int
getNamespaceCount()
java.lang.String
getNamespacePrefix(int index)
java.lang.String
getNamespaceURI()
java.lang.String
getNamespaceURI(int index)
java.lang.String
getNamespaceURI(java.lang.String prefix)
java.lang.String
getPIData()
java.lang.String
getPITarget()
java.lang.String
getPrefix()
java.lang.Object
getProperty(java.lang.String name)
java.lang.String
getText()
char[]
getTextCharacters()
int
getTextCharacters(int sourceStart, char[] target, int targetStart, int length)
int
getTextLength()
int
getTextStart()
java.lang.String
getVersion()
XMLMapper
getXMLMapper()
void
handleAny(java.lang.Object value)
Handle an<xs:any>
-type nested element, passing in the given value, returning after the end of the element.void
handleAttribute(java.lang.Object value, int index)
Handle an extended attribute, passing in the given value.boolean
hasName()
boolean
hasNext()
boolean
hasText()
private static javax.xml.stream.XMLStreamException
intParseException(java.lang.NumberFormatException e, javax.xml.stream.Location location)
boolean
isAttributeSpecified(int index)
boolean
isCharacters()
boolean
isEndElement()
boolean
isStandalone()
boolean
isStartElement()
boolean
isWhiteSpace()
int
next()
int
nextTag()
private static javax.xml.stream.XMLStreamException
readPastEnd(javax.xml.stream.Location location)
void
require(int type, java.lang.String namespaceURI, java.lang.String localName)
private void
safeClose()
void
setTrimElementText(boolean trim)
Whether or notXMLStreamReader.getElementText()
should trim content.boolean
standaloneSet()
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:XMLExtendedStreamReader
Whether or notXMLStreamReader.getElementText()
should trim content. The default is true.- Specified by:
setTrimElementText
in interfaceXMLExtendedStreamReader
- Parameters:
trim
- trim if true, don't if false
-
handleAny
public void handleAny(java.lang.Object value) throws javax.xml.stream.XMLStreamException
Description copied from interface:XMLExtendedStreamReader
Handle an<xs:any>
-type nested element, passing in the given value, returning after the end of the element. Must be positioned on aSTART_ELEMENT
or an exception will occur. On return the cursor will be positioned on the correspondingEND_ELEMENT
.- Specified by:
handleAny
in 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.XMLStreamException
Description copied from interface:XMLExtendedStreamReader
Handle an extended attribute, passing in the given value. Must be positioned on aSTART_ELEMENT
or an exception will occur. On return the cursor will be pointing at the sameSTART_ELEMENT
.- Specified by:
handleAttribute
in 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.XMLStreamException
Description copied from interface:XMLExtendedStreamReader
Discard the remaining content of an element. Runs until aEND_ELEMENT
is encountered. If aSTART_ELEMENT
is encountered, then recursively consume and ignore its content as well.- Specified by:
discardRemainder
in 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:
getProperty
in interfacejavax.xml.stream.XMLStreamReader
- Throws:
java.lang.IllegalArgumentException
-
next
public int next() throws javax.xml.stream.XMLStreamException
- Specified by:
next
in 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:
require
in interfacejavax.xml.stream.XMLStreamReader
- Throws:
javax.xml.stream.XMLStreamException
-
getElementText
public java.lang.String getElementText() throws javax.xml.stream.XMLStreamException
- Specified by:
getElementText
in interfacejavax.xml.stream.XMLStreamReader
- Throws:
javax.xml.stream.XMLStreamException
-
nextTag
public int nextTag() throws javax.xml.stream.XMLStreamException
- Specified by:
nextTag
in interfacejavax.xml.stream.XMLStreamReader
- Throws:
javax.xml.stream.XMLStreamException
-
hasNext
public boolean hasNext() throws javax.xml.stream.XMLStreamException
- Specified by:
hasNext
in interfacejavax.xml.stream.XMLStreamReader
- Throws:
javax.xml.stream.XMLStreamException
-
close
public void close() throws javax.xml.stream.XMLStreamException
- Specified by:
close
in interfacejavax.xml.stream.XMLStreamReader
- Throws:
javax.xml.stream.XMLStreamException
-
getNamespaceURI
public java.lang.String getNamespaceURI(java.lang.String prefix)
- Specified by:
getNamespaceURI
in interfacejavax.xml.stream.XMLStreamReader
-
isStartElement
public boolean isStartElement()
- Specified by:
isStartElement
in interfacejavax.xml.stream.XMLStreamReader
-
isEndElement
public boolean isEndElement()
- Specified by:
isEndElement
in interfacejavax.xml.stream.XMLStreamReader
-
isCharacters
public boolean isCharacters()
- Specified by:
isCharacters
in interfacejavax.xml.stream.XMLStreamReader
-
isWhiteSpace
public boolean isWhiteSpace()
- Specified by:
isWhiteSpace
in interfacejavax.xml.stream.XMLStreamReader
-
getAttributeValue
public java.lang.String getAttributeValue(java.lang.String namespaceURI, java.lang.String localName)
- Specified by:
getAttributeValue
in interfacejavax.xml.stream.XMLStreamReader
-
getAttributeCount
public int getAttributeCount()
- Specified by:
getAttributeCount
in interfacejavax.xml.stream.XMLStreamReader
-
getAttributeName
public javax.xml.namespace.QName getAttributeName(int index)
- Specified by:
getAttributeName
in interfacejavax.xml.stream.XMLStreamReader
-
getAttributeNamespace
public java.lang.String getAttributeNamespace(int index)
- Specified by:
getAttributeNamespace
in interfacejavax.xml.stream.XMLStreamReader
-
getAttributeLocalName
public java.lang.String getAttributeLocalName(int index)
- Specified by:
getAttributeLocalName
in interfacejavax.xml.stream.XMLStreamReader
-
getAttributePrefix
public java.lang.String getAttributePrefix(int index)
- Specified by:
getAttributePrefix
in interfacejavax.xml.stream.XMLStreamReader
-
getAttributeType
public java.lang.String getAttributeType(int index)
- Specified by:
getAttributeType
in interfacejavax.xml.stream.XMLStreamReader
-
getAttributeValue
public java.lang.String getAttributeValue(int index)
- Specified by:
getAttributeValue
in interfacejavax.xml.stream.XMLStreamReader
-
isAttributeSpecified
public boolean isAttributeSpecified(int index)
- Specified by:
isAttributeSpecified
in interfacejavax.xml.stream.XMLStreamReader
-
getNamespaceCount
public int getNamespaceCount()
- Specified by:
getNamespaceCount
in interfacejavax.xml.stream.XMLStreamReader
-
getNamespacePrefix
public java.lang.String getNamespacePrefix(int index)
- Specified by:
getNamespacePrefix
in interfacejavax.xml.stream.XMLStreamReader
-
getNamespaceURI
public java.lang.String getNamespaceURI(int index)
- Specified by:
getNamespaceURI
in interfacejavax.xml.stream.XMLStreamReader
-
getNamespaceContext
public javax.xml.namespace.NamespaceContext getNamespaceContext()
- Specified by:
getNamespaceContext
in interfacejavax.xml.stream.XMLStreamReader
-
getEventType
public int getEventType()
- Specified by:
getEventType
in interfacejavax.xml.stream.XMLStreamReader
-
getText
public java.lang.String getText()
- Specified by:
getText
in interfacejavax.xml.stream.XMLStreamReader
-
getTextCharacters
public char[] getTextCharacters()
- Specified by:
getTextCharacters
in interfacejavax.xml.stream.XMLStreamReader
-
getTextCharacters
public int getTextCharacters(int sourceStart, char[] target, int targetStart, int length) throws javax.xml.stream.XMLStreamException
- Specified by:
getTextCharacters
in interfacejavax.xml.stream.XMLStreamReader
- Throws:
javax.xml.stream.XMLStreamException
-
getTextStart
public int getTextStart()
- Specified by:
getTextStart
in interfacejavax.xml.stream.XMLStreamReader
-
getTextLength
public int getTextLength()
- Specified by:
getTextLength
in interfacejavax.xml.stream.XMLStreamReader
-
getEncoding
public java.lang.String getEncoding()
- Specified by:
getEncoding
in interfacejavax.xml.stream.XMLStreamReader
-
hasText
public boolean hasText()
- Specified by:
hasText
in interfacejavax.xml.stream.XMLStreamReader
-
getLocation
public javax.xml.stream.Location getLocation()
- Specified by:
getLocation
in interfacejavax.xml.stream.XMLStreamReader
-
getName
public javax.xml.namespace.QName getName()
- Specified by:
getName
in interfacejavax.xml.stream.XMLStreamReader
-
getLocalName
public java.lang.String getLocalName()
- Specified by:
getLocalName
in interfacejavax.xml.stream.XMLStreamReader
-
hasName
public boolean hasName()
- Specified by:
hasName
in interfacejavax.xml.stream.XMLStreamReader
-
getNamespaceURI
public java.lang.String getNamespaceURI()
- Specified by:
getNamespaceURI
in interfacejavax.xml.stream.XMLStreamReader
-
getPrefix
public java.lang.String getPrefix()
- Specified by:
getPrefix
in interfacejavax.xml.stream.XMLStreamReader
-
getVersion
public java.lang.String getVersion()
- Specified by:
getVersion
in interfacejavax.xml.stream.XMLStreamReader
-
isStandalone
public boolean isStandalone()
- Specified by:
isStandalone
in interfacejavax.xml.stream.XMLStreamReader
-
standaloneSet
public boolean standaloneSet()
- Specified by:
standaloneSet
in interfacejavax.xml.stream.XMLStreamReader
-
getCharacterEncodingScheme
public java.lang.String getCharacterEncodingScheme()
- Specified by:
getCharacterEncodingScheme
in interfacejavax.xml.stream.XMLStreamReader
-
getPITarget
public java.lang.String getPITarget()
- Specified by:
getPITarget
in interfacejavax.xml.stream.XMLStreamReader
-
getPIData
public java.lang.String getPIData()
- Specified by:
getPIData
in interfacejavax.xml.stream.XMLStreamReader
-
getIntAttributeValue
public int getIntAttributeValue(int index) throws javax.xml.stream.XMLStreamException
Description copied from interface:XMLExtendedStreamReader
Get the value of an attribute as an integer.- Specified by:
getIntAttributeValue
in 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.XMLStreamException
Description copied from interface:XMLExtendedStreamReader
Get the value of an attribute as an integer list.- Specified by:
getIntListAttributeValue
in 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.XMLStreamException
Description copied from interface:XMLExtendedStreamReader
Get the value of an attribute as a space-delimited string list.- Specified by:
getListAttributeValue
in 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.XMLStreamException
Description copied from interface:XMLExtendedStreamReader
Get the value of an attribute as a long.- Specified by:
getLongAttributeValue
in 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.XMLStreamException
Description copied from interface:XMLExtendedStreamReader
Get the value of an attribute as a long integer list.- Specified by:
getLongListAttributeValue
in 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.XMLStreamException
Description copied from interface:XMLExtendedStreamReader
Get the attribute value using intelligent type conversion. Numeric types will be parsed; enum types will be mapped.- Specified by:
getAttributeValue
in 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.XMLStreamException
Description copied from interface:XMLExtendedStreamReader
Get the attribute value as a list using intelligent type conversion. Numeric types will be parsed; enum types will be mapped.- Specified by:
getListAttributeValue
in 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.XMLStreamException
Description copied from interface:XMLExtendedStreamReader
Get the XML ID attribute, if any.- Specified by:
getId
in 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:
getXMLMapper
in 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)
-
-