Package org.apache.synapse.commons.staxon.core.json

# Class JsonXMLStreamReader

java.lang.Object
org.apache.synapse.commons.staxon.core.base.AbstractXMLStreamReader<org.apache.synapse.commons.staxon.core.json.JsonXMLStreamReader.ScopeInfo>
org.apache.synapse.commons.staxon.core.json.JsonXMLStreamReader

All Implemented Interfaces:
  `XMLStreamConstants`, `XMLStreamReader`

public class JsonXMLStreamReader extends AbstractXMLStreamReader<org.apache.synapse.commons.staxon.core.json.JsonXMLStreamReader.ScopeInfo>
JSON XML stream reader.

#### Limitations

- Mixed content (e.g. `<alice>bob<edgar/></alice>`) is not supported.

The reader may produce processing instructions `<?xml-multiple element-name?>` to indicate array starts (`'['`).

- ## Field Summary

  ### 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
  Constructor
  Description
  `JsonXMLStreamReader(JsonStreamSource source, boolean multiplePI, char namespaceSeparator)`
  Create reader instance.
  `JsonXMLStreamReader(JsonStreamSource source, boolean multiplePI, char namespaceSeparator, boolean xmlNilReadWriteEnabled)`
  Create reader instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  `protected boolean`
  `consume()`
  Main method to be implemented by subclasses.
  `Boolean`
  `getBoolean()`
  `Number`
  `getNumber()`
  `boolean`
  `hasBoolean()`
  `boolean`
  `hasNumber()`

  ### Methods inherited from class org.apache.synapse.commons.staxon.core.base.AbstractXMLStreamReader

  `getAttributeCount, getAttributeLocalName, getAttributeName, getAttributeNamespace, getAttributePrefix, getAttributeType, getAttributeValue, getAttributeValue, getCharacterEncodingScheme, getElementText, getEncoding, getEventData, getEventName, getEventType, getLocalName, getLocation, getName, getNamespaceContext, getNamespaceCount, getNamespacePrefix, getNamespaceURI, getNamespaceURI, getNamespaceURI, getPIData, getPITarget, getPrefix, getProperty, getScope, getText, getTextCharacters, getTextCharacters, getTextLength, getTextStart, getVersion, hasName, hasNext, hasText, initialize, isAttributeSpecified, isCharacters, isEndElement, isStandalone, isStartDocumentRead, isStartElement, isWhiteSpace, next, nextTag, readAttr, readData, readEndDocument, readEndElementTag, readNsDecl, readPI, readStartDocument, readStartElementTag, require, standaloneSet, toString`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### JsonXMLStreamReader

    public JsonXMLStreamReader(JsonStreamSource source, boolean multiplePI, char namespaceSeparator) throws XMLStreamException
    Create reader instance.
    Parameters:
      `source` - stream source
      `multiplePI` - whether to produce `<xml-multiple?>` PIs to signal array start
      `namespaceSeparator` - namespace prefix separator
    Throws:
      `XMLStreamException`

  - ### JsonXMLStreamReader

    public JsonXMLStreamReader(JsonStreamSource source, boolean multiplePI, char namespaceSeparator, boolean xmlNilReadWriteEnabled) throws XMLStreamException
    Create reader instance.
    Parameters:
      `source` - stream source
      `multiplePI` - whether to produce `<xml-multiple?>` PIs to signal array start
      `namespaceSeparator` - namespace prefix separator
      `xmlNilReadWriteEnabled` - Supports reading and writing of XML Nil elements as defined by http://www.w3.org/TR/xmlschema-1/#xsi_nil when the XML/JSON inputs contains nil/null values.
    Throws:
      `XMLStreamException`

- ## Method Details

  - ### consume

    protected boolean consume() throws XMLStreamException, IOException
    Description copied from class: `AbstractXMLStreamReader`
    Main method to be implemented by subclasses. This method is called by the reader when the event queue runs dry. Consume some events and delegate to the various `readXXX()` methods. When encountering an element start event, all attributes and namespace delarations must be consumed too, otherwise these won't be available during start element.
    Specified by:
      `consume` in class `AbstractXMLStreamReader<org.apache.synapse.commons.staxon.core.json.JsonXMLStreamReader.ScopeInfo>`
    Returns:
      `true` if there's more to read
    Throws:
      `XMLStreamException`
      `IOException`

  - ### hasNumber

    public boolean hasNumber()
    Returns:
      `true` iff the current event data is a number primitive

  - ### getNumber

    public Number getNumber()
    Returns:
      number primitive
    Throws:
      `ClassCastException`

  - ### hasBoolean

    public boolean hasBoolean()
    Returns:
      `true` iff the current event data is a boolean primitive

  - ### getBoolean

    public Boolean getBoolean()
    Returns:
      boolean primitive
    Throws:
      `ClassCastException`

  - ### close

    public void close() throws XMLStreamException
    Specified by:
      `close` in interface `XMLStreamReader`
    Overrides:
      `close` in class `AbstractXMLStreamReader<org.apache.synapse.commons.staxon.core.json.JsonXMLStreamReader.ScopeInfo>`
    Throws:
      `XMLStreamException`