org.apache.axis2.databinding.utils.reader
Class ADBXMLStreamReaderImpl

java.lang.Object
  extended by org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl
All Implemented Interfaces:
XMLStreamConstants, XMLStreamReader, Constants, ADBXMLStreamReader

public class ADBXMLStreamReaderImpl
extends Object
implements ADBXMLStreamReader

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


Field Summary
 
Fields inherited from interface org.apache.axis2.databinding.utils.reader.ADBXMLStreamReader
ELEMENT_TEXT
 
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
 
Fields inherited from interface org.apache.axis2.databinding.utils.Constants
DATA_HANDLER, IS_BINARY, NIL, OM_ATTRIBUTE_KEY, OM_ELEMENT_KEY, OPTIMIZATION_ENABLED, TRUE, XSD_NAMESPACE, XSI_NAMESPACE
 
Constructor Summary
ADBXMLStreamReaderImpl(QName adbBeansQName, Object[] properties, Object[] attributes)
           
ADBXMLStreamReaderImpl(QName adbBeansQName, Object[] properties, Object[] attributes, TypeTable typeTable, boolean qualified)
           
 
Method Summary
 void addNamespaceContext(NamespaceContext nsContext)
          add the namespace context
 void close()
           
 int getAttributeCount()
           
 String getAttributeLocalName(int i)
           
 QName getAttributeName(int i)
           
 String getAttributeNamespace(int i)
           
 String getAttributePrefix(int i)
           
 String getAttributeType(int i)
           
 String getAttributeValue(int i)
           
 String getAttributeValue(String nsUri, String localName)
           
 String getCharacterEncodingScheme()
           
 String getElementText()
          todo implement the right contract for this
 String getEncoding()
           
 int getEventType()
           
 String getLocalName()
           
 Location getLocation()
           
 QName getName()
           
 NamespaceContext getNamespaceContext()
           
 int getNamespaceCount()
           
 String getNamespacePrefix(int i)
           
 String getNamespaceURI()
           
 String getNamespaceURI(int i)
           
 String getNamespaceURI(String prefix)
           
 String getPIData()
           
 String getPITarget()
           
 String getPrefix()
           
 Object getProperty(String key)
           
 String getText()
           
 char[] getTextCharacters()
           
 int getTextCharacters(int i, char[] chars, int i1, int i2)
           
 int getTextLength()
           
 int getTextStart()
           
 String getVersion()
           
 boolean hasName()
           
 boolean hasNext()
           
 boolean hasText()
          check the validity of this implementation
 void init()
          we need to split out the calling to the populate namespaces seperately since this needs to be done *after* setting the parent namespace context.
 boolean isAttributeSpecified(int i)
           
 boolean isCharacters()
           
 boolean isDone()
          are we done ?
 boolean isEndElement()
           
 boolean isStandalone()
           
 boolean isStartElement()
           
 boolean isWhiteSpace()
           
 int next()
          By far this should be the most important method in this class this method changes the state of the parser
 int nextTag()
          todo implement this
 void require(int i, String string, String string1)
           
 boolean standaloneSet()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ADBXMLStreamReaderImpl

public ADBXMLStreamReaderImpl(QName adbBeansQName,
                              Object[] properties,
                              Object[] attributes)

ADBXMLStreamReaderImpl

public ADBXMLStreamReaderImpl(QName adbBeansQName,
                              Object[] properties,
                              Object[] attributes,
                              TypeTable typeTable,
                              boolean qualified)
Method Detail

addNamespaceContext

public void addNamespaceContext(NamespaceContext nsContext)
add the namespace context

Specified by:
addNamespaceContext in interface ADBXMLStreamReader

init

public void init()
we need to split out the calling to the populate namespaces seperately since this needs to be done *after* setting the parent namespace context. We cannot assume it will happen at construction!

Specified by:
init in interface ADBXMLStreamReader

getProperty

public Object getProperty(String key)
                   throws IllegalArgumentException
Specified by:
getProperty in interface XMLStreamReader
Parameters:
key -
Throws:
IllegalArgumentException

require

public void require(int i,
                    String string,
                    String string1)
             throws XMLStreamException
Specified by:
require in interface XMLStreamReader
Throws:
XMLStreamException

getElementText

public String getElementText()
                      throws XMLStreamException
todo implement the right contract for this

Specified by:
getElementText in interface XMLStreamReader
Throws:
XMLStreamException

nextTag

public int nextTag()
            throws XMLStreamException
todo implement this

Specified by:
nextTag in interface XMLStreamReader
Throws:
XMLStreamException

hasNext

public boolean hasNext()
                throws XMLStreamException
Specified by:
hasNext in interface XMLStreamReader
Throws:
XMLStreamException

close

public void close()
           throws XMLStreamException
Specified by:
close in interface XMLStreamReader
Throws:
XMLStreamException

getNamespaceURI

public String getNamespaceURI(String prefix)
Specified by:
getNamespaceURI in interface XMLStreamReader

isStartElement

public boolean isStartElement()
Specified by:
isStartElement in interface XMLStreamReader

isEndElement

public boolean isEndElement()
Specified by:
isEndElement in interface XMLStreamReader

isCharacters

public boolean isCharacters()
Specified by:
isCharacters in interface XMLStreamReader

isWhiteSpace

public boolean isWhiteSpace()
Specified by:
isWhiteSpace in interface XMLStreamReader

getAttributeValue

public String getAttributeValue(String nsUri,
                                String localName)
Specified by:
getAttributeValue in interface XMLStreamReader

getAttributeCount

public int getAttributeCount()
Specified by:
getAttributeCount in interface XMLStreamReader

getAttributeName

public QName getAttributeName(int i)
Specified by:
getAttributeName in interface XMLStreamReader
Parameters:
i -

getAttributeNamespace

public String getAttributeNamespace(int i)
Specified by:
getAttributeNamespace in interface XMLStreamReader

getAttributeLocalName

public String getAttributeLocalName(int i)
Specified by:
getAttributeLocalName in interface XMLStreamReader

getAttributePrefix

public String getAttributePrefix(int i)
Specified by:
getAttributePrefix in interface XMLStreamReader

getAttributeType

public String getAttributeType(int i)
Specified by:
getAttributeType in interface XMLStreamReader

getAttributeValue

public String getAttributeValue(int i)
Specified by:
getAttributeValue in interface XMLStreamReader

isAttributeSpecified

public boolean isAttributeSpecified(int i)
Specified by:
isAttributeSpecified in interface XMLStreamReader

getNamespaceCount

public int getNamespaceCount()
Specified by:
getNamespaceCount in interface XMLStreamReader

getNamespacePrefix

public String getNamespacePrefix(int i)
Specified by:
getNamespacePrefix in interface XMLStreamReader
Parameters:
i -

getNamespaceURI

public String getNamespaceURI(int i)
Specified by:
getNamespaceURI in interface XMLStreamReader

getNamespaceContext

public NamespaceContext getNamespaceContext()
Specified by:
getNamespaceContext in interface XMLStreamReader

getEventType

public int getEventType()
Specified by:
getEventType in interface XMLStreamReader

getText

public String getText()
Specified by:
getText in interface XMLStreamReader

getTextCharacters

public char[] getTextCharacters()
Specified by:
getTextCharacters in interface XMLStreamReader

getTextCharacters

public int getTextCharacters(int i,
                             char[] chars,
                             int i1,
                             int i2)
                      throws XMLStreamException
Specified by:
getTextCharacters in interface XMLStreamReader
Throws:
XMLStreamException

getTextStart

public int getTextStart()
Specified by:
getTextStart in interface XMLStreamReader

getTextLength

public int getTextLength()
Specified by:
getTextLength in interface XMLStreamReader

getEncoding

public String getEncoding()
Specified by:
getEncoding in interface XMLStreamReader

hasText

public boolean hasText()
check the validity of this implementation

Specified by:
hasText in interface XMLStreamReader

getLocation

public Location getLocation()
Specified by:
getLocation in interface XMLStreamReader

getName

public QName getName()
Specified by:
getName in interface XMLStreamReader

getLocalName

public String getLocalName()
Specified by:
getLocalName in interface XMLStreamReader

hasName

public boolean hasName()
Specified by:
hasName in interface XMLStreamReader

getNamespaceURI

public String getNamespaceURI()
Specified by:
getNamespaceURI in interface XMLStreamReader

getPrefix

public String getPrefix()
Specified by:
getPrefix in interface XMLStreamReader

getVersion

public String getVersion()
Specified by:
getVersion in interface XMLStreamReader

isStandalone

public boolean isStandalone()
Specified by:
isStandalone in interface XMLStreamReader

standaloneSet

public boolean standaloneSet()
Specified by:
standaloneSet in interface XMLStreamReader

getCharacterEncodingScheme

public String getCharacterEncodingScheme()
Specified by:
getCharacterEncodingScheme in interface XMLStreamReader

getPITarget

public String getPITarget()
Specified by:
getPITarget in interface XMLStreamReader

getPIData

public String getPIData()
Specified by:
getPIData in interface XMLStreamReader

next

public int next()
         throws XMLStreamException
By far this should be the most important method in this class this method changes the state of the parser

Specified by:
next in interface XMLStreamReader
Throws:
XMLStreamException

isDone

public boolean isDone()
are we done ?

Specified by:
isDone in interface ADBXMLStreamReader


Copyright © 2004-2012 The Apache Software Foundation. All Rights Reserved.