站内搜索: 请输入搜索关键词
当前页面: 在线文档首页 > JBoss 3.2.7 jaxrpc API Documentation 英文版文档

ArrayDeserializer (JAXRPC API) - JBoss 3.2.7 jaxrpc API Documentation 英文版文档


org.apache.axis.encoding.ser
Class ArrayDeserializer

java.lang.Object
  extended byorg.xml.sax.helpers.DefaultHandler
      extended byorg.apache.axis.message.SOAPHandler
          extended byorg.apache.axis.encoding.DeserializerImpl
              extended byorg.apache.axis.encoding.ser.ArrayDeserializer
All Implemented Interfaces:
Callback, ContentHandler, javax.xml.rpc.encoding.Deserializer, Deserializer, DTDHandler, EntityResolver, ErrorHandler, Serializable

public class ArrayDeserializer
extends DeserializerImpl

An ArrayDeserializer handles deserializing SOAP arrays.

Some code borrowed from ApacheSOAP - thanks to Matt Duftler!

Author:
Glen Daniels (gdaniels@macromedia.com)

Multi-reference stuff:, Rich Scheuerle (scheu@us.ibm.com)

See Also:
Serialized Form

Nested Class Summary
 class ArrayDeserializer.ArrayListExtension
          During processing, the Array Deserializer stores the array in an ArrayListExtension class.
 
Field Summary
 javax.xml.namespace.QName arrayType
           
 int curIndex
           
 
Fields inherited from class org.apache.axis.encoding.DeserializerImpl
defaultType, id, isEnded, isHref, isNil, targets, value
 
Fields inherited from class org.apache.axis.message.SOAPHandler
myElement
 
Constructor Summary
ArrayDeserializer()
           
 
Method Summary
 void characters(char[] chars, int i, int i1)
           
 SOAPHandler onStartChild(String namespace, String localName, String prefix, Attributes attributes, DeserializationContext context)
          onStartChild is called on each child element.
 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.
 void setChildValue(Object value, Object hint)
          set is called during deserialization to assign the Object value to the array position indicated by hint.
 void valueComplete()
          When valueComplete() is invoked on the array, first convert the array value into the expected array.
 
Methods inherited from class org.apache.axis.encoding.DeserializerImpl
addChildDeserializer, componentsReady, endElement, getDefaultType, getMechanismType, getValue, getValue, getValueTargets, moveValueTargets, onEndElement, registerValueTarget, removeValueTargets, setDefaultType, setValue, setValue, startElement
 
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

arrayType

public javax.xml.namespace.QName arrayType

curIndex

public int curIndex
Constructor Detail

ArrayDeserializer

public ArrayDeserializer()
Method Detail

onStartElement

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

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

onStartChild

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

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.
Throws:
SAXException

characters

public void characters(char[] chars,
                       int i,
                       int i1)
                throws SAXException
Throws:
SAXException

setChildValue

public void setChildValue(Object value,
                          Object hint)
                   throws SAXException
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.

Specified by:
setChildValue in interface Deserializer
Overrides:
setChildValue in class DeserializerImpl
Parameters:
value - value of the array element
hint - index of the array element (Integer)
Throws:
SAXException

valueComplete

public void valueComplete()
                   throws SAXException
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.

Specified by:
valueComplete in interface Deserializer
Overrides:
valueComplete in class DeserializerImpl
Throws:
SAXException


Copyright © 2002 JBoss Group, LLC. All Rights Reserved.