org.apache.axis.encoding
Class DeserializationContext

java.lang.Object
  |
  +--org.xml.sax.helpers.DefaultHandler
        |
        +--org.apache.axis.encoding.DeserializationContext
All Implemented Interfaces:
org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

public class DeserializationContext
extends org.xml.sax.helpers.DefaultHandler

Author:
Glen Daniels (gdaniels@macromedia.com)

Field Summary
 boolean doneParsing
           
 SOAPEnvelope envelope
           
protected  HandlerFactory initialFactory
           
protected  org.xml.sax.InputSource inputSource
           
protected  MessageContext msgContext
           
protected  int startOfMappingsPos
           
 
Constructor Summary
DeserializationContext(org.xml.sax.InputSource is, MessageContext ctx, java.lang.String messageType)
           
DeserializationContext(org.xml.sax.InputSource is, MessageContext ctx, java.lang.String messageType, SOAPEnvelope env)
           
DeserializationContext(MessageContext ctx, EnvelopeBuilder initialHandler)
           
 
Method Summary
 void addObjectById(java.lang.String _id, java.lang.Object obj)
          Add the object associated with this id.
 void characters(char[] p1, int p2, int p3)
           
 void endDocument()
           
 void endElement(java.lang.String namespace, java.lang.String localName, java.lang.String qName)
           
 void endPrefixMapping(java.lang.String prefix)
           
 MessageElement getCurElement()
           
 java.util.ArrayList getCurrentNSMappings()
           
 int getCurrentRecordPos()
           
 MessageElement getElementByID(java.lang.String id)
          Get the MessageElement with a particular ID
 SOAPEnvelope getEnvelope()
           
 MessageContext getMessageContext()
           
 java.lang.String getNamespaceURI(java.lang.String prefix)
          Grab a namespace prefix
 java.lang.Object getObjectByRef(java.lang.String href)
          Get the object referenced by the href.
 QName getQNameFromString(java.lang.String qNameStr)
           
 SAX2EventRecorder getRecorder()
           
 int getStartOfMappingsPos()
           
 SOAPHandler getTopHandler()
          Management of sub-handlers (deserializers)
 QName getTypeFromAttributes(java.lang.String namespace, java.lang.String localName, org.xml.sax.Attributes attrs)
           
 TypeMappingRegistry getTypeMappingRegistry()
           
 void ignorableWhitespace(char[] p1, int p2, int p3)
           
 void parse()
           
 SOAPHandler popElementHandler()
           
 void processingInstruction(java.lang.String p1, java.lang.String p2)
           
 void pushElementHandler(SOAPHandler handler)
           
 void pushNewElement(MessageElement elem)
           
 void registerElementByID(java.lang.String id, MessageElement elem)
           
 void registerFixup(java.lang.String id, Deserializer dser)
           
 void registerResolverForID(java.lang.String id, IDResolver resolver)
           
 void setCurElement(MessageElement el)
           
 void setDocumentLocator(org.xml.sax.Locator locator)
           
 void skippedEntity(java.lang.String p1)
           
 void startDocument()
          SAX event handlers
 void startElement(java.lang.String namespace, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attributes)
          This is a big workhorse.
 void startPrefixMapping(java.lang.String prefix, java.lang.String uri)
          Record the current set of prefix mappings in the nsMappings table.
 
Methods inherited from class org.xml.sax.helpers.DefaultHandler
error, fatalError, notationDecl, resolveEntity, unparsedEntityDecl, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

envelope

public SOAPEnvelope envelope

msgContext

protected MessageContext msgContext

initialFactory

protected HandlerFactory initialFactory

doneParsing

public boolean doneParsing

inputSource

protected org.xml.sax.InputSource inputSource

startOfMappingsPos

protected int startOfMappingsPos
Constructor Detail

DeserializationContext

public DeserializationContext(MessageContext ctx,
                              EnvelopeBuilder initialHandler)

DeserializationContext

public DeserializationContext(org.xml.sax.InputSource is,
                              MessageContext ctx,
                              java.lang.String messageType)

DeserializationContext

public DeserializationContext(org.xml.sax.InputSource is,
                              MessageContext ctx,
                              java.lang.String messageType,
                              SOAPEnvelope env)
Method Detail

getCurElement

public MessageElement getCurElement()

setCurElement

public void setCurElement(MessageElement el)

parse

public void parse()
           throws org.xml.sax.SAXException

getMessageContext

public MessageContext getMessageContext()

getEnvelope

public SOAPEnvelope getEnvelope()

getRecorder

public SAX2EventRecorder getRecorder()

getCurrentNSMappings

public java.util.ArrayList getCurrentNSMappings()

getNamespaceURI

public java.lang.String getNamespaceURI(java.lang.String prefix)
Grab a namespace prefix

getQNameFromString

public QName getQNameFromString(java.lang.String qNameStr)

getTypeFromAttributes

public QName getTypeFromAttributes(java.lang.String namespace,
                                   java.lang.String localName,
                                   org.xml.sax.Attributes attrs)

getTypeMappingRegistry

public TypeMappingRegistry getTypeMappingRegistry()

getElementByID

public MessageElement getElementByID(java.lang.String id)
Get the MessageElement with a particular ID

getObjectByRef

public java.lang.Object getObjectByRef(java.lang.String href)
Get the object referenced by the href. The object returned may be a MessageElement requiring deserialization or it may be a deserialized java object.

addObjectById

public void addObjectById(java.lang.String _id,
                          java.lang.Object obj)
Add the object associated with this id. This routine is called to associate the deserialized object with the id specified on the XML element.

registerFixup

public void registerFixup(java.lang.String id,
                          Deserializer dser)

registerElementByID

public void registerElementByID(java.lang.String id,
                                MessageElement elem)

registerResolverForID

public void registerResolverForID(java.lang.String id,
                                  IDResolver resolver)

getCurrentRecordPos

public int getCurrentRecordPos()

getStartOfMappingsPos

public int getStartOfMappingsPos()

pushNewElement

public void pushNewElement(MessageElement elem)

getTopHandler

public SOAPHandler getTopHandler()
Management of sub-handlers (deserializers)

pushElementHandler

public void pushElementHandler(SOAPHandler handler)

popElementHandler

public SOAPHandler popElementHandler()

startDocument

public void startDocument()
                   throws org.xml.sax.SAXException
SAX event handlers
Overrides:
startDocument in class org.xml.sax.helpers.DefaultHandler

endDocument

public void endDocument()
                 throws org.xml.sax.SAXException
Overrides:
endDocument in class org.xml.sax.helpers.DefaultHandler

startPrefixMapping

public void startPrefixMapping(java.lang.String prefix,
                               java.lang.String uri)
                        throws org.xml.sax.SAXException
Record the current set of prefix mappings in the nsMappings table. !!! We probably want to have this mapping be associated with the MessageElements, since they may potentially need access to them long after the end of the prefix mapping here. (example: when we need to record a long string of events scanning forward in the document to find an element with a particular ID.)
Overrides:
startPrefixMapping in class org.xml.sax.helpers.DefaultHandler

endPrefixMapping

public void endPrefixMapping(java.lang.String prefix)
                      throws org.xml.sax.SAXException
Overrides:
endPrefixMapping in class org.xml.sax.helpers.DefaultHandler

setDocumentLocator

public void setDocumentLocator(org.xml.sax.Locator locator)
Overrides:
setDocumentLocator in class org.xml.sax.helpers.DefaultHandler

characters

public void characters(char[] p1,
                       int p2,
                       int p3)
                throws org.xml.sax.SAXException
Overrides:
characters in class org.xml.sax.helpers.DefaultHandler

ignorableWhitespace

public void ignorableWhitespace(char[] p1,
                                int p2,
                                int p3)
                         throws org.xml.sax.SAXException
Overrides:
ignorableWhitespace in class org.xml.sax.helpers.DefaultHandler

processingInstruction

public void processingInstruction(java.lang.String p1,
                                  java.lang.String p2)
                           throws org.xml.sax.SAXException
Overrides:
processingInstruction in class org.xml.sax.helpers.DefaultHandler

skippedEntity

public void skippedEntity(java.lang.String p1)
                   throws org.xml.sax.SAXException
Overrides:
skippedEntity in class org.xml.sax.helpers.DefaultHandler

startElement

public void startElement(java.lang.String namespace,
                         java.lang.String localName,
                         java.lang.String qName,
                         org.xml.sax.Attributes attributes)
                  throws org.xml.sax.SAXException
This is a big workhorse. Manage the state of the parser, check for basic SOAP compliance (envelope, then optional header, then body, etc). This guy also handles monitoring the recording depth if we're recording (so we know when to stop), and might eventually do things to help with ID/HREF management as well.
Overrides:
startElement in class org.xml.sax.helpers.DefaultHandler

endElement

public void endElement(java.lang.String namespace,
                       java.lang.String localName,
                       java.lang.String qName)
                throws org.xml.sax.SAXException
Overrides:
endElement in class org.xml.sax.helpers.DefaultHandler


Copyright © 2001 Apache XML Project. All Rights Reserved.