org.apache.axis.encoding.ser
Class SimpleDeserializer

java.lang.Object
  |
  +--org.xml.sax.helpers.DefaultHandler
        |
        +--org.apache.axis.message.SOAPHandler
              |
              +--org.apache.axis.encoding.DeserializerImpl
                    |
                    +--org.apache.axis.encoding.ser.SimpleDeserializer
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
Direct Known Subclasses:
CalendarDeserializer, DateDeserializer, EnumDeserializer, QNameDeserializer

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.

Author:
Glen Daniels (gdaniels@macromedia.com), Sam Ruby (rubys@us.ibm.com) Modified for JAX-RPC @author Rich Scheuerle (scheu@us.ibm.com)
See Also:
Serialized Form

Field Summary
protected  SimpleDeserializer cacheStringDSer
           
protected  QName cacheXMLType
           
 java.lang.Class javaType
           
 QName xmlType
           
 
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, log, targets, value
 
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
 
Constructor Summary
SimpleDeserializer(java.lang.Class javaType, QName xmlType)
          The Deserializer is constructed with the xmlType and javaType (which could be a java primitive like int.class)
SimpleDeserializer(java.lang.Class javaType, QName xmlType, TypeDesc typeDesc)
           
 
Method Summary
 void characters(char[] chars, int start, int end)
          Append any characters received to the value.
 java.lang.Object makeValue(java.lang.String source)
          Convert the string that has been accumulated into an Object.
 void onEndElement(java.lang.String namespace, java.lang.String localName, DeserializationContext context)
          Append any characters to the value.
 SOAPHandler onStartChild(java.lang.String namespace, java.lang.String localName, java.lang.String prefix, org.xml.sax.Attributes attributes, DeserializationContext context)
          There should not be nested elements, so thow and exception if this occurs.
 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 removeValueTargets()
          Remove the Value Targets of the Deserializer.
 void reset()
          Reset deserializer for re-use
 void setConstructor(java.lang.reflect.Constructor c)
          The Factory calls setConstructor.
 
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, registerValueTarget, setChildValue, setDefaultType, setValue, setValue, startElement, 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

xmlType

public QName xmlType

javaType

public java.lang.Class javaType

cacheStringDSer

protected SimpleDeserializer cacheStringDSer

cacheXMLType

protected QName cacheXMLType
Constructor Detail

SimpleDeserializer

public SimpleDeserializer(java.lang.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(java.lang.Class javaType,
                          QName xmlType,
                          TypeDesc typeDesc)
Method Detail

reset

public void reset()
Reset deserializer for re-use


removeValueTargets

public void removeValueTargets()
Remove the Value Targets of the Deserializer. Simple deserializers may be re-used, so don't nullify the vector.

Specified by:
removeValueTargets in interface Deserializer
Overrides:
removeValueTargets in class DeserializerImpl

setConstructor

public void setConstructor(java.lang.reflect.Constructor c)
The Factory calls setConstructor.


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
There should not be nested elements, so thow and exception if this occurs.

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.
org.xml.sax.SAXException

characters

public void characters(char[] chars,
                       int start,
                       int end)
                throws org.xml.sax.SAXException
Append any characters received to the value. This method is defined by Deserializer.

Specified by:
characters in interface org.xml.sax.ContentHandler
Overrides:
characters in class org.xml.sax.helpers.DefaultHandler
org.xml.sax.SAXException

onEndElement

public void onEndElement(java.lang.String namespace,
                         java.lang.String localName,
                         DeserializationContext context)
                  throws org.xml.sax.SAXException
Append any characters to the value. This method is defined by Deserializer.

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
org.xml.sax.SAXException

makeValue

public java.lang.Object makeValue(java.lang.String source)
                           throws java.lang.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
Throws:
java.lang.Exception - any exception thrown by this method will be wrapped

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
org.xml.sax.SAXException


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