org.apache.axis.encoding.ser

Class BeanDeserializer

public class BeanDeserializer extends DeserializerImpl implements Serializable

General purpose deserializer for an arbitrary java bean.

Author: Sam Ruby Rich Scheuerle Tom Jordahl

Field Summary
protected SimpleDeserializercacheStringDSer
protected QNamecacheXMLType
protected intcollectionIndex
protected TargetconstructorTarget
Constructor Target object to use (if constructorToUse !
protected ConstructorconstructorToUse
Constructor if no default constructor
protected static Loglog
protected QNameprevQName
protected MappropertyMap
protected TypeDesctypeDesc
Type metadata about this class for XML deserialization
Constructor Summary
BeanDeserializer(Class javaType, QName xmlType)
BeanDeserializer(Class javaType, QName xmlType, TypeDesc typeDesc)
BeanDeserializer(Class javaType, QName xmlType, TypeDesc typeDesc, Map propertyMap)
Method Summary
voidcharacters(char[] chars, int start, int end)
BeanPropertyDescriptorgetAnyPropertyDesc()
Get a BeanPropertyDescriptor which indicates where we should put extensibility elements (i.e.
protected DeserializergetDeserializer(QName xmlType, Class javaType, String href, DeserializationContext context)
Get the Deserializer for the attribute or child element.
protected voidhandleMixedContent()
voidonEndElement(String namespace, String localName, DeserializationContext context)
SOAPHandleronStartChild(String namespace, String localName, String prefix, Attributes attributes, DeserializationContext context)
Deserializer interface called on each child element encountered in the XML stream.
voidonStartElement(String namespace, String localName, String prefix, Attributes attributes, DeserializationContext context)
Set the bean properties that correspond to element attributes.
voidstartElement(String namespace, String localName, String prefix, 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.

Field Detail

cacheStringDSer

protected SimpleDeserializer cacheStringDSer

cacheXMLType

protected QName cacheXMLType

collectionIndex

protected int collectionIndex

constructorTarget

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

constructorToUse

protected Constructor constructorToUse
Constructor if no default constructor

log

protected static Log log

prevQName

protected QName prevQName

propertyMap

protected Map propertyMap

typeDesc

protected TypeDesc typeDesc
Type metadata about this class for XML deserialization

Constructor Detail

BeanDeserializer

public BeanDeserializer(Class javaType, QName xmlType)

BeanDeserializer

public BeanDeserializer(Class javaType, QName xmlType, TypeDesc typeDesc)

BeanDeserializer

public BeanDeserializer(Class javaType, QName xmlType, TypeDesc typeDesc, Map propertyMap)

Method Detail

characters

public void characters(char[] chars, int start, int end)

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

getDeserializer

protected Deserializer getDeserializer(QName xmlType, Class javaType, 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.

handleMixedContent

protected void handleMixedContent()

onEndElement

public void onEndElement(String namespace, String localName, DeserializationContext context)

onStartChild

public SOAPHandler onStartChild(String namespace, String localName, String prefix, Attributes attributes, DeserializationContext context)
Deserializer interface called on each child element encountered in the XML stream.

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.

onStartElement

public void onStartElement(String namespace, String localName, String prefix, Attributes attributes, DeserializationContext context)
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.)

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

startElement

public void startElement(String namespace, String localName, String prefix, 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. This is done at this point so that it occurs BEFORE href/id processing.

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

Copyright B) 2005 Apache Web Services Project. All Rights Reserved.