Class AsyncByteScanner

All Implemented Interfaces:
AsyncInputFeeder, XmlConsts, NamespaceContext, XMLStreamConstants
Direct Known Subclasses:
AsyncByteArrayScanner, AsyncByteBufferScanner

public abstract class AsyncByteScanner extends ByteBasedScanner implements AsyncInputFeeder
  • Field Details

    • EVENT_INCOMPLETE

      protected static final int EVENT_INCOMPLETE
      See Also:
    • STATE_DEFAULT

      protected static final int STATE_DEFAULT
      Default starting state for many events/contexts -- nothing has been seen so far, no event incomplete. Not used for all event types.
      See Also:
    • STATE_PROLOG_INITIAL

      protected static final int STATE_PROLOG_INITIAL
      State in which a less-than sign has been seen
      See Also:
    • STATE_PROLOG_SEEN_LT

      protected static final int STATE_PROLOG_SEEN_LT
      See Also:
    • STATE_PROLOG_DECL

      protected static final int STATE_PROLOG_DECL
      See Also:
    • STATE_TREE_SEEN_LT

      protected static final int STATE_TREE_SEEN_LT
      See Also:
    • STATE_TREE_SEEN_AMP

      protected static final int STATE_TREE_SEEN_AMP
      See Also:
    • STATE_TREE_SEEN_EXCL

      protected static final int STATE_TREE_SEEN_EXCL
      See Also:
    • STATE_TREE_SEEN_SLASH

      protected static final int STATE_TREE_SEEN_SLASH
      See Also:
    • STATE_TREE_NUMERIC_ENTITY_START

      protected static final int STATE_TREE_NUMERIC_ENTITY_START
      See Also:
    • STATE_TREE_NAMED_ENTITY_START

      protected static final int STATE_TREE_NAMED_ENTITY_START
      See Also:
    • STATE_XMLDECL_AFTER_XML

      protected static final int STATE_XMLDECL_AFTER_XML
      See Also:
    • STATE_XMLDECL_BEFORE_VERSION

      protected static final int STATE_XMLDECL_BEFORE_VERSION
      See Also:
    • STATE_XMLDECL_VERSION

      protected static final int STATE_XMLDECL_VERSION
      See Also:
    • STATE_XMLDECL_AFTER_VERSION

      protected static final int STATE_XMLDECL_AFTER_VERSION
      See Also:
    • STATE_XMLDECL_VERSION_EQ

      protected static final int STATE_XMLDECL_VERSION_EQ
      See Also:
    • STATE_XMLDECL_VERSION_VALUE

      protected static final int STATE_XMLDECL_VERSION_VALUE
      See Also:
    • STATE_XMLDECL_AFTER_VERSION_VALUE

      protected static final int STATE_XMLDECL_AFTER_VERSION_VALUE
      See Also:
    • STATE_XMLDECL_BEFORE_ENCODING

      protected static final int STATE_XMLDECL_BEFORE_ENCODING
      See Also:
    • STATE_XMLDECL_ENCODING

      protected static final int STATE_XMLDECL_ENCODING
      See Also:
    • STATE_XMLDECL_AFTER_ENCODING

      protected static final int STATE_XMLDECL_AFTER_ENCODING
      See Also:
    • STATE_XMLDECL_ENCODING_EQ

      protected static final int STATE_XMLDECL_ENCODING_EQ
      See Also:
    • STATE_XMLDECL_ENCODING_VALUE

      protected static final int STATE_XMLDECL_ENCODING_VALUE
      See Also:
    • STATE_XMLDECL_AFTER_ENCODING_VALUE

      protected static final int STATE_XMLDECL_AFTER_ENCODING_VALUE
      See Also:
    • STATE_XMLDECL_BEFORE_STANDALONE

      protected static final int STATE_XMLDECL_BEFORE_STANDALONE
      See Also:
    • STATE_XMLDECL_STANDALONE

      protected static final int STATE_XMLDECL_STANDALONE
      See Also:
    • STATE_XMLDECL_AFTER_STANDALONE

      protected static final int STATE_XMLDECL_AFTER_STANDALONE
      See Also:
    • STATE_XMLDECL_STANDALONE_EQ

      protected static final int STATE_XMLDECL_STANDALONE_EQ
      See Also:
    • STATE_XMLDECL_STANDALONE_VALUE

      protected static final int STATE_XMLDECL_STANDALONE_VALUE
      See Also:
    • STATE_XMLDECL_AFTER_STANDALONE_VALUE

      protected static final int STATE_XMLDECL_AFTER_STANDALONE_VALUE
      See Also:
    • STATE_XMLDECL_ENDQ

      protected static final int STATE_XMLDECL_ENDQ
      See Also:
    • STATE_DTD_DOCTYPE

      protected static final int STATE_DTD_DOCTYPE
      See Also:
    • STATE_DTD_AFTER_DOCTYPE

      protected static final int STATE_DTD_AFTER_DOCTYPE
      See Also:
    • STATE_DTD_BEFORE_ROOT_NAME

      protected static final int STATE_DTD_BEFORE_ROOT_NAME
      See Also:
    • STATE_DTD_ROOT_NAME

      protected static final int STATE_DTD_ROOT_NAME
      See Also:
    • STATE_DTD_AFTER_ROOT_NAME

      protected static final int STATE_DTD_AFTER_ROOT_NAME
      See Also:
    • STATE_DTD_BEFORE_IDS

      protected static final int STATE_DTD_BEFORE_IDS
      See Also:
    • STATE_DTD_PUBLIC_OR_SYSTEM

      protected static final int STATE_DTD_PUBLIC_OR_SYSTEM
      See Also:
    • STATE_DTD_AFTER_PUBLIC

      protected static final int STATE_DTD_AFTER_PUBLIC
      See Also:
    • STATE_DTD_AFTER_SYSTEM

      protected static final int STATE_DTD_AFTER_SYSTEM
      See Also:
    • STATE_DTD_BEFORE_PUBLIC_ID

      protected static final int STATE_DTD_BEFORE_PUBLIC_ID
      See Also:
    • STATE_DTD_PUBLIC_ID

      protected static final int STATE_DTD_PUBLIC_ID
      See Also:
    • STATE_DTD_AFTER_PUBLIC_ID

      protected static final int STATE_DTD_AFTER_PUBLIC_ID
      See Also:
    • STATE_DTD_BEFORE_SYSTEM_ID

      protected static final int STATE_DTD_BEFORE_SYSTEM_ID
      See Also:
    • STATE_DTD_SYSTEM_ID

      protected static final int STATE_DTD_SYSTEM_ID
      See Also:
    • STATE_DTD_AFTER_SYSTEM_ID

      protected static final int STATE_DTD_AFTER_SYSTEM_ID
      See Also:
    • STATE_DTD_INT_SUBSET

      protected static final int STATE_DTD_INT_SUBSET
      See Also:
    • STATE_DTD_EXPECT_CLOSING_GT

      protected static final int STATE_DTD_EXPECT_CLOSING_GT
      See Also:
    • STATE_TEXT_AMP

      protected static final int STATE_TEXT_AMP
      See Also:
    • STATE_TEXT_AMP_NAME

      protected static final int STATE_TEXT_AMP_NAME
      See Also:
    • STATE_COMMENT_CONTENT

      protected static final int STATE_COMMENT_CONTENT
      See Also:
    • STATE_COMMENT_HYPHEN

      protected static final int STATE_COMMENT_HYPHEN
      See Also:
    • STATE_COMMENT_HYPHEN2

      protected static final int STATE_COMMENT_HYPHEN2
      See Also:
    • STATE_CDATA_CONTENT

      protected static final int STATE_CDATA_CONTENT
      See Also:
    • STATE_CDATA_C

      protected static final int STATE_CDATA_C
      See Also:
    • STATE_CDATA_CD

      protected static final int STATE_CDATA_CD
      See Also:
    • STATE_CDATA_CDA

      protected static final int STATE_CDATA_CDA
      See Also:
    • STATE_CDATA_CDAT

      protected static final int STATE_CDATA_CDAT
      See Also:
    • STATE_CDATA_CDATA

      protected static final int STATE_CDATA_CDATA
      See Also:
    • STATE_PI_AFTER_TARGET

      protected static final int STATE_PI_AFTER_TARGET
      See Also:
    • STATE_PI_AFTER_TARGET_WS

      protected static final int STATE_PI_AFTER_TARGET_WS
      See Also:
    • STATE_PI_AFTER_TARGET_QMARK

      protected static final int STATE_PI_AFTER_TARGET_QMARK
      See Also:
    • STATE_PI_IN_TARGET

      protected static final int STATE_PI_IN_TARGET
      See Also:
    • STATE_PI_IN_DATA

      protected static final int STATE_PI_IN_DATA
      See Also:
    • STATE_SE_ELEM_NAME

      protected static final int STATE_SE_ELEM_NAME
      See Also:
    • STATE_SE_SPACE_OR_END

      protected static final int STATE_SE_SPACE_OR_END
      See Also:
    • STATE_SE_SPACE_OR_ATTRNAME

      protected static final int STATE_SE_SPACE_OR_ATTRNAME
      See Also:
    • STATE_SE_ATTR_NAME

      protected static final int STATE_SE_ATTR_NAME
      See Also:
    • STATE_SE_SPACE_OR_EQ

      protected static final int STATE_SE_SPACE_OR_EQ
      See Also:
    • STATE_SE_SPACE_OR_ATTRVALUE

      protected static final int STATE_SE_SPACE_OR_ATTRVALUE
      See Also:
    • STATE_SE_ATTR_VALUE_NORMAL

      protected static final int STATE_SE_ATTR_VALUE_NORMAL
      See Also:
    • STATE_SE_ATTR_VALUE_NSDECL

      protected static final int STATE_SE_ATTR_VALUE_NSDECL
      See Also:
    • STATE_SE_SEEN_SLASH

      protected static final int STATE_SE_SEEN_SLASH
      See Also:
    • STATE_EE_NEED_GT

      protected static final int STATE_EE_NEED_GT
      See Also:
    • PENDING_STATE_CR

      protected static final int PENDING_STATE_CR
      See Also:
    • PENDING_STATE_XMLDECL_LT

      protected static final int PENDING_STATE_XMLDECL_LT
      See Also:
    • PENDING_STATE_XMLDECL_LTQ

      protected static final int PENDING_STATE_XMLDECL_LTQ
      See Also:
    • PENDING_STATE_XMLDECL_TARGET

      protected static final int PENDING_STATE_XMLDECL_TARGET
      See Also:
    • PENDING_STATE_PI_QMARK

      protected static final int PENDING_STATE_PI_QMARK
      See Also:
    • PENDING_STATE_COMMENT_HYPHEN1

      protected static final int PENDING_STATE_COMMENT_HYPHEN1
      See Also:
    • PENDING_STATE_COMMENT_HYPHEN2

      protected static final int PENDING_STATE_COMMENT_HYPHEN2
      See Also:
    • PENDING_STATE_CDATA_BRACKET1

      protected static final int PENDING_STATE_CDATA_BRACKET1
      See Also:
    • PENDING_STATE_CDATA_BRACKET2

      protected static final int PENDING_STATE_CDATA_BRACKET2
      See Also:
    • PENDING_STATE_ENT_SEEN_HASH

      protected static final int PENDING_STATE_ENT_SEEN_HASH
      See Also:
    • PENDING_STATE_ENT_SEEN_HASH_X

      protected static final int PENDING_STATE_ENT_SEEN_HASH_X
      See Also:
    • PENDING_STATE_ENT_IN_DEC_DIGIT

      protected static final int PENDING_STATE_ENT_IN_DEC_DIGIT
      See Also:
    • PENDING_STATE_ENT_IN_HEX_DIGIT

      protected static final int PENDING_STATE_ENT_IN_HEX_DIGIT
      See Also:
    • PENDING_STATE_ATTR_VALUE_AMP

      protected static final int PENDING_STATE_ATTR_VALUE_AMP
      See Also:
    • PENDING_STATE_ATTR_VALUE_AMP_HASH

      protected static final int PENDING_STATE_ATTR_VALUE_AMP_HASH
      See Also:
    • PENDING_STATE_ATTR_VALUE_AMP_HASH_X

      protected static final int PENDING_STATE_ATTR_VALUE_AMP_HASH_X
      See Also:
    • PENDING_STATE_ATTR_VALUE_ENTITY_NAME

      protected static final int PENDING_STATE_ATTR_VALUE_ENTITY_NAME
      See Also:
    • PENDING_STATE_ATTR_VALUE_DEC_DIGIT

      protected static final int PENDING_STATE_ATTR_VALUE_DEC_DIGIT
      See Also:
    • PENDING_STATE_ATTR_VALUE_HEX_DIGIT

      protected static final int PENDING_STATE_ATTR_VALUE_HEX_DIGIT
      See Also:
    • PENDING_STATE_TEXT_AMP

      protected static final int PENDING_STATE_TEXT_AMP
      See Also:
    • PENDING_STATE_TEXT_AMP_HASH

      protected static final int PENDING_STATE_TEXT_AMP_HASH
      See Also:
    • PENDING_STATE_TEXT_DEC_ENTITY

      protected static final int PENDING_STATE_TEXT_DEC_ENTITY
      See Also:
    • PENDING_STATE_TEXT_HEX_ENTITY

      protected static final int PENDING_STATE_TEXT_HEX_ENTITY
      See Also:
    • PENDING_STATE_TEXT_IN_ENTITY

      protected static final int PENDING_STATE_TEXT_IN_ENTITY
      See Also:
    • PENDING_STATE_TEXT_BRACKET1

      protected static final int PENDING_STATE_TEXT_BRACKET1
      See Also:
    • PENDING_STATE_TEXT_BRACKET2

      protected static final int PENDING_STATE_TEXT_BRACKET2
      See Also:
    • _charTypes

      protected XmlCharTypes _charTypes
      This is a simple container object that is used to access the decoding tables for characters. Indirection is needed since we actually support multiple utf-8 compatible encodings, not just utf-8 itself.

      NOTE: non-final due to xml declaration handling occurring later.

    • _symbols

      protected ByteBasedPNameTable _symbols
      For now, symbol table contains prefixed names. In future it is possible that they may be split into prefixes and local names?

      NOTE: non-final for async scanners

    • _quadBuffer

      protected int[] _quadBuffer
      This buffer is used for name parsing. Will be expanded if/as needed; 32 ints can hold names 128 ascii chars long.
    • _nextEvent

      protected int _nextEvent
      Due to asynchronous nature of parsing, we may know what event we are trying to parse, even if it's not yet complete. Type of that event is stored here.
    • _state

      protected int _state
      In addition to the event type, there is need for additional state information
    • _surroundingEvent

      protected int _surroundingEvent
      For token/state combinations that are 'shared' between events (or embedded in them), this is where the surrounding event state is retained.
    • _pendingInput

      protected int _pendingInput
      There are some multi-byte combinations that must be handled as a unit: CR+LF linefeeds, multi-byte UTF-8 characters, and multi-character end markers for comments and PIs. Since they can be split across input buffer boundaries, first byte(s) may need to be temporarily stored.

      If so, this int will store byte(s), in little-endian format (that is, first pending byte is at 0x000000FF, second [if any] at 0x0000FF00, and third at 0x00FF0000). This can be (and is) used to figure out actual number of bytes pending, for multi-byte (UTF-8) character decoding.

      Note: it is assumed that if value is 0, there is no data. Thus, if 0 needed to be added pending, it has to be masked.

    • _endOfInput

      protected boolean _endOfInput
      Flag that is sent when calling application indicates that there will be no more input to parse.
    • _quadCount

      protected int _quadCount
      Number of complete quads parsed for current name (quads themselves are stored in _quadBuffer).
    • _currQuad

      protected int _currQuad
      Bytes parsed for the current, incomplete, quad
    • _currQuadBytes

      protected int _currQuadBytes
      Number of bytes pending/buffered, stored in _currQuad
    • _entityValue

      protected int _entityValue
      Entity value accumulated so far
    • _elemAllNsBound

      protected boolean _elemAllNsBound
    • _elemAttrCount

      protected boolean _elemAttrCount
    • _elemAttrQuote

      protected byte _elemAttrQuote
    • _elemAttrName

      protected PName _elemAttrName
    • _elemAttrPtr

      protected int _elemAttrPtr
      Pointer for the next character of currently being parsed value within attribute value buffer
    • _elemNsPtr

      protected int _elemNsPtr
      Pointer for the next character of currently being parsed namespace URI for the current namespace declaration
    • _inDtdDeclaration

      protected boolean _inDtdDeclaration
      Flag that indicates whether we are inside a declaration during parsing of internal DTD subset.
  • Constructor Details

    • AsyncByteScanner

      protected AsyncByteScanner(ReaderConfig cfg)
  • Method Details