org.apache.axis.encoding.ser

Class ArrayDeserializer

public class ArrayDeserializer extends DeserializerImpl

An ArrayDeserializer handles deserializing SOAP arrays. Some code borrowed from ApacheSOAP - thanks to Matt Duftler!

Author: Glen Daniels (gdaniels@apache.org) Multi-reference stuff: Rich Scheuerle (scheu@us.ibm.com)

Nested Class Summary
classArrayDeserializer.ArrayListExtension
During processing, the Array Deserializer stores the array in an ArrayListExtension class.
Field Summary
QNamearrayType
intcurIndex
protected static Loglog
Method Summary
voidcharacters(char[] chars, int i, int i1)
voidonEndChild(String namespace, String localName, DeserializationContext context)
SOAPHandleronStartChild(String namespace, String localName, String prefix, Attributes attributes, DeserializationContext context)
onStartChild is called on each child element.
voidonStartElement(String namespace, String localName, String prefix, Attributes attributes, DeserializationContext context)
This method is invoked after startElement when the element requires deserialization (i.e. the element is not an href & the value is not nil) DeserializerImpl provides default behavior, which simply involves obtaining a correct Deserializer and plugging its handler.
voidsetChildValue(Object value, Object hint)
set is called during deserialization to assign the Object value to the array position indicated by hint.
voidvalueComplete()
When valueComplete() is invoked on the array, first convert the array value into the expected array.

Field Detail

arrayType

public QName arrayType

curIndex

public int curIndex

log

protected static Log log

Method Detail

characters

public void characters(char[] chars, int i, int i1)

onEndChild

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

onStartChild

public SOAPHandler onStartChild(String namespace, String localName, String prefix, Attributes attributes, DeserializationContext context)
onStartChild is called on each child element.

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)
This method is invoked after startElement when the element requires deserialization (i.e. the element is not an href & the value is not nil) DeserializerImpl provides default behavior, which simply involves obtaining a correct Deserializer and plugging its handler.

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 attrs on the element...used to get the type context is the DeserializationContext

setChildValue

public void setChildValue(Object value, Object hint)
set is called during deserialization to assign the Object value to the array position indicated by hint. The hint is always a single Integer. If the array being deserialized is a multi-dimensional array, the hint is converted into a series of indices to set the correct nested position. The array deserializer always deserializes into an ArrayList, which is converted and copied into the actual array after completion (by valueComplete). It is important to wait until all indices have been processed before invoking valueComplete.

Parameters: value value of the array element hint index of the array element (Integer)

valueComplete

public void valueComplete()
When valueComplete() is invoked on the array, first convert the array value into the expected array. Then call super.valueComplete() to inform referents that the array value is ready.
Copyright B) 2005 Apache Web Services Project. All Rights Reserved.