Class ADBXMLStreamReaderImpl

java.lang.Object
org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl
All Implemented Interfaces:
XMLStreamConstants, XMLStreamReader, org.apache.axiom.ext.stax.BlobReader, Constants, ADBXMLStreamReader

public class ADBXMLStreamReaderImpl extends Object implements ADBXMLStreamReader, org.apache.axiom.ext.stax.BlobReader
This is the new implementation of the ADBpullaparser. The approach here is simple When the pull parser needs to generate events for a particular name-value(s) pair it always handes over (delegates) the task to another pull parser which knows how to deal with it The common types of name value pairs we'll come across are 1. String name/QName name - String value 2. String name/QName name - String[] value 3. OMElementkey - OMElement value 4. QName name/String name - ADBBean value 5. QName name/String name - Java bean 5. QName name/String name - Datahandler

As for the attributes, these are the possible combinations in the array 1. String name/QName name - String value 2. OMAttributeKey - OMAttribute

Note that certain array methods have been deliberately removed to avoid complications. The generated code will take the trouble to lay the elements of the array in the correct order

Hence there will be a parser impl that knows how to handle these types, and this parent parser will always delegate these tasks to the child pullparasers in effect this is one huge state machine that has only a few states and delegates things down to the child parsers whenever possible