|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.axis.encoding.TypeMappingRegistryImpl
The TypeMappingRegistry keeps track of the individual TypeMappings. The TypeMappingRegistry for axis contains a default type mapping that is set for either SOAP 1.1 or SOAP 1.2 The default type mapping is a singleton used for the entire runtime and should not have anything new registered in it. Instead the new TypeMappings for the deploy and service are made in a separate TypeMapping which is identified by the soap encoding. These new TypeMappings delegate back to the default type mapping when information is not found. So logically we have:
TMR | | | +---------------> DefaultTM | ^ | | +----> TM --delegate---+But in the implementation, the TMR references "delegate" TypeMappings (TM') which then reference the actual TM's So the picture is really:
TMR | | | +-----------TM'------> DefaultTM | ^ | | +-TM'-> TM ----+This extra indirection is necessary because the user may want to change the default type mapping. In such cases, the TMR just needs to adjust the TM' for the DefaultTM, and all of the other TMs will properly delegate to the new one. Here's the picture:
TMR | | | +-----------TM'--+ DefaultTM | ^ | | | +---> New User Defined Default TM +-TM'-> TM ----+The other reason that it is necessary is when a deploy has a TMR, and then TMR's are defined for the individual services in such cases the delegate() method is invoked on the service to delegate to the deploy TMR
Deploy TMR | | | +-----------TM'------> DefaultTM | ^ | | +-TM'-> TM ----+ Service TMR | | | +-----------TM'------> DefaultTM | ^ | | +-TM'-> TM ----+ ServiceTMR.delegate(DeployTMR) Deploy TMR | | | +------------TM'------> DefaultTM | ^ ^ | | | +-TM'-> TM ----+ | ^ | +-------+ | | | | Service TMR | | | | | | | +----------TM'-+ | | | | | +-TM'-> TM + | | +----------------+So now the service uses the DefaultTM of the Deploy TMR, and the Service TM properly delegates to the deploy's TM. And if either the deploy defaultTM or TMs change, the links are not broken.
Constructor Summary | |
TypeMappingRegistryImpl()
Construct TypeMappingRegistry |
Method Summary | |
void |
clear()
Removes all TypeMappings and namespaceURIs from this TypeMappingRegistry. |
javax.xml.rpc.encoding.TypeMapping |
createTypeMapping()
Creates a new empty TypeMapping object for the specified encoding style or XML schema namespace. |
void |
delegate(TypeMappingRegistry secondaryTMR)
delegate Changes the contained type mappings to delegate to their corresponding types in the secondary TMR. |
javax.xml.rpc.encoding.TypeMapping |
getDefaultTypeMapping()
Return the default TypeMapping |
TypeMapping |
getOrMakeTypeMapping(String encodingStyle)
Obtain a type mapping for the given encodingStyle. |
String[] |
getRegisteredEncodingStyleURIs()
Gets a list of namespace URIs registered with this TypeMappingRegistry. |
javax.xml.rpc.encoding.TypeMapping |
getTypeMapping(String namespaceURI)
Gets the TypeMapping for the namespace. |
javax.xml.rpc.encoding.TypeMapping |
register(String namespaceURI,
javax.xml.rpc.encoding.TypeMapping mapping)
The method register adds a TypeMapping instance for a specific namespace |
void |
registerDefault(javax.xml.rpc.encoding.TypeMapping mapping)
The method register adds a default TypeMapping instance. |
boolean |
removeTypeMapping(javax.xml.rpc.encoding.TypeMapping mapping)
Removes the TypeMapping for the namespace. |
javax.xml.rpc.encoding.TypeMapping |
unregisterTypeMapping(String namespaceURI)
Unregisters the TypeMapping for the namespace. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public TypeMappingRegistryImpl()
Method Detail |
public void delegate(TypeMappingRegistry secondaryTMR)
delegate
in interface TypeMappingRegistry
public javax.xml.rpc.encoding.TypeMapping register(String namespaceURI, javax.xml.rpc.encoding.TypeMapping mapping)
register
in interface javax.xml.rpc.encoding.TypeMappingRegistry
namespaceURI
- mapping
- - TypeMapping for specific namespaces
JAXRPCException
- - If there is any error in the registration
of the TypeMapping for the specified namespace URIpublic void registerDefault(javax.xml.rpc.encoding.TypeMapping mapping)
registerDefault
in interface javax.xml.rpc.encoding.TypeMappingRegistry
mapping
- - TypeMapping for specific type namespaces
java.lang.IllegalArgumentException -
if an invalid type mapping is specified or the delegate is already setpublic javax.xml.rpc.encoding.TypeMapping getTypeMapping(String namespaceURI)
getTypeMapping
in interface javax.xml.rpc.encoding.TypeMappingRegistry
namespaceURI
- - The namespace URI of a Web Service
public TypeMapping getOrMakeTypeMapping(String encodingStyle)
getOrMakeTypeMapping
in interface TypeMappingRegistry
encodingStyle
-
public javax.xml.rpc.encoding.TypeMapping unregisterTypeMapping(String namespaceURI)
unregisterTypeMapping
in interface javax.xml.rpc.encoding.TypeMappingRegistry
namespaceURI
- - The namespace URI
public boolean removeTypeMapping(javax.xml.rpc.encoding.TypeMapping mapping)
removeTypeMapping
in interface javax.xml.rpc.encoding.TypeMappingRegistry
mapping
- The type mapping to remove
public javax.xml.rpc.encoding.TypeMapping createTypeMapping()
createTypeMapping
in interface javax.xml.rpc.encoding.TypeMappingRegistry
public String[] getRegisteredEncodingStyleURIs()
getRegisteredEncodingStyleURIs
in interface javax.xml.rpc.encoding.TypeMappingRegistry
public void clear()
clear
in interface javax.xml.rpc.encoding.TypeMappingRegistry
public javax.xml.rpc.encoding.TypeMapping getDefaultTypeMapping()
getDefaultTypeMapping
in interface javax.xml.rpc.encoding.TypeMappingRegistry
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |