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