This is the implementation of the axis TypeMapping interface (which extends
the JAX-RPC TypeMapping interface).
A TypeMapping is obtained from the singleton TypeMappingRegistry using
the namespace of the webservice. The TypeMapping contains the tuples
{Java type, SerializerFactory, DeserializerFactory, Type QName)
So if you have a Web Service with the namespace "XYZ", you call
the TypeMappingRegistry.getTypeMapping("XYZ").
The wsdl in your web service will use a number of types. The tuple
information for each of these will be accessed via the TypeMapping.
Because every web service uses the soap, schema, wsdl primitives, we could
pre-populate the TypeMapping with these standard tuples. Instead,
if the namespace/class matches is not found in the TypeMapping
the request is delegated to the
Default TypeMapping or another TypeMapping
getAllClasses
public Class[] getAllClasses(TypeMappingDelegate next)
Returns an array of all the classes contained within this mapping
getDeserializer
public DeserializerFactory getDeserializer(Class javaType,
QName xmlType,
TypeMappingDelegate start)
throws JAXRPCException
Gets the DeserializerFactory registered for the specified pair
of Java type and XML data type.
javaType
- - Class of the Java typexmlType
- - Qualified name of the XML data type
- Registered DeserializerFactory
JAXRPCException
- - If there is no registered DeserializerFactory
for this pair of Java type and XML data type
java.lang.IllegalArgumentException -
If invalid or unsupported XML/Java type is specified
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.
javaType
- - Class of the Java typexmlType
- - Qualified name of the XML data type
- Registered SerializerFactory
JAXRPCException
- - If there is no registered SerializerFactory
for this pair of Java type and XML data type
java.lang.IllegalArgumentException -
If invalid or unsupported XML/Java type is specified
getSupportedEncodings
public String[] getSupportedEncodings()
Gets the list of encoding styles supported by this TypeMapping object.
- String[] of namespace URIs for the supported encoding
styles and XML schema namespaces.
getTypeQNameExact
public QName getTypeQNameExact(Class javaType,
TypeMappingDelegate next)
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.
getTypeQNameRecursive
public QName getTypeQNameRecursive(Class javaType)
Gets the QName for the type mapped to Class.
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.
isRegistered
public boolean isRegistered(Class javaType,
QName xmlType)
isRegistered returns true if the [javaType, xmlType]
pair is registered.
javaType
- - Class of the Java typexmlType
- - Qualified name of the XML data type
- true if there is a mapping for the given pair, or
false if the pair is not specifically registered.
For example if called with (java.lang.String[], soapenc:Array)
this routine will return false because this pair is
probably not specifically registered.
However if getSerializer is called with the same pair,
the default TypeMapping will use extra logic to find
a serializer (i.e. array serializer)
register
public void register(Class javaType,
QName xmlType,
SerializerFactory sf,
DeserializerFactory dsf)
throws JAXRPCException
Registers SerializerFactory and DeserializerFactory for a
specific type mapping between an XML type and Java type.
javaType
- - Class of the Java typexmlType
- - Qualified name of the XML data typesf
- - SerializerFactorydsf
- - DeserializerFactory
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.
javaType
- - Class of the Java typexmlType
- - Qualified name of the XML data type
JAXRPCException
- - If there is 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.
javaType
- - Class of the Java typexmlType
- - Qualified name of the XML data type
JAXRPCException
- - If there is error in
removing the registered SerializerFactory
setDoAutoTypes
public void setDoAutoTypes(boolean doAutoTypes)
setSupportedEncodings
public void setSupportedEncodings(String[] namespaceURIs)
Sets the list of encoding styles supported by this TypeMapping object.
(Not sure why this is useful...this information is automatically updated
during registration.
namespaceURIs
- String[] of namespace URI's
shouldDoAutoTypes
public boolean shouldDoAutoTypes()