View Javadoc

1   package org.codehaus.xfire.java.mapping;
2   
3   /***
4    * The TypeMappingRegistry provides access to the type mappings within XFire.
5    * 
6    * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
7    * @since Feb 18, 2004
8    */
9   public interface TypeMappingRegistry
10  {
11      final public static String ROLE = TypeMappingRegistry.class.getName();
12  
13      /***
14       */
15      public TypeMapping register(String encodingStyleURI, TypeMapping mapping);
16  
17      /***
18       */
19      public void registerDefault(TypeMapping mapping);
20  
21      /***
22       * Gets the registered default <code>TypeMapping</code> instance.
23       * This method returns <code>null</code> if there is no registered
24       * default TypeMapping in the registry.
25       *
26       * @return The registered default <code>TypeMapping</code> instance
27       *     or <code>null</code>.
28       */
29      public TypeMapping getDefaultTypeMapping();
30  
31      /***
32       * Returns a list of registered encodingStyle URIs in this
33       * <code>TypeMappingRegistry</code> instance.
34       *
35       * @return Array of the registered encodingStyle URIs
36       */
37      public String[] getRegisteredEncodingStyleURIs();
38  
39      /***
40       * Returns the registered <code>TypeMapping</code> for the specified
41       * encodingStyle URI. If there is no registered <code>TypeMapping</code>
42       * for the specified <code>encodingStyleURI</code>, this method
43       * returns <code>null</code>.
44       *
45       * @param encodingStyleURI Encoding style specified as an URI
46       * @return TypeMapping for the specified encodingStyleURI or
47       *     <code>null</code>
48       */
49      public TypeMapping getTypeMapping(String encodingStyleURI);
50  
51      /***
52       * Creates a new empty <code>TypeMapping</code> object.
53       *
54       * @return TypeMapping instance.
55       */
56      public TypeMapping createTypeMapping(boolean autoTypes);
57  
58      /***
59       * Create a type mapping with the specified encodying style.
60       * 
61       * @param parentTM The parent type mapping.  Often a namespace.
62       * @return
63       */
64      public TypeMapping createTypeMapping(String encodingStyleURI, boolean autoTypes);
65  
66      /***
67       * Unregisters a TypeMapping instance, if present, from the specified
68       * encodingStyleURI.
69       *
70       * @param encodingStyleURI Encoding style specified as an URI
71       * @return <code>TypeMapping</code> instance that has been unregistered
72       *     or <code>null</code> if there was no TypeMapping
73       *     registered for the specified <code>encodingStyleURI</code>
74       */
75      public TypeMapping unregisterTypeMapping(String encodingStyleURI);
76  
77      /***
78       * Removes a <code>TypeMapping</code> from the TypeMappingRegistry. A
79       * <code>TypeMapping</code> is associated with 1 or more
80       * encodingStyleURIs. This method unregisters the specified
81       * <code>TypeMapping</code> instance from all associated
82       * <code>encodingStyleURIs</code> and then removes this
83       * TypeMapping instance from the registry.
84       *
85       * @param mapping TypeMapping to remove
86       * @return <code>true</code> if specified <code>TypeMapping</code>
87       *     is removed from the TypeMappingRegistry; <code>false</code>
88       *     if the specified <code>TypeMapping</code> was not in the
89       *     <code>TypeMappingRegistry</code>
90       */
91      public boolean removeTypeMapping(TypeMapping mapping);
92  
93      /***
94       * Removes all registered TypeMappings and encodingStyleURIs
95       * from this TypeMappingRegistry.
96       */
97      public void clear();
98  }