All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.codehaus.xfire.aegis.type.TypeMappingRegistry Maven / Gradle / Ivy

package org.codehaus.xfire.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();

    /**
     */
    public TypeMapping register(String encodingStyleURI, TypeMapping mapping);

    /**
     */
    public 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.
     */
    public TypeMapping getDefaultTypeMapping();

    /**
     * Returns a list of registered encodingStyle URIs in this
     * TypeMappingRegistry instance.
     *
     * @return Array of the registered encodingStyle URIs
     */
    public 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
     */
    public TypeMapping getTypeMapping(String encodingStyleURI);

    /**
     * Creates a new empty TypeMapping object.
     *
     * @return TypeMapping instance.
     */
    public 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
     */
    public 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
     */
    public 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
     */
    public boolean removeTypeMapping(TypeMapping mapping);

    /**
     * Removes all registered TypeMappings and encodingStyleURIs
     * from this TypeMappingRegistry.
     */
    public void clear();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy