org.apache.axis.encoding.ser

Class SimpleDeserializer

Implemented Interfaces:
Deserializer, java.io.Serializable, Callback, Deserializer, Deserializer
Known Direct Subclasses:
Base64Deserializer, CalendarDeserializer, DateDeserializer, EnumDeserializer, HexDeserializer, QNameDeserializer, SimpleListDeserializer, TimeDeserializer

public class SimpleDeserializer
extends DeserializerImpl

A deserializer for any simple type with a (String) constructor. Note: this class is designed so that subclasses need only override the makeValue method in order to construct objects of their own type.
Authors:
Glen Daniels (gdaniels@apache.org)
Sam Ruby (rubys@us.ibm.com) Modified for JAX-RPC @author Rich Scheuerle (scheu@us.ibm.com)

Field Summary

static Class[]
STRING_CLASS
protected SimpleDeserializer
cacheStringDSer
protected QName
cacheXMLType
protected DeserializationContext
context
Class
javaType
QName
xmlType

Fields inherited from class org.apache.axis.encoding.DeserializerImpl

componentsReadyFlag, defaultType, id, isEnded, isHref, isNil, log, targets, value

Fields inherited from class org.apache.axis.message.SOAPHandler

myElement

Constructor Summary

SimpleDeserializer(Class javaType, QName xmlType)
The Deserializer is constructed with the xmlType and javaType (which could be a java primitive like int.class)
SimpleDeserializer(Class javaType, QName xmlType, TypeDesc typeDesc)

Method Summary

void
characters(char[] chars, int start, int end)
Append any characters received to the value.
Object
makeValue(String source)
Convert the string that has been accumulated into an Object.
void
onEndElement(String namespace, String localName, DeserializationContext context)
Append any characters to the value.
SOAPHandler
onStartChild(String namespace, String localName, String prefix, Attributes attributes, DeserializationContext context)
There should not be nested elements, so thow and exception if this occurs.
void
onStartElement(String namespace, String localName, String prefix, Attributes attributes, DeserializationContext context)
Set the bean properties that correspond to element attributes.
void
reset()
Reset deserializer for re-use
void
setConstructor(Constructor c)
The Factory calls setConstructor.

Methods inherited from class org.apache.axis.encoding.DeserializerImpl

addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, onEndElement, onStartChild, onStartElement, registerValueTarget, removeValueTargets, setChildValue, setDefaultType, setValue, setValue, startElement, valueComplete

Methods inherited from class org.apache.axis.message.SOAPHandler

characters, endElement, makeNewElement, onEndChild, onStartChild, startElement

Field Details

STRING_CLASS

public static final Class[] STRING_CLASS

cacheStringDSer

protected SimpleDeserializer cacheStringDSer

cacheXMLType

protected QName cacheXMLType

context

protected DeserializationContext context

javaType

public Class javaType

xmlType

public QName xmlType

Constructor Details

SimpleDeserializer

public SimpleDeserializer(Class javaType,
                          QName xmlType)
The Deserializer is constructed with the xmlType and javaType (which could be a java primitive like int.class)

SimpleDeserializer

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

Method Details

characters

public void characters(char[] chars,
                       int start,
                       int end)
            throws SAXException
Append any characters received to the value. This method is defined by Deserializer.
Overrides:
characters in interface SOAPHandler

makeValue

public Object makeValue(String source)
            throws Exception
Convert the string that has been accumulated into an Object. Subclasses may override this. Note that if the javaType is a primitive, the returned object is a wrapper class.
Parameters:
source - the serialized value to be deserialized

onEndElement

public void onEndElement(String namespace,
                         String localName,
                         DeserializationContext context)
            throws SAXException
Append any characters to the value. This method is defined by Deserializer.
Specified by:
onEndElement in interface Deserializer
Overrides:
onEndElement in interface DeserializerImpl

onStartChild

public SOAPHandler onStartChild(String namespace,
                                String localName,
                                String prefix,
                                Attributes attributes,
                                DeserializationContext context)
            throws SAXException
There should not be nested elements, so thow and exception if this occurs.
Specified by:
onStartChild in interface Deserializer
Overrides:
onStartChild in interface DeserializerImpl

onStartElement

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

reset

public void reset()
Reset deserializer for re-use

setConstructor

public void setConstructor(Constructor c)
The Factory calls setConstructor.

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