org.apache.axis.encoding

Class TypeMappingDelegate

Implemented Interfaces:
Serializable, TypeMapping, TypeMapping

public class TypeMappingDelegate
extends java.lang.Object
implements TypeMapping

The TypeMapping delegate is used to simply delegate to the indicated type mapping. It is used by the TypeMappingRegistry to assist with chaining.
Author:
Rich Scheuerle (scheu@us.ibm.com)

Method Summary

Class[]
getAllClasses()
Returns an array of all the classes contained within this mapping
Class
getClassForQName(QName xmlType)
Gets the Class mapped to QName.
Class
getClassForQName(QName xmlType, Class javaType)
Gets the Class mapped to QName, preferring the passed Class if possible
DeserializerFactory
getDeserializer(Class javaType, QName xmlType)
Gets the DeserializerFactory registered for the specified pair of Java type and XML data type.
DeserializerFactory
getDeserializer(Class javaType, QName xmlType, TypeMappingDelegate start)
DeserializerFactory
getDeserializer(QName xmlType)
TypeMappingDelegate
getNext()
getDelegate gets the new Delegate TypeMapping
SerializerFactory
getSerializer(Class javaType)
SerializerFactory
getSerializer(Class javaType, QName xmlType)
Gets the SerializerFactory registered for the specified pair of Java type and XML data type.
String[]
getSupportedEncodings()
JAX-RPC Compliant Method Definitions ****************
QName
getTypeQName(Class javaType)
Gets the QName for the type mapped to Class.
QName
getTypeQNameExact(Class javaType)
Get the QName for this Java class, but only return a specific mapping if there is one.
QName
getXMLType(Class javaType, QName xmlType, boolean encoded)
Get the exact XML type QName which will be used when serializing a given Class to a given type QName.
boolean
isRegistered(Class javaType, QName xmlType)
Checks whether or not type mapping between specified XML type and Java type is registered.
void
register(Class javaType, QName xmlType, SerializerFactory sf, DeserializerFactory dsf)
always throws an exception
void
removeDeserializer(Class javaType, QName xmlType)
Removes the DeserializerFactory registered for the specified pair of Java type and XML data type.
void
removeSerializer(Class javaType, QName xmlType)
Removes the SerializerFactory registered for the specified pair of Java type and XML data type.
void
setDoAutoTypes(boolean doAutoTypes)
void
setNext(TypeMappingDelegate next)
setDelegate sets the new Delegate TypeMapping
void
setSupportedEncodings(String[] namespaceURIs)
Sets the encodingStyle URIs supported by this TypeMapping instance.

Method Details

getAllClasses

public Class[] getAllClasses()
Returns an array of all the classes contained within this mapping
Specified by:
getAllClasses in interface TypeMapping

getClassForQName

public Class getClassForQName(QName xmlType)
Gets the Class mapped to QName.
Specified by:
getClassForQName in interface TypeMapping
Parameters:
xmlType - qname or null
Returns:
javaType class for type or null for no mappingor delegate

getClassForQName

public Class getClassForQName(QName xmlType,
                              Class javaType)
Gets the Class mapped to QName, preferring the passed Class if possible
Specified by:
getClassForQName in interface TypeMapping
Parameters:
xmlType - qname or null
javaType - a Java class
Returns:
javaType class for type or null for no mappingor delegate

getDeserializer

public DeserializerFactory getDeserializer(Class javaType,
                                           QName xmlType)
            throws JAXRPCException
Gets the DeserializerFactory registered for the specified pair of Java type and XML data type.
Specified by:
getDeserializer in interface TypeMapping
Parameters:
javaType - Class of the Java type
xmlType - Qualified name of the XML data type
Returns:
Registered SerializerFactory or null if there is no registered factory

getDeserializer

public DeserializerFactory getDeserializer(Class javaType,
                                           QName xmlType,
                                           TypeMappingDelegate start)
            throws JAXRPCException

getDeserializer

public DeserializerFactory getDeserializer(QName xmlType)
            throws JAXRPCException
Specified by:
getDeserializer in interface TypeMapping

getNext

public TypeMappingDelegate getNext()
getDelegate gets the new Delegate TypeMapping

getSerializer

public SerializerFactory getSerializer(Class javaType)
            throws JAXRPCException
Specified by:
getSerializer in interface TypeMapping

getSerializer

public SerializerFactory getSerializer(Class javaType,
                                       QName xmlType)
            throws JAXRPCException
Gets the SerializerFactory registered for the specified pair of Java type and XML data type.
Specified by:
getSerializer in interface TypeMapping
Parameters:
javaType - Class of the Java type
xmlType - Qualified name of the XML data type
Returns:
Registered SerializerFactory or null if there is no registered factory

getSupportedEncodings

public String[] getSupportedEncodings()
JAX-RPC Compliant Method Definitions ****************
Specified by:
getSupportedEncodings in interface TypeMapping

getTypeQName

public QName getTypeQName(Class javaType)
Gets the QName for the type mapped to Class.
Specified by:
getTypeQName in interface TypeMapping
Parameters:
javaType - class or type
Returns:
xmlType qname or null

getTypeQNameExact

public QName getTypeQNameExact(Class javaType)
Get the QName for this Java class, but only return a specific mapping if there is one. In other words, don't do special array processing, etc.
Specified by:
getTypeQNameExact in interface TypeMapping
Parameters:
javaType -
Returns:

getXMLType

public QName getXMLType(Class javaType,
                        QName xmlType,
                        boolean encoded)
            throws JAXRPCException
Get the exact XML type QName which will be used when serializing a given Class to a given type QName. In other words, if we have: Class TypeQName ---------------------- Base myNS:Base Child myNS:Child and call getXMLType(Child.class, BASE_QNAME), we should get CHILD_QNAME.
Specified by:
getXMLType in interface TypeMapping
Parameters:
javaType -
xmlType -
Returns:
the type's QName
Throws:
JAXRPCException -

isRegistered

public boolean isRegistered(Class javaType,
                            QName xmlType)
Checks whether or not type mapping between specified XML type and Java type is registered.
Specified by:
isRegistered in interface TypeMapping
Parameters:
javaType - Class of the Java type
xmlType - Qualified name of the XML data type
Returns:
boolean; true if type mapping between the specified XML type and Java type is registered; otherwise false

register

public void register(Class javaType,
                     QName xmlType,
                     SerializerFactory sf,
                     DeserializerFactory dsf)
            throws JAXRPCException
always throws an exception
Specified by:
register in interface TypeMapping
Parameters:
javaType -
xmlType -
sf -
dsf -
Throws:
JAXRPCException -

removeDeserializer

public void removeDeserializer(Class javaType,
                               QName xmlType)
            throws JAXRPCException
Removes the DeserializerFactory registered for the specified pair of Java type and XML data type.
Specified by:
removeDeserializer in interface TypeMapping
Parameters:
javaType - Class of the Java type
xmlType - Qualified name of the XML data type
Throws:
JAXRPCException - if there is any error in removing the registered DeserializerFactory

removeSerializer

public void removeSerializer(Class javaType,
                             QName xmlType)
            throws JAXRPCException
Removes the SerializerFactory registered for the specified pair of Java type and XML data type.
Specified by:
removeSerializer in interface TypeMapping
Parameters:
javaType - Class of the Java type
xmlType - Qualified name of the XML data type
Throws:
JAXRPCException - if there is any error that prevents removal of the registered SerializerFactory

setDoAutoTypes

public void setDoAutoTypes(boolean doAutoTypes)

setNext

public void setNext(TypeMappingDelegate next)
setDelegate sets the new Delegate TypeMapping

setSupportedEncodings

public void setSupportedEncodings(String[] namespaceURIs)
Sets the encodingStyle URIs supported by this TypeMapping instance. A TypeMapping that contains only encoding independent serializers and deserializers requires null as the parameter for this method.
Specified by:
setSupportedEncodings in interface TypeMapping
Parameters:

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