org.apache.axis.encoding.ser
Class BeanDeserializer

java.lang.Object
  |
  +--org.xml.sax.helpers.DefaultHandler
        |
        +--org.apache.axis.message.SOAPHandler
              |
              +--org.apache.axis.encoding.DeserializerImpl
                    |
                    +--org.apache.axis.encoding.ser.BeanDeserializer
All Implemented Interfaces:
Callback, org.xml.sax.ContentHandler, Deserializer, Deserializer, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, java.io.Serializable

public class BeanDeserializer
extends DeserializerImpl
implements java.io.Serializable

General purpose deserializer for an arbitrary java bean.

Author:
Sam Ruby , Rich Scheuerle , Tom Jordahl
See Also:
Serialized Form

Field Summary
protected  int collectionIndex
           
static java.lang.String DESERIALIZE_ANY
           
protected static org.apache.commons.logging.Log log
           
protected  QName prevQName
           
protected  java.util.HashMap propertyMap
           
protected  TypeDesc typeDesc
          Type metadata about this class for XML deserialization
 
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, targets, value
 
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
 
Constructor Summary
BeanDeserializer(java.lang.Class javaType, QName xmlType)
           
BeanDeserializer(java.lang.Class javaType, QName xmlType, TypeDesc typeDesc)
           
 
Method Summary
 BeanPropertyDescriptor getObjectPropertyDesc(QName qname, DeserializationContext context)
           
 SOAPHandler onStartChild(java.lang.String namespace, java.lang.String localName, java.lang.String prefix, org.xml.sax.Attributes attributes, DeserializationContext context)
          Deserializer interface called on each child element encountered in the XML stream.
 void onStartElement(java.lang.String namespace, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attributes, DeserializationContext context)
          Set the bean properties that correspond to element attributes.
 void startElement(java.lang.String namespace, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attributes, DeserializationContext context)
          startElement The ONLY reason that this method is overridden is so that the object value can be set or a reasonable exception is thrown indicating that the object cannot be created.
 
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, onEndElement, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, valueComplete
 
Methods inherited from class org.apache.axis.message.SOAPHandler
makeNewElement, onEndChild
 
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

protected static org.apache.commons.logging.Log log

propertyMap

protected java.util.HashMap propertyMap

prevQName

protected QName prevQName

DESERIALIZE_ANY

public static final java.lang.String DESERIALIZE_ANY

typeDesc

protected TypeDesc typeDesc
Type metadata about this class for XML deserialization

collectionIndex

protected int collectionIndex
Constructor Detail

BeanDeserializer

public BeanDeserializer(java.lang.Class javaType,
                        QName xmlType)

BeanDeserializer

public BeanDeserializer(java.lang.Class javaType,
                        QName xmlType,
                        TypeDesc typeDesc)
Method Detail

startElement

public void startElement(java.lang.String namespace,
                         java.lang.String localName,
                         java.lang.String qName,
                         org.xml.sax.Attributes attributes,
                         DeserializationContext context)
                  throws org.xml.sax.SAXException
startElement The ONLY reason that this method is overridden is so that the object value can be set or a reasonable exception is thrown indicating that the object cannot be created. This is done at this point so that it occurs BEFORE href/id processing.
Overrides:
startElement in class DeserializerImpl
Parameters:
namespace - is the namespace of the element
localName - is the name of the element
qName - is the prefixed qName of the element
attributes - are the attributes on the element...used to get the type
context - is the DeserializationContext

onStartChild

public SOAPHandler onStartChild(java.lang.String namespace,
                                java.lang.String localName,
                                java.lang.String prefix,
                                org.xml.sax.Attributes attributes,
                                DeserializationContext context)
                         throws org.xml.sax.SAXException
Deserializer interface called on each child element encountered in the XML stream.
Overrides:
onStartChild in class DeserializerImpl
Parameters:
namespace - is the namespace of the child element
localName - is the local name of the child element
prefix - is the prefix used on the name of the child element
attributes - are the attributes of the child element
context - is the deserialization context.
Returns:
is a Deserializer to use to deserialize a child (must be a derived class of SOAPHandler) or null if no deserialization should be performed.

getObjectPropertyDesc

public BeanPropertyDescriptor getObjectPropertyDesc(QName qname,
                                                    DeserializationContext context)

onStartElement

public void onStartElement(java.lang.String namespace,
                           java.lang.String localName,
                           java.lang.String qName,
                           org.xml.sax.Attributes attributes,
                           DeserializationContext context)
                    throws org.xml.sax.SAXException
Set the bean properties that correspond to element attributes. This method is invoked after startElement when the element requires deserialization (i.e. the element is not an href and the value is not nil.)
Overrides:
onStartElement in class DeserializerImpl
Parameters:
namespace - is the namespace of the element
localName - is the name of the element
qName - is the prefixed qName of the element
attributes - are the attributes on the element...used to get the type
context - is the DeserializationContext


Copyright © 2002 Apache XML Project. All Rights Reserved.