Package 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:
java.io.Serializable
,Deserializer
,Callback
,Deserializer
,org.xml.sax.ContentHandler
,org.xml.sax.DTDHandler
,org.xml.sax.EntityResolver
,org.xml.sax.ErrorHandler
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
Fields Modifier and Type Field Description 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 constructorprotected 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
Constructors Constructor Description 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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
-
-
-
-
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
-
-
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 interfaceDeserializer
- Overrides:
startElement
in classDeserializerImpl
- Parameters:
namespace
- is the namespace of the elementlocalName
- is the name of the elementprefix
- is the prefix of the elementattributes
- are the attributes on the element...used to get the typecontext
- 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 interfaceDeserializer
- Overrides:
onStartChild
in classDeserializerImpl
- Parameters:
namespace
- is the namespace of the child elementlocalName
- is the local name of the child elementprefix
- is the prefix used on the name of the child elementattributes
- are the attributes of the child elementcontext
- 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 interfaceDeserializer
- Overrides:
onStartElement
in classDeserializerImpl
- Parameters:
namespace
- is the namespace of the elementlocalName
- is the name of the elementprefix
- is the prefix of the elementattributes
- are the attributes on the element...used to get the typecontext
- 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 propertyhref
- 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 interfaceorg.xml.sax.ContentHandler
- Overrides:
characters
in classSOAPHandler
- 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 interfaceDeserializer
- Overrides:
onEndElement
in classDeserializerImpl
- Parameters:
namespace
- is the namespace of the child elementlocalName
- is the local name of the child elementcontext
- is the deserialization context- Throws:
org.xml.sax.SAXException
-
handleMixedContent
protected void handleMixedContent() throws org.xml.sax.SAXException
- Throws:
org.xml.sax.SAXException
-
-