blob: 9e25ed42c5c09ab26cc74527c6124041f239d8c6 [file] [log] [blame]
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package javax.xml.rpc.encoding;
import javax.xml.namespace.QName;
/**
* The <code>javax.xml.rpc.encoding.TypeMapping</code> is the base
* interface for the representation of a type mapping. A TypeMapping
* implementation class may support one or more encoding styles.
* <p>
* For its supported encoding styles, a TypeMapping instance
* maintains a set of tuples of the type {Java type,
* <code>SerializerFactory</code>,
* <code>DeserializerFactory</code>, XML type}.
*
* @version 1.0
*/
public interface TypeMapping {
/**
* Returns the encodingStyle URIs (as String[]) supported by
* this TypeMapping instance. A TypeMapping that contains only
* encoding style independent serializers and deserializers
* returns <code>null</code> from this method.
*
* @return Array of encodingStyle URIs for the supported
* encoding styles
*/
public String[] getSupportedEncodings();
/**
* Sets the encodingStyle URIs supported by this TypeMapping
* instance. A TypeMapping that contains only encoding
* independent serializers and deserializers requires
* <code>null</code> as the parameter for this method.
*
* @param encodingStyleURIs Array of encodingStyle URIs for the
* supported encoding styles
*/
public void setSupportedEncodings(String[] encodingStyleURIs);
/**
* Checks whether or not type mapping between specified XML
* type and Java type is registered.
*
* @param javaType Class of the Java type
* @param xmlType Qualified name of the XML data type
* @return boolean; <code>true</code> if type mapping between the
* specified XML type and Java type is registered;
* otherwise <code>false</code>
*/
public boolean isRegistered(Class javaType, QName xmlType);
/**
* Registers SerializerFactory and DeserializerFactory for a
* specific type mapping between an XML type and Java type.
* This method replaces any existing registered SerializerFactory
* DeserializerFactory instances.
*
* @param javaType Class of the Java type
* @param xmlType Qualified name of the XML data type
* @param sf SerializerFactory
* @param dsf DeserializerFactory
*
* @throws javax.xml.rpc.JAXRPCException if there are any errors that
* prevent registration
*/
public void register(Class javaType, QName xmlType, SerializerFactory sf,
DeserializerFactory dsf);
/**
* Gets the SerializerFactory registered for the specified
* pair of Java type and XML data type.
*
* @param javaType Class of the Java type
* @param xmlType Qualified name of the XML data type
*
* @return Registered SerializerFactory or <code>null</code>
* if there is no registered factory
*/
public SerializerFactory getSerializer(Class javaType, QName xmlType);
/**
* Gets the DeserializerFactory registered for the specified pair
* of Java type and XML data type.
*
* @param javaType Class of the Java type
* @param xmlType Qualified name of the XML data type
*
* @return Registered SerializerFactory or <code>null</code>
* if there is no registered factory
*/
public DeserializerFactory getDeserializer(Class javaType, QName xmlType);
/**
* Removes the SerializerFactory registered for the specified
* pair of Java type and XML data type.
*
* @param javaType Class of the Java type
* @param xmlType Qualified name of the XML data type
*
* @throws javax.xml.rpc.JAXRPCException if there is any error that prevents
* removal of the registered SerializerFactory
*/
public void removeSerializer(Class javaType, QName xmlType);
/**
* Removes the DeserializerFactory registered for the specified
* pair of Java type and XML data type.
*
* @param javaType Class of the Java type
* @param xmlType Qualified name of the XML data type
*
* @throws javax.xml.rpc.JAXRPCException if there is any error in removing
* the registered DeserializerFactory
*/
public void removeDeserializer(Class javaType, QName xmlType);
}