org.apache.cxf.aegis.type.TypeMappingRegistry Maven / Gradle / Ivy
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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 org.apache.cxf.aegis.type;
/**
* The TypeMappingRegistry provides access to the type mappings within XFire.
*
* @author Dan Diephouse
* @since Feb 18, 2004
*/
public interface TypeMappingRegistry {
String ROLE = TypeMappingRegistry.class.getName();
/**
*/
TypeMapping register(String encodingStyleURI, TypeMapping mapping);
/**
*/
void registerDefault(TypeMapping mapping);
/**
* Gets the registered default TypeMapping
instance. This
* method returns null
if there is no registered default
* TypeMapping in the registry.
*
* @return The registered default TypeMapping
instance or
* null
.
*/
TypeMapping getDefaultTypeMapping();
/**
* Returns a list of registered encodingStyle URIs in this
* TypeMappingRegistry
instance.
*
* @return Array of the registered encodingStyle URIs
*/
String[] getRegisteredEncodingStyleURIs();
/**
* Returns the registered TypeMapping
for the specified
* encodingStyle URI. If there is no registered TypeMapping
* for the specified encodingStyleURI
, this method returns
* null
.
*
* @param encodingStyleURI Encoding style specified as an URI
* @return TypeMapping for the specified encodingStyleURI or
* null
*/
TypeMapping getTypeMapping(String encodingStyleURI);
/**
* Creates a new empty TypeMapping
object.
*
* @return TypeMapping instance.
*/
TypeMapping createTypeMapping(boolean autoTypes);
/**
* Create a type mapping with the specified encodying style.
*
* @param parentEncodingStyleURI Encoding style of the parent
* TypeMapping
specified as an URI
* @param autoTypes Should this mapping auto-generate types where possible
* @return TypeMapping instance
*/
TypeMapping createTypeMapping(String parentEncodingStyleURI, boolean autoTypes);
/**
* Unregisters a TypeMapping instance, if present, from the specified
* encodingStyleURI.
*
* @param encodingStyleURI Encoding style specified as an URI
* @return TypeMapping
instance that has been unregistered or
* null
if there was no TypeMapping registered for
* the specified encodingStyleURI
*/
TypeMapping unregisterTypeMapping(String encodingStyleURI);
/**
* Removes a TypeMapping
from the TypeMappingRegistry. A
* TypeMapping
is associated with 1 or more
* encodingStyleURIs. This method unregisters the specified
* TypeMapping
instance from all associated
* encodingStyleURIs
and then removes this TypeMapping
* instance from the registry.
*
* @param mapping TypeMapping to remove
* @return true
if specified TypeMapping
is
* removed from the TypeMappingRegistry; false
if the
* specified TypeMapping
was not in the
* TypeMappingRegistry
*/
boolean removeTypeMapping(TypeMapping mapping);
/**
* Removes all registered TypeMappings and encodingStyleURIs from this
* TypeMappingRegistry.
*/
void clear();
/**
* Set the type configuration for this type mapping registry.
* @param configuration
*/
void setConfiguration(Configuration configuration);
/**
* @return the configuration.
*/
Configuration getConfiguration();
}