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(MessageContext ctx, EnvelopeBuilder initialHandler)
           
 
Method Summary
 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)
           
 java.util.ArrayList getCurrentNSMappings()
           
 int getCurrentRecordPos()
           
 SOAPEnvelope getEnvelope()
           
 MessageContext getMessageContext()
           
 java.lang.String getNamespaceURI(java.lang.String prefix)
          Grab a namespace prefix
 java.lang.Object getObjectByRef(java.lang.String href)
           
 QName getQNameFromString(java.lang.String qNameStr)
           
 SAX2EventRecorder getRecorder()
           
 ServiceDescription getServiceDescription()
           
 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)
Method Detail

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)

getServiceDescription

public ServiceDescription getServiceDescription()

getTypeMappingRegistry

public TypeMappingRegistry getTypeMappingRegistry()

getObjectByRef

public java.lang.Object getObjectByRef(java.lang.String href)

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.