javax.xml.crypto.dom
Class DOMCryptoContext

java.lang.Object
  extended byjavax.xml.crypto.dom.DOMCryptoContext
All Implemented Interfaces:
XMLCryptoContext
Direct Known Subclasses:
DOMSignContext, DOMValidateContext

public class DOMCryptoContext
extends java.lang.Object
implements XMLCryptoContext

This class provides a DOM-specific implementation of the XMLCryptoContext interface. It also includes additional methods that are specific to a DOM-based implementation for registering and retrieving elements that contain attributes of type ID.

Author:
Sean Mullan, JSR 105 Expert Group

Constructor Summary
protected DOMCryptoContext()
          Default constructor.
 
Method Summary
 java.lang.Object get(java.lang.Object key)
          This implementation uses an internal HashMap to get the object that the specified key maps to.
 java.lang.String getBaseURI()
          Returns the base URI.
 java.lang.String getDefaultNamespacePrefix()
          Returns the default namespace prefix.
 org.w3c.dom.Element getElementById(java.lang.String idValue)
          Returns the Element with the specified ID attribute value.
 KeySelector getKeySelector()
          Returns the key selector for finding a key.
 java.lang.String getNamespacePrefix(java.lang.String namespaceURI, java.lang.String defaultPrefix)
          This implementation uses an internal HashMap to get the prefix that the specified URI maps to.
 java.lang.Object getProperty(java.lang.String name)
          This implementation uses an internal HashMap to get the object that the specified name maps to.
 URIDereferencer getURIDereferencer()
          Returns a URIDereferencer that is used to dereference URIReferences.
 java.util.Iterator iterator()
          Returns a read-only iterator over the set of Id/Element mappings of this DOMCryptoContext.
 java.lang.Object put(java.lang.Object key, java.lang.Object value)
          This implementation uses an internal HashMap to map the key to the specified object.
 java.lang.String putNamespacePrefix(java.lang.String namespaceURI, java.lang.String prefix)
          This implementation uses an internal HashMap to map the URI to the specified prefix.
 void setBaseURI(java.lang.String baseURI)
          Sets the base URI.
 void setDefaultNamespacePrefix(java.lang.String defaultPrefix)
          Sets the default namespace prefix.
 void setIdAttributeNS(org.w3c.dom.Element element, java.lang.String namespaceURI, java.lang.String localName)
          Registers the element's attribute specified by the namespace URI and local name to be of type ID.
 void setKeySelector(KeySelector ks)
          Sets the key selector for finding a key.
 java.lang.Object setProperty(java.lang.String name, java.lang.Object value)
          This implementation uses an internal HashMap to map the name to the specified object.
 void setURIDereferencer(URIDereferencer dereferencer)
          Sets a URIDereferencer that is used to dereference URIReferences.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DOMCryptoContext

protected DOMCryptoContext()
Default constructor. (For invocation by subclass constructors).

Method Detail

getNamespacePrefix

public java.lang.String getNamespacePrefix(java.lang.String namespaceURI,
                                           java.lang.String defaultPrefix)
This implementation uses an internal HashMap to get the prefix that the specified URI maps to. It returns the defaultPrefix if it maps to null.

Specified by:
getNamespacePrefix in interface XMLCryptoContext
Parameters:
namespaceURI - a namespace URI
defaultPrefix - the prefix to be returned in the event that the the specified namespace URI has not been bound to a prefix.
Returns:
the prefix that is associated with the specified namespace URI, or defaultPrefix if the URI is not registered. If the namespace URI is registered but has no prefix, an empty string ("") is returned.
Throws:
java.lang.NullPointerException - if namespaceURI is null
See Also:
XMLCryptoContext.putNamespacePrefix(String, String)

putNamespacePrefix

public java.lang.String putNamespacePrefix(java.lang.String namespaceURI,
                                           java.lang.String prefix)
This implementation uses an internal HashMap to map the URI to the specified prefix.

Specified by:
putNamespacePrefix in interface XMLCryptoContext
Parameters:
namespaceURI - a namespace URI
prefix - a namespace prefix (or null to remove any existing mapping). Specifying the empty string ("") binds no prefix to the namespace URI.
Returns:
the previous prefix associated with the specified namespace URI, or null if there was none
Throws:
java.lang.NullPointerException - if namespaceURI is null
See Also:
XMLCryptoContext.getNamespacePrefix(String, String)

getDefaultNamespacePrefix

public java.lang.String getDefaultNamespacePrefix()
Description copied from interface: XMLCryptoContext
Returns the default namespace prefix. The default namespace prefix is the prefix for all namespace URIs not explicitly set by the putNamespacePrefix method.

Specified by:
getDefaultNamespacePrefix in interface XMLCryptoContext
Returns:
the default namespace prefix, or null if none has been set.
See Also:
XMLCryptoContext.setDefaultNamespacePrefix(String)

setDefaultNamespacePrefix

public void setDefaultNamespacePrefix(java.lang.String defaultPrefix)
Description copied from interface: XMLCryptoContext
Sets the default namespace prefix. This sets the namespace prefix for all namespace URIs not explicitly set by the putNamespacePrefix method.

Specified by:
setDefaultNamespacePrefix in interface XMLCryptoContext
Parameters:
defaultPrefix - the default namespace prefix, or null to remove the current setting. Specify the empty string ("") to bind no prefix.
See Also:
XMLCryptoContext.getDefaultNamespacePrefix()

getBaseURI

public java.lang.String getBaseURI()
Description copied from interface: XMLCryptoContext
Returns the base URI.

Specified by:
getBaseURI in interface XMLCryptoContext
Returns:
the base URI, or null if not specified
See Also:
XMLCryptoContext.setBaseURI(String)

setBaseURI

public void setBaseURI(java.lang.String baseURI)
Description copied from interface: XMLCryptoContext
Sets the base URI.

Specified by:
setBaseURI in interface XMLCryptoContext
Parameters:
baseURI - the base URI, or null to remove current value
Throws:
java.lang.IllegalArgumentException - if baseURI is not RFC 2396 compliant
See Also:
XMLCryptoContext.getBaseURI()

getURIDereferencer

public URIDereferencer getURIDereferencer()
Description copied from interface: XMLCryptoContext
Returns a URIDereferencer that is used to dereference URIReferences.

Specified by:
getURIDereferencer in interface XMLCryptoContext
Returns:
the URIDereferencer, or null if not specified
See Also:
XMLCryptoContext.setURIDereferencer(URIDereferencer)

setURIDereferencer

public void setURIDereferencer(URIDereferencer dereferencer)
Description copied from interface: XMLCryptoContext
Sets a URIDereferencer that is used to dereference URIReferences. The specified URIDereferencer is used in place of an implementation's default URIDereferencer.

Specified by:
setURIDereferencer in interface XMLCryptoContext
Parameters:
dereferencer - the URIDereferencer, or null to remove any current setting
See Also:
XMLCryptoContext.getURIDereferencer()

getProperty

public java.lang.Object getProperty(java.lang.String name)
This implementation uses an internal HashMap to get the object that the specified name maps to.

Specified by:
getProperty in interface XMLCryptoContext
Parameters:
name - the name of the property
Returns:
the current value of the specified property, or null if it does not have a value
Throws:
java.lang.NullPointerException - if name is null
See Also:
XMLCryptoContext.setProperty(String, Object)

setProperty

public java.lang.Object setProperty(java.lang.String name,
                                    java.lang.Object value)
This implementation uses an internal HashMap to map the name to the specified object.

Specified by:
setProperty in interface XMLCryptoContext
Parameters:
name - the name of the property
value - the value of the property to be set
Returns:
the previous value of the specified property, or null if it did not have a value
Throws:
java.lang.NullPointerException - if name is null
See Also:
XMLCryptoContext.getProperty(String)

getKeySelector

public KeySelector getKeySelector()
Description copied from interface: XMLCryptoContext
Returns the key selector for finding a key.

Specified by:
getKeySelector in interface XMLCryptoContext
Returns:
the key selector, or null if not specified
See Also:
XMLCryptoContext.setKeySelector(KeySelector)

setKeySelector

public void setKeySelector(KeySelector ks)
Description copied from interface: XMLCryptoContext
Sets the key selector for finding a key.

Specified by:
setKeySelector in interface XMLCryptoContext
Parameters:
ks - the key selector, or null to remove the current setting
See Also:
XMLCryptoContext.getKeySelector()

getElementById

public org.w3c.dom.Element getElementById(java.lang.String idValue)
Returns the Element with the specified ID attribute value.

This implementation uses an internal HashMap to get the element that the specified attribute value maps to.

Parameters:
idValue - the value of the ID
Returns:
the Element with the specified ID attribute value, or null if none.
Throws:
java.lang.NullPointerException - if idValue is null
See Also:
setIdAttributeNS(org.w3c.dom.Element, java.lang.String, java.lang.String)

setIdAttributeNS

public void setIdAttributeNS(org.w3c.dom.Element element,
                             java.lang.String namespaceURI,
                             java.lang.String localName)
Registers the element's attribute specified by the namespace URI and local name to be of type ID. The attribute must have a non-empty value.

This implementation uses an internal HashMap to map the attribute's value to the specified element.

Parameters:
element - the element
namespaceURI - the namespace URI of the attribute (specify null if not applicable)
localName - the local name of the attribute
Throws:
java.lang.IllegalArgumentException - if localName is not an attribute of the specified element or it does not contain a specific value
java.lang.NullPointerException - if element or localName is null
See Also:
getElementById(java.lang.String)

iterator

public java.util.Iterator iterator()
Returns a read-only iterator over the set of Id/Element mappings of this DOMCryptoContext. Attempts to modify the set via the Iterator.remove() method throw an UnsupportedOperationException. The mappings are returned in no particular order. Each element in the iteration is represented as a Map.Entry. If the DOMCryptoContext is modified while an iteration is in progress, the results of the iteration are undefined.

Returns:
a read-only iterator over the set of mappings

get

public java.lang.Object get(java.lang.Object key)
This implementation uses an internal HashMap to get the object that the specified key maps to.

Specified by:
get in interface XMLCryptoContext
Parameters:
key - the key whose associated value is to be returned
Returns:
the value to which this context maps the specified key, or null if there is no mapping for the key
See Also:
XMLCryptoContext.put(Object, Object)

put

public java.lang.Object put(java.lang.Object key,
                            java.lang.Object value)
This implementation uses an internal HashMap to map the key to the specified object.

Specified by:
put in interface XMLCryptoContext
Parameters:
key - key with which the specified value is to be associated with
value - value to be associated with the specified key
Returns:
the previous value associated with the key, or null if there was no mapping for the key
Throws:
java.lang.IllegalArgumentException - if some aspect of this key or value prevents it from being stored in this context
See Also:
XMLCryptoContext.get(Object)