com.evolveum.midpoint.prism.xml
Class GlobalDynamicNamespacePrefixMapper

java.lang.Object
  extended by com.sun.xml.bind.marshaller.NamespacePrefixMapper
      extended by com.evolveum.midpoint.prism.xml.GlobalDynamicNamespacePrefixMapper
All Implemented Interfaces:
DynamicNamespacePrefixMapper, Dumpable

public class GlobalDynamicNamespacePrefixMapper
extends com.sun.xml.bind.marshaller.NamespacePrefixMapper
implements DynamicNamespacePrefixMapper, Dumpable

Maps namespaces to preferred prefixes. Should be used through the code to avoid generation of prefixes. Although this is usually used as singleton (static), it can also be instantiated to locally override some namespace mappings. This is useful for prefixes like "tns" (schema) or "ri" (resource schema).

Author:
Igor Farinic, Radovan Semancik
See Also:
MID-349

Constructor Summary
GlobalDynamicNamespacePrefixMapper()
           
 
Method Summary
 GlobalDynamicNamespacePrefixMapper clone()
           
 java.lang.String dump()
          Show the content of the object intended for diagnostics by developer.
 java.lang.String getDefaultNamespace()
           
static java.lang.String getPreferredPrefix(java.lang.String namespace)
           
static java.lang.String getPreferredPrefix(java.lang.String namespace, java.lang.String hintPrefix)
           
 java.lang.String getPreferredPrefix(java.lang.String namespaceUri, java.lang.String suggestion, boolean requirePrefix)
           
 java.lang.String getPrefix(java.lang.String namespace)
           
 java.lang.String getPrefixExplicit(java.lang.String namespace)
           
 boolean isAlwaysExplicit()
           
 void registerPrefix(java.lang.String namespace, java.lang.String prefix, boolean isDefaultNamespace)
           
 void registerPrefixLocal(java.lang.String namespace, java.lang.String prefix)
           
 void setAlwaysExplicit(boolean alwaysExplicit)
           
 void setDefaultNamespace(java.lang.String defaultNamespace)
           
 javax.xml.namespace.QName setQNamePrefix(javax.xml.namespace.QName qname)
           
 javax.xml.namespace.QName setQNamePrefixExplicit(javax.xml.namespace.QName qname)
          Makes sure that there is explicit prefix and not a default namespace prefix.
 
Methods inherited from class com.sun.xml.bind.marshaller.NamespacePrefixMapper
getContextualNamespaceDecls, getPreDeclaredNamespaceUris, getPreDeclaredNamespaceUris2
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GlobalDynamicNamespacePrefixMapper

public GlobalDynamicNamespacePrefixMapper()
Method Detail

getDefaultNamespace

public java.lang.String getDefaultNamespace()

setDefaultNamespace

public void setDefaultNamespace(java.lang.String defaultNamespace)

isAlwaysExplicit

public boolean isAlwaysExplicit()
Specified by:
isAlwaysExplicit in interface DynamicNamespacePrefixMapper

setAlwaysExplicit

public void setAlwaysExplicit(boolean alwaysExplicit)
Specified by:
setAlwaysExplicit in interface DynamicNamespacePrefixMapper

registerPrefix

public void registerPrefix(java.lang.String namespace,
                           java.lang.String prefix,
                           boolean isDefaultNamespace)
Specified by:
registerPrefix in interface DynamicNamespacePrefixMapper

registerPrefixLocal

public void registerPrefixLocal(java.lang.String namespace,
                                java.lang.String prefix)
Specified by:
registerPrefixLocal in interface DynamicNamespacePrefixMapper

getPrefix

public java.lang.String getPrefix(java.lang.String namespace)
Specified by:
getPrefix in interface DynamicNamespacePrefixMapper

getPrefixExplicit

public java.lang.String getPrefixExplicit(java.lang.String namespace)

setQNamePrefix

public javax.xml.namespace.QName setQNamePrefix(javax.xml.namespace.QName qname)
Specified by:
setQNamePrefix in interface DynamicNamespacePrefixMapper

setQNamePrefixExplicit

public javax.xml.namespace.QName setQNamePrefixExplicit(javax.xml.namespace.QName qname)
Description copied from interface: DynamicNamespacePrefixMapper
Makes sure that there is explicit prefix and not a default namespace prefix.

Specified by:
setQNamePrefixExplicit in interface DynamicNamespacePrefixMapper

getPreferredPrefix

public java.lang.String getPreferredPrefix(java.lang.String namespaceUri,
                                           java.lang.String suggestion,
                                           boolean requirePrefix)
Specified by:
getPreferredPrefix in class com.sun.xml.bind.marshaller.NamespacePrefixMapper

getPreferredPrefix

public static java.lang.String getPreferredPrefix(java.lang.String namespace)
Parameters:
namespace -
Returns:
preferred prefix for the namespace, if no prefix is assigned yet, then it will assign a prefix and return it.

getPreferredPrefix

public static java.lang.String getPreferredPrefix(java.lang.String namespace,
                                                  java.lang.String hintPrefix)
Parameters:
namespace -
hintPrefix -
Returns:
preferred prefix for the namespace, if no prefix is assigned yet, then it assign hint prefix (if it is not assigned yet) or assign a new prefix and return it (if hint prefix is already assigned to other namespace).

clone

public GlobalDynamicNamespacePrefixMapper clone()
Specified by:
clone in interface DynamicNamespacePrefixMapper
Overrides:
clone in class java.lang.Object

dump

public java.lang.String dump()
Description copied from interface: Dumpable
Show the content of the object intended for diagnostics by developer. The content may be multi-line, in case of hierarchical objects it may be intended. The use of this method may not be efficient. It is not supposed to be used in normal operation. However, it is very useful in tests or in case of dumping objects in severe error situations.

Specified by:
dump in interface Dumpable
Returns:
content of the object intended for diagnostics.


Copyright © 2012 evolveum. All Rights Reserved.