blob: 97f253d621717c19dae82c02ba276c2e56b6788d [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;
/**
* The interface <code>javax.xml.rpc.encoding.TypeMappingRegistry</code>
* defines a registry of TypeMapping instances for various encoding
* styles.
*
* @version 1.0
*/
public interface TypeMappingRegistry extends java.io.Serializable {
/**
* Registers a <code>TypeMapping</code> instance with the
* <code>TypeMappingRegistry</code>. This method replaces any
* existing registered <code>TypeMapping</code> instance for
* the specified <code>encodingStyleURI</code>.
*
* @param encodingStyleURI An encoding style specified as an URI.
* An example is "http://schemas.xmlsoap.org/soap/encoding/"
* @param mapping TypeMapping instance
*
* @return Previous TypeMapping associated with the specified
* <code>encodingStyleURI</code>, or <code>null</code>
* if there was no TypeMapping associated with the specified
* <code>encodingStyleURI</code>
*
* @throws javax.xml.rpc.JAXRPCException if there is any error that prevents
* the registration of the <code>TypeMapping</code> for
* the specified <code>encodingStyleURI</code>
*/
public TypeMapping register(String encodingStyleURI, TypeMapping mapping);
/**
* Registers the <code>TypeMapping</code> instance that is default
* for all encoding styles supported by the
* <code>TypeMappingRegistry</code>. A default <code>TypeMapping</code>
* should include serializers and deserializers that are independent
* of and usable with any encoding style. Successive invocations
* of the <code>registerDefault</code> method replace any existing
* default <code>TypeMapping</code> instance.
* <p>
* If the default <code>TypeMapping</code> is registered, any
* other TypeMapping instances registered through the
* <code>TypeMappingRegistry.register</code> method (for a set
* of encodingStyle URIs) override the default <code>TypeMapping</code>.
*
* @param mapping TypeMapping instance
*
* @throws javax.xml.rpc.JAXRPCException if there is any error that
* prevents the registration of the default
* <code>TypeMapping</code>
*/
public void registerDefault(TypeMapping mapping);
/**
* Gets the registered default <code>TypeMapping</code> instance.
* This method returns <code>null</code> if there is no registered
* default TypeMapping in the registry.
*
* @return The registered default <code>TypeMapping</code> instance
* or <code>null</code>
*/
public TypeMapping getDefaultTypeMapping();
/**
* Returns a list of registered encodingStyle URIs in this
* <code>TypeMappingRegistry</code> instance.
*
* @return Array of the registered encodingStyle URIs
*/
public String[] getRegisteredEncodingStyleURIs();
/**
* Returns the registered <code>TypeMapping</code> for the specified
* encodingStyle URI. If there is no registered <code>TypeMapping</code>
* for the specified <code>encodingStyleURI</code>, this method
* returns <code>null</code>.
*
* @param encodingStyleURI Encoding style specified as an URI
* @return TypeMapping for the specified encodingStyleURI or
* <code>null</code>
*/
public TypeMapping getTypeMapping(String encodingStyleURI);
/**
* Creates a new empty <code>TypeMapping</code> object.
*
* @return TypeMapping instance.
*/
public TypeMapping createTypeMapping();
/**
* Unregisters a TypeMapping instance, if present, from the specified
* encodingStyleURI.
*
* @param encodingStyleURI Encoding style specified as an URI
* @return <code>TypeMapping</code> instance that has been unregistered
* or <code>null</code> if there was no TypeMapping
* registered for the specified <code>encodingStyleURI</code>
*/
public TypeMapping unregisterTypeMapping(String encodingStyleURI);
/**
* Removes a <code>TypeMapping</code> from the TypeMappingRegistry. A
* <code>TypeMapping</code> is associated with 1 or more
* encodingStyleURIs. This method unregisters the specified
* <code>TypeMapping</code> instance from all associated
* <code>encodingStyleURIs</code> and then removes this
* TypeMapping instance from the registry.
*
* @param mapping TypeMapping to remove
* @return <code>true</code> if specified <code>TypeMapping</code>
* is removed from the TypeMappingRegistry; <code>false</code>
* if the specified <code>TypeMapping</code> was not in the
* <code>TypeMappingRegistry</code>
*/
public boolean removeTypeMapping(TypeMapping mapping);
/**
* Removes all registered TypeMappings and encodingStyleURIs
* from this TypeMappingRegistry.
*/
public void clear();
}