Package com.ctc.wstx.sr
Class TypedStreamReader
- java.lang.Object
-
- com.ctc.wstx.io.WstxInputData
-
- com.ctc.wstx.sr.StreamScanner
-
- com.ctc.wstx.sr.BasicStreamReader
-
- com.ctc.wstx.sr.TypedStreamReader
-
- All Implemented Interfaces:
InputConfigFlags
,ParsingErrorMsgs
,InputProblemReporter
,StreamReaderImpl
,XMLStreamConstants
,XMLStreamReader
,org.codehaus.stax2.DTDInfo
,org.codehaus.stax2.LocationInfo
,org.codehaus.stax2.typed.TypedXMLStreamReader
,org.codehaus.stax2.validation.Validatable
,org.codehaus.stax2.XMLStreamReader2
- Direct Known Subclasses:
ValidatingStreamReader
public class TypedStreamReader extends BasicStreamReader
Complete implementation ofXMLStreamReader2
, including Typed Access API (Stax2 v3.0) implementation. Only functionality missing is DTD validation, which is provided by a specialized sub-class.
-
-
Field Summary
Fields Modifier and Type Field Description protected org.codehaus.stax2.ri.typed.CharArrayBase64Decoder
_base64Decoder
Lazily-constructed decoder object for decoding base64 encoded element binary content.protected org.codehaus.stax2.ri.typed.ValueDecoderFactory
_decoderFactory
Factory used for constructing decoders we need for typed accessprotected static int
MASK_TYPED_ACCESS_ARRAY
Mask of event types that are legal (starting) states to call Typed Access API from.protected static int
MASK_TYPED_ACCESS_BINARY
-
Fields inherited from class com.ctc.wstx.sr.BasicStreamReader
MASK_GET_ELEMENT_TEXT, MASK_GET_TEXT, MASK_GET_TEXT_WITH_WRITER, MASK_GET_TEXT_XXX, mAttrCollector, mCfgCoalesceText, mCfgLazyParsing, mCfgReportTextAsChars, mCheckIndentation, mConfigFlags, mCurrTextLength, mCurrToken, mDocStandalone, mDtdPublicId, mDtdSystemId, mElementStack, mGeneralEntities, mOwner, mParseState, mPendingException, mReturnNullForDefaultNamespace, mRootLName, mRootPrefix, mSecondaryToken, mShortestTextSegment, mStDoctypeFound, mStEmptyElem, mStTextThreshold, mTextBuffer, mTokenState, mValidateText, mVldContent, mWsStatus, sPrefixXml, sPrefixXmlns
-
Fields inherited from class com.ctc.wstx.sr.StreamScanner
CHAR_CR_LF_OR_NULL, CHAR_FIRST_PURE_TEXT, CHAR_LOWEST_LEGAL_LOCALNAME_CHAR, INT_CR_LF_OR_NULL, mAllowXml11EscapedCharsInXml10, mCachedEntities, mCfgNsEnabled, mCfgReplaceEntities, mCfgTreatCharRefsAsEntities, mConfig, mCurrDepth, mCurrEntity, mCurrName, mDocInputEncoding, mDocXmlEncoding, mDocXmlVersion, mEntityExpansionCount, mEntityResolver, mInput, mInputTopDepth, mNameBuffer, mNormalizeLFs, mRootInput, mTokenInputCol, mTokenInputRow, mTokenInputTotal
-
Fields inherited from class com.ctc.wstx.io.WstxInputData
CHAR_NULL, CHAR_SPACE, INT_NULL, INT_SPACE, MAX_UNICODE_CHAR, mCurrInputProcessed, mCurrInputRow, mCurrInputRowStart, mInputBuffer, mInputEnd, mInputPtr, mXml11
-
Fields inherited from interface com.ctc.wstx.cfg.InputConfigFlags
CFG_ALLOW_XML11_ESCAPED_CHARS_IN_XML10, CFG_AUTO_CLOSE_INPUT, CFG_CACHE_DTDS, CFG_CACHE_DTDS_BY_PUBLIC_ID, CFG_COALESCE_TEXT, CFG_INTERN_NAMES, CFG_INTERN_NS_URIS, CFG_LAZY_PARSING, CFG_NAMESPACE_AWARE, CFG_NORMALIZE_LFS, CFG_PRESERVE_LOCATION, CFG_REPLACE_ENTITY_REFS, CFG_REPORT_CDATA, CFG_REPORT_PROLOG_WS, CFG_SUPPORT_DTD, CFG_SUPPORT_DTDPP, CFG_SUPPORT_EXTERNAL_ENTITIES, CFG_TREAT_CHAR_REFS_AS_ENTS, CFG_VALIDATE_AGAINST_DTD, CFG_XMLID_TYPING, CFG_XMLID_UNIQ_CHECKS
-
Fields inherited from interface com.ctc.wstx.cfg.ParsingErrorMsgs
SUFFIX_EOF_EXP_NAME, SUFFIX_IN_ATTR_VALUE, SUFFIX_IN_CDATA, SUFFIX_IN_CLOSE_ELEMENT, SUFFIX_IN_COMMENT, SUFFIX_IN_DEF_ATTR_VALUE, SUFFIX_IN_DOC, SUFFIX_IN_DTD, SUFFIX_IN_DTD_EXTERNAL, SUFFIX_IN_DTD_INTERNAL, SUFFIX_IN_ELEMENT, SUFFIX_IN_ENTITY_REF, SUFFIX_IN_EPILOG, SUFFIX_IN_NAME, SUFFIX_IN_PROC_INSTR, SUFFIX_IN_PROLOG, SUFFIX_IN_TEXT, SUFFIX_IN_XML_DECL
-
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
Constructors Modifier Constructor Description protected
TypedStreamReader(InputBootstrapper bs, BranchingReaderSource input, ReaderCreator owner, ReaderConfig cfg, InputElementStack elemStack, boolean forER)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.codehaus.stax2.ri.typed.CharArrayBase64Decoder
_base64Decoder()
protected org.codehaus.stax2.typed.TypedXMLStreamException
_constructTypeException(IllegalArgumentException iae, String lexicalValue)
Method called to wrap or convert given conversion-fail exception into a fullTypedXMLStreamException
,protected org.codehaus.stax2.ri.typed.ValueDecoderFactory
_decoderFactory()
protected QName
_verifyQName(QName n)
Method called to verify validity of the parsed QName element or attribute value.static TypedStreamReader
createStreamReader(BranchingReaderSource input, ReaderCreator owner, ReaderConfig cfg, InputBootstrapper bs, boolean forER)
Factory method for constructing readers.void
getAttributeAs(int index, org.codehaus.stax2.typed.TypedValueDecoder tvd)
int
getAttributeAsArray(int index, org.codehaus.stax2.typed.TypedArrayDecoder tad)
Method that allows reading contents of an attribute as an array of whitespace-separate tokens, decoded using specified decoder.byte[]
getAttributeAsBinary(int index)
byte[]
getAttributeAsBinary(int index, org.codehaus.stax2.typed.Base64Variant v)
boolean
getAttributeAsBoolean(int index)
BigDecimal
getAttributeAsDecimal(int index)
double
getAttributeAsDouble(int index)
double[]
getAttributeAsDoubleArray(int index)
float
getAttributeAsFloat(int index)
float[]
getAttributeAsFloatArray(int index)
int
getAttributeAsInt(int index)
int[]
getAttributeAsIntArray(int index)
BigInteger
getAttributeAsInteger(int index)
long
getAttributeAsLong(int index)
long[]
getAttributeAsLongArray(int index)
QName
getAttributeAsQName(int index)
int
getAttributeIndex(String namespaceURI, String localName)
void
getElementAs(org.codehaus.stax2.typed.TypedValueDecoder tvd)
byte[]
getElementAsBinary()
byte[]
getElementAsBinary(org.codehaus.stax2.typed.Base64Variant v)
boolean
getElementAsBoolean()
BigDecimal
getElementAsDecimal()
double
getElementAsDouble()
float
getElementAsFloat()
int
getElementAsInt()
BigInteger
getElementAsInteger()
long
getElementAsLong()
QName
getElementAsQName()
int
readElementAsArray(org.codehaus.stax2.typed.TypedArrayDecoder dec)
Method called to parse array of primitives.int
readElementAsBinary(byte[] resultBuffer, int offset, int maxLength)
int
readElementAsBinary(byte[] resultBuffer, int offset, int maxLength, org.codehaus.stax2.typed.Base64Variant v)
int
readElementAsDoubleArray(double[] value, int from, int length)
int
readElementAsFloatArray(float[] value, int from, int length)
int
readElementAsIntArray(int[] value, int from, int length)
int
readElementAsLongArray(long[] value, int from, int length)
-
Methods inherited from class com.ctc.wstx.sr.BasicStreamReader
_constructTypeException, _constructUnexpectedInTyped, checkCData, checkKeyword, close, closeCompletely, createElementStack, ensureFinishToken, findEntity, finishDTD, finishToken, fireSaxCharacterEvents, fireSaxCommentEvent, fireSaxEndElement, fireSaxPIEvent, fireSaxSpaceEvents, fireSaxStartElement, getAttributeCollector, getAttributeCount, getAttributeInfo, getAttributeLocalName, getAttributeName, getAttributeNamespace, getAttributePrefix, getAttributeType, getAttributeValue, getAttributeValue, getCharacterEncodingScheme, getCurrentEntityDecl, getDepth, getDTDInfo, getDTDInternalSubset, getDTDPublicId, getDTDRootName, getDTDSystemId, getElementText, getEncoding, getEndingByteOffset, getEndingCharOffset, getEndLocation, getEventType, getFeature, getInputElementStack, getLocalName, getLocation, getLocationInfo, getName, getNamespaceContext, getNamespaceCount, getNamespacePrefix, getNamespaceURI, getNamespaceURI, getNamespaceURI, getNonTransientNamespaceContext, getPIData, getPITarget, getPrefix, getPrefixedName, getProcessedDTD, getProcessedDTDSchema, getProperty, getStartingByteOffset, getStartingCharOffset, getText, getText, getTextCharacters, getTextCharacters, getTextLength, getTextStart, getVersion, handleEOF, handleGreedyEntityProblem, handleIncompleteEntityProblem, handleMultiDocStart, handleMultiDocXmlDecl, handleRootElem, handleUndeclaredEntity, hasConfigFlags, hasName, hasNext, hasText, initValidation, isAttributeSpecified, isCharacters, isEmptyElement, isEndElement, isNamespaceAware, isPropertySupported, isStandalone, isStartElement, isWhiteSpace, next, nextTag, parseQuoted, readCDataSecondary, readCoalescedText, readEndElem, readTextSecondary, reportInvalidContent, require, safeEnsureFinishToken, safeFinishToken, setFeature, setProperty, setValidationProblemHandler, skipElement, skipEquals, skipWS, standaloneSet, stopValidatingAgainst, stopValidatingAgainst, throwNotTextualOrElem, throwUnexpectedEOF, validateAgainst, withStartElement
-
Methods inherited from class com.ctc.wstx.sr.StreamScanner
_reportProblem, _reportProblem, closeAllInput, constructFromIOE, constructLimitViolation, constructNullCharException, constructWfcException, ensureInput, expandBy50Pct, expandEntity, fullyResolveEntity, getConfig, getCurrentInput, getCurrentLocation, getIntEntity, getLastCharLocation, getNameBuffer, getNext, getNextAfterWS, getNextChar, getNextCharAfterWS, getNextCharFromCurrent, getNextInCurrAfterWS, getNextInCurrAfterWS, getSource, getStartLocation, getSystemId, initInputSource, inputInBuffer, loadMore, loadMore, loadMoreFromCurrent, loadMoreFromCurrent, markLF, markLF, parseEntityName, parseFNameForError, parseFullName, parseFullName, parseFullName2, parseLocalName, parseLocalName2, parsePublicId, parseSystemId, parseUntil, peekNext, pushback, reportProblem, reportProblem, reportValidationProblem, reportValidationProblem, reportValidationProblem, reportValidationProblem, reportValidationProblem, resolveCharOnlyEntity, resolveNonCharEntity, resolveSimpleEntity, skipCRLF, skipFullName, throwFromIOE, throwFromStrE, throwInvalidSpace, throwInvalidSpace, throwLazyError, throwNullChar, throwNullParent, throwParseError, throwParseError, throwUnexpectedChar, throwUnexpectedEOB, throwUnexpectedEOF, throwWfcException, tokenTypeDesc, verifyLimit
-
Methods inherited from class com.ctc.wstx.io.WstxInputData
copyBufferStateFrom, findIllegalNameChar, findIllegalNmtokenChar, getCharDesc, isNameChar, isNameChar, isNameStartChar, isNameStartChar, isSpaceChar
-
-
-
-
Field Detail
-
MASK_TYPED_ACCESS_ARRAY
protected static final int MASK_TYPED_ACCESS_ARRAY
Mask of event types that are legal (starting) states to call Typed Access API from.- See Also:
- Constant Field Values
-
MASK_TYPED_ACCESS_BINARY
protected static final int MASK_TYPED_ACCESS_BINARY
- See Also:
- Constant Field Values
-
_decoderFactory
protected org.codehaus.stax2.ri.typed.ValueDecoderFactory _decoderFactory
Factory used for constructing decoders we need for typed access
-
_base64Decoder
protected org.codehaus.stax2.ri.typed.CharArrayBase64Decoder _base64Decoder
Lazily-constructed decoder object for decoding base64 encoded element binary content.
-
-
Constructor Detail
-
TypedStreamReader
protected TypedStreamReader(InputBootstrapper bs, BranchingReaderSource input, ReaderCreator owner, ReaderConfig cfg, InputElementStack elemStack, boolean forER) throws XMLStreamException
- Throws:
XMLStreamException
-
-
Method Detail
-
createStreamReader
public static TypedStreamReader createStreamReader(BranchingReaderSource input, ReaderCreator owner, ReaderConfig cfg, InputBootstrapper bs, boolean forER) throws XMLStreamException
Factory method for constructing readers.- Parameters:
owner
- "Owner" of this reader, factory that created the reader; needed for returning updated symbol table information after parsing.input
- Input source used to read the XML document.cfg
- Object that contains reader configuration info.- Throws:
XMLStreamException
-
getElementAsBoolean
public boolean getElementAsBoolean() throws XMLStreamException
- Throws:
XMLStreamException
-
getElementAsInt
public int getElementAsInt() throws XMLStreamException
- Throws:
XMLStreamException
-
getElementAsLong
public long getElementAsLong() throws XMLStreamException
- Throws:
XMLStreamException
-
getElementAsFloat
public float getElementAsFloat() throws XMLStreamException
- Throws:
XMLStreamException
-
getElementAsDouble
public double getElementAsDouble() throws XMLStreamException
- Throws:
XMLStreamException
-
getElementAsInteger
public BigInteger getElementAsInteger() throws XMLStreamException
- Throws:
XMLStreamException
-
getElementAsDecimal
public BigDecimal getElementAsDecimal() throws XMLStreamException
- Throws:
XMLStreamException
-
getElementAsQName
public QName getElementAsQName() throws XMLStreamException
- Throws:
XMLStreamException
-
getElementAsBinary
public final byte[] getElementAsBinary() throws XMLStreamException
- Throws:
XMLStreamException
-
getElementAsBinary
public byte[] getElementAsBinary(org.codehaus.stax2.typed.Base64Variant v) throws XMLStreamException
- Throws:
XMLStreamException
-
getElementAs
public void getElementAs(org.codehaus.stax2.typed.TypedValueDecoder tvd) throws XMLStreamException
- Throws:
XMLStreamException
-
readElementAsIntArray
public int readElementAsIntArray(int[] value, int from, int length) throws XMLStreamException
- Throws:
XMLStreamException
-
readElementAsLongArray
public int readElementAsLongArray(long[] value, int from, int length) throws XMLStreamException
- Throws:
XMLStreamException
-
readElementAsFloatArray
public int readElementAsFloatArray(float[] value, int from, int length) throws XMLStreamException
- Throws:
XMLStreamException
-
readElementAsDoubleArray
public int readElementAsDoubleArray(double[] value, int from, int length) throws XMLStreamException
- Throws:
XMLStreamException
-
readElementAsArray
public final int readElementAsArray(org.codehaus.stax2.typed.TypedArrayDecoder dec) throws XMLStreamException
Method called to parse array of primitives.!!! 05-Sep-2008, tatu: Current implementation is not optimal either performance-wise, or from getting accurate Location for decoding problems. But it works otherwise, and we need to get Woodstox 4.0 out by the end of the year... so it'll do, for now.
- Returns:
- Number of elements decoded (if any were decoded), or -1 to indicate that no more values can be decoded.
- Throws:
XMLStreamException
-
readElementAsBinary
public final int readElementAsBinary(byte[] resultBuffer, int offset, int maxLength) throws XMLStreamException
- Throws:
XMLStreamException
-
readElementAsBinary
public int readElementAsBinary(byte[] resultBuffer, int offset, int maxLength, org.codehaus.stax2.typed.Base64Variant v) throws XMLStreamException
- Throws:
XMLStreamException
-
getAttributeAsBoolean
public boolean getAttributeAsBoolean(int index) throws XMLStreamException
- Throws:
XMLStreamException
-
getAttributeAsInt
public int getAttributeAsInt(int index) throws XMLStreamException
- Throws:
XMLStreamException
-
getAttributeAsLong
public long getAttributeAsLong(int index) throws XMLStreamException
- Throws:
XMLStreamException
-
getAttributeAsFloat
public float getAttributeAsFloat(int index) throws XMLStreamException
- Throws:
XMLStreamException
-
getAttributeAsDouble
public double getAttributeAsDouble(int index) throws XMLStreamException
- Throws:
XMLStreamException
-
getAttributeAsInteger
public BigInteger getAttributeAsInteger(int index) throws XMLStreamException
- Throws:
XMLStreamException
-
getAttributeAsDecimal
public BigDecimal getAttributeAsDecimal(int index) throws XMLStreamException
- Throws:
XMLStreamException
-
getAttributeAsQName
public QName getAttributeAsQName(int index) throws XMLStreamException
- Throws:
XMLStreamException
-
getAttributeAs
public void getAttributeAs(int index, org.codehaus.stax2.typed.TypedValueDecoder tvd) throws XMLStreamException
- Throws:
XMLStreamException
-
getAttributeAsIntArray
public int[] getAttributeAsIntArray(int index) throws XMLStreamException
- Throws:
XMLStreamException
-
getAttributeAsLongArray
public long[] getAttributeAsLongArray(int index) throws XMLStreamException
- Throws:
XMLStreamException
-
getAttributeAsFloatArray
public float[] getAttributeAsFloatArray(int index) throws XMLStreamException
- Throws:
XMLStreamException
-
getAttributeAsDoubleArray
public double[] getAttributeAsDoubleArray(int index) throws XMLStreamException
- Throws:
XMLStreamException
-
getAttributeAsArray
public int getAttributeAsArray(int index, org.codehaus.stax2.typed.TypedArrayDecoder tad) throws XMLStreamException
Method that allows reading contents of an attribute as an array of whitespace-separate tokens, decoded using specified decoder.- Returns:
- Number of tokens decoded, 0 if none found
- Throws:
XMLStreamException
-
getAttributeAsBinary
public byte[] getAttributeAsBinary(int index) throws XMLStreamException
- Throws:
XMLStreamException
-
getAttributeAsBinary
public byte[] getAttributeAsBinary(int index, org.codehaus.stax2.typed.Base64Variant v) throws XMLStreamException
- Throws:
XMLStreamException
-
_verifyQName
protected QName _verifyQName(QName n) throws org.codehaus.stax2.typed.TypedXMLStreamException
Method called to verify validity of the parsed QName element or attribute value. At this point binding of a prefixed name (if qname has a prefix) has been verified, and thereby prefix also must be valid (since there must have been a preceding declaration). But local name might still not be a legal well-formed xml name, so let's verify that.- Throws:
org.codehaus.stax2.typed.TypedXMLStreamException
-
_decoderFactory
protected org.codehaus.stax2.ri.typed.ValueDecoderFactory _decoderFactory()
-
_base64Decoder
protected org.codehaus.stax2.ri.typed.CharArrayBase64Decoder _base64Decoder()
-
_constructTypeException
protected org.codehaus.stax2.typed.TypedXMLStreamException _constructTypeException(IllegalArgumentException iae, String lexicalValue)
Method called to wrap or convert given conversion-fail exception into a fullTypedXMLStreamException
,- Parameters:
iae
- Problem as reported by converterlexicalValue
- Lexical value (element content, attribute value) that could not be converted succesfully.
-
-