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 B) 2005 Apache Web Services Project. All Rights Reserved.