## 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 <rubys@us.ibm.com>, Rich Scheuerle <scheu@us.ibm.com>, Tom Jordahl <tomj@macromedia.com>
See Also:
  Serialized Form

Field Summary
`protected SimpleDeserializer` `cacheStringDSer`
`protected QName` `cacheXMLType`
`protected int` `collectionIndex`
`protected Target` `constructorTarget` Constructor Target object to use (if constructorToUse != null)
`protected java.lang.reflect.Constructor` `constructorToUse` Constructor if no default constructor
`protected static org.apache.commons.logging.Log` `log`
`protected QName` `prevQName`
`protected java.util.Map` `propertyMap`
`protected TypeDesc` `typeDesc` Type metadata about this class for XML deserialization

Fields inherited from class org.apache.axis.encoding.DeserializerImpl
`componentsReadyFlag, 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)`
`BeanDeserializer(java.lang.Class javaType, QName xmlType, TypeDesc typeDesc, java.util.Map propertyMap)`

Method Summary
`void` `characters(char[] chars, int start, int end)`
`BeanPropertyDescriptor` `getAnyPropertyDesc()` Get a BeanPropertyDescriptor which indicates where we should put extensibility elements (i.e.
`protected Deserializer` `getDeserializer(QName xmlType, java.lang.Class javaType, java.lang.String href, DeserializationContext context)` Get the Deserializer for the attribute or child element.
`protected void` `handleMixedContent()`
`void` `onEndElement(java.lang.String namespace, java.lang.String localName, DeserializationContext context)` onEndElement is called by endElement.
`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 prefix, 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 prefix, 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
`addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, removeValueTargets, setChildValue, setDefaultType, setValue, setValue, valueComplete`

Methods inherited from class org.apache.axis.message.SOAPHandler
`makeNewElement, onEndChild`

Methods inherited from class org.xml.sax.helpers.DefaultHandler
`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.Map propertyMap

### prevQName

    protected QName prevQName

### constructorToUse

    protected java.lang.reflect.Constructor constructorToUse

  Constructor if no default constructor

### constructorTarget

    protected Target constructorTarget

  Constructor Target object to use (if constructorToUse != null)

### typeDesc

    protected TypeDesc typeDesc

  Type metadata about this class for XML deserialization

### collectionIndex

    protected int collectionIndex

### cacheStringDSer

    protected SimpleDeserializer cacheStringDSer

### cacheXMLType

    protected QName cacheXMLType

Constructor Detail

### BeanDeserializer

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

### BeanDeserializer

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

### BeanDeserializer

    public BeanDeserializer(java.lang.Class javaType,
                            QName xmlType,
                            TypeDesc typeDesc,
                            java.util.Map propertyMap)

Method Detail

### startElement

    public void startElement(java.lang.String namespace,
                             java.lang.String localName,
                             java.lang.String prefix,
                             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.

  Specified by:
    `startElement` in interface `Deserializer`
  Overrides:
    `startElement` in class `DeserializerImpl`
  Parameters:
    `namespace` - is the namespace of the element
    `localName` - is the name of the element
    `prefix` - is the prefix of the element
    `attributes` - are the attributes on the element...used to get the type
    `context` - is the DeserializationContext
  Throws:
    `org.xml.sax.SAXException`

### 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.

  Specified by:
    `onStartChild` in interface `Deserializer`
  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.
  Throws:
    `org.xml.sax.SAXException`

### getAnyPropertyDesc

    public BeanPropertyDescriptor getAnyPropertyDesc()

  Get a BeanPropertyDescriptor which indicates where we should put extensibility elements (i.e. XML which falls under the auspices of an <xsd:any> declaration in the schema)

  Returns:
    an appropriate BeanPropertyDescriptor, or null

### onStartElement

    public void onStartElement(java.lang.String namespace,
                               java.lang.String localName,
                               java.lang.String prefix,
                               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.)

  Specified by:
    `onStartElement` in interface `Deserializer`
  Overrides:
    `onStartElement` in class `DeserializerImpl`
  Parameters:
    `namespace` - is the namespace of the element
    `localName` - is the name of the element
    `prefix` - is the prefix of the element
    `attributes` - are the attributes on the element...used to get the type
    `context` - is the DeserializationContext
  Throws:
    `org.xml.sax.SAXException`

### getDeserializer

    protected Deserializer getDeserializer(QName xmlType,
                                           java.lang.Class javaType,
                                           java.lang.String href,
                                           DeserializationContext context)

  Get the Deserializer for the attribute or child element.

  Parameters:
    `xmlType` - QName of the attribute/child element or null if not known.
    `javaType` - Class of the corresponding property
    `href` - String is the value of the href attribute, which is used to determine whether the child element is complete or an href to another element.
    `context` - DeserializationContext
  Returns:
    Deserializer or null if not found.

### characters

    public void characters(char[] chars,
                           int start,
                           int end)
                    throws org.xml.sax.SAXException

  Specified by:
    `characters` in interface `org.xml.sax.ContentHandler`
  Overrides:
    `characters` in class `SOAPHandler`
  Throws:
    `org.xml.sax.SAXException`

### onEndElement

    public void onEndElement(java.lang.String namespace,
                             java.lang.String localName,
                             DeserializationContext context)
                      throws org.xml.sax.SAXException

  Description copied from class: `DeserializerImpl`
  onEndElement is called by endElement. It is not called if the element has an href.

  Specified by:
    `onEndElement` in interface `Deserializer`
  Overrides:
    `onEndElement` in class `DeserializerImpl`
  Parameters:
    `namespace` - is the namespace of the child element
    `localName` - is the local name of the child element
    `context` - is the deserialization context
  Throws:
    `org.xml.sax.SAXException`

### handleMixedContent

    protected void handleMixedContent()
                               throws org.xml.sax.SAXException

  Throws:
    `org.xml.sax.SAXException`

Copyright © 2005 Apache Web Services Project. All Rights Reserved.