org.apache.axis.encoding
public interface Deserializer extends Deserializer, Callback
Method Summary | |
---|---|
boolean | componentsReady()
Some deserializers (ArrayDeserializer) require
all of the component values to be known before the
value is complete.
|
void | endElement(String namespace, String localName, DeserializationContext context)
endElement is called when the end element tag is reached.
|
QName | getDefaultType() |
Object | getValue()
Get the deserialized value. |
Object | getValue(Object hint)
If the deserializer has component values (like ArrayDeserializer)
this method gets the specific component via the hint.
|
Vector | getValueTargets()
Get the Value Targets of the Deserializer. |
void | moveValueTargets(Deserializer other)
Move someone else's targets to our own (see DeserializationContext)
The DeserializationContext only allows one Deserializer to
wait for a unknown multi-ref'ed value. |
void | onEndElement(String namespace, String localName, DeserializationContext context)
onEndElement is called by endElement. |
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. the element is not an href and the value is not nil.)
|
void | registerValueTarget(Target target)
For deserializers of non-primitives, the value may not be
known until later (due to multi-referencing). |
void | removeValueTargets()
Remove the Value Targets of the Deserializer. |
void | setChildValue(Object value, Object hint)
If the deserializer has component values (like ArrayDeserializer)
this method sets the specific component via the hint.
|
void | setDefaultType(QName qName)
In some circumstances an element may not have
a type attribute, but a default type qname is known from
information in the container. |
void | setValue(Object value)
Set the deserialized value. |
void | startElement(String namespace, String localName, String qName, Attributes attributes, DeserializationContext context)
This method is invoked when an element start tag is encountered.
|
void | valueComplete()
The valueComplete() method is invoked when the
end tag of the element is read. |
Parameters: namespace is the namespace of the child element localName is the local name of the child element context is the deserialization context
Returns: Object representing deserialized value or null
Returns: Object representing deserialized value or null
Returns: Vector of Target objects or null
Parameters: other is the Deserializer to copy targets from.
Parameters: namespace is the namespace of the child element localName is the local name of the child element context is the deserialization context
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.
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
Parameters: target Target
Parameters: value Object representing deserialized value or null
Parameters: value Object representing deserialized value
Parameters: namespace is the namespace of the element localName is the name of the element qName is the prefixed qName of the element attributes are the attributes on the element...used to get the type context is the DeserializationContext Normally a specific Deserializer (FooDeserializer) should extend DeserializerImpl. Here is the flow that will occur in such cases: 1) DeserializerImpl.startElement(...) will be called and do the id/href/nill stuff. 2) If real deserialization needs to take place DeserializerImpl.onStartElement will be invoked, which will attempt to install the specific Deserializer (FooDeserializer) 3) The FooDeserializer.startElement(...) will be called to do the Foo specific stuff. This results in a call to FooDeserializer.onStartElement(...) if startElement was not overridden. 4) The onChildElement(...) method is called for each child element. Nothing occurs if not overridden. The FooDeserializer.onStartChild(...) method should return the deserializer for the child element. 5) When the end tag is reached, the endElement(..) method is invoked. The default behavior is to handle hrefs/ids, call onEndElement and then call the Deserializer valueComplete method. So the methods that you potentially want to override are: onStartElement, onStartChild, componentsReady, set(object, hint) You probably should not override startElement or endElement. If you need specific behaviour at the end of the element consider overriding onEndElement. See the pre-existing Deserializers for more information.