Module java.xml.crypto
Package javax.xml.crypto.dom

## Class DOMCryptoContext

- java.lang.Object
- - javax.xml.crypto.dom.DOMCryptoContext

- All Implemented Interfaces:
    `XMLCryptoContext`
  Direct Known Subclasses:
    `DOMSignContext`, `DOMValidateContext`

      public class DOMCryptoContext
      extends 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.
  Since:
    1.6

- - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `DOMCryptoContext()` | Default constructor.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `Object` | `get​(Object key)` | This implementation uses an internal `HashMap` to get the object that the specified key maps to.
    `Element` | `getElementById​(String idValue)` | Returns the `Element` with the specified ID attribute value.
    `String` | `getNamespacePrefix​(String namespaceURI, String defaultPrefix)` | This implementation uses an internal `HashMap` to get the prefix that the specified URI maps to.
    `Object` | `getProperty​(String name)` | This implementation uses an internal `HashMap` to get the object that the specified name maps to.
    `Iterator<Map.Entry<String,​Element>>` | `iterator()` | Returns a read-only iterator over the set of Id/Element mappings of this `DOMCryptoContext`.
    `Object` | `put​(Object key, Object value)` | This implementation uses an internal `HashMap` to map the key to the specified object.
    `String` | `putNamespacePrefix​(String namespaceURI, String prefix)` | This implementation uses an internal `HashMap` to map the URI to the specified prefix.
    `void` | `setBaseURI​(String baseURI)` | Sets the base URI.
    `void` | `setIdAttributeNS​(Element element, String namespaceURI, String localName)` | Registers the element's attribute specified by the namespace URI and local name to be of type ID.
    `Object` | `setProperty​(String name, Object value)` | This implementation uses an internal `HashMap` to map the name to the specified object.

    - ### Methods declared in class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods declared in interface javax.xml.crypto.XMLCryptoContext

      `getBaseURI, getDefaultNamespacePrefix, getKeySelector, getURIDereferencer, setDefaultNamespacePrefix, setKeySelector, setURIDereferencer`

- - ### Constructor Detail

    - #### DOMCryptoContext

          protected DOMCryptoContext()

      Default constructor. (For invocation by subclass constructors).

  - ### Method Detail

    - #### getNamespacePrefix

          public String getNamespacePrefix​(String namespaceURI,
                                           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:
        `NullPointerException` - if `namespaceURI` is `null`
      See Also:
        `XMLCryptoContext.putNamespacePrefix(String, String)`

    - #### putNamespacePrefix

          public String putNamespacePrefix​(String namespaceURI,
                                           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:
        `NullPointerException` - if `namespaceURI` is `null`
      See Also:
        `XMLCryptoContext.getNamespacePrefix(String, String)`

    - #### setBaseURI

          public void setBaseURI​(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:
        `IllegalArgumentException` - if `baseURI` is not RFC 2396 compliant
      See Also:
        `XMLCryptoContext.getBaseURI()`

    - #### getProperty

          public Object getProperty​(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:
        `NullPointerException` - if `name` is `null`
      See Also:
        `XMLCryptoContext.setProperty(String, Object)`

    - #### setProperty

          public Object setProperty​(String name,
                                    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:
        `NullPointerException` - if `name` is `null`
      See Also:
        `XMLCryptoContext.getProperty(String)`

    - #### getElementById

          public Element getElementById​(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:
        `NullPointerException` - if `idValue` is `null`
      See Also:
        `setIdAttributeNS(org.w3c.dom.Element, java.lang.String, java.lang.String)`

    - #### setIdAttributeNS

          public void setIdAttributeNS​(Element element,
                                       String namespaceURI,
                                       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:
        `IllegalArgumentException` - if `localName` is not an attribute of the specified element or it does not contain a specific value
        `NullPointerException` - if `element` or `localName` is `null`
      See Also:
        `getElementById(java.lang.String)`

    - #### iterator

          public Iterator<Map.Entry<String,​Element>> 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 Object get​(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 Object put​(Object key,
                            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:
        `IllegalArgumentException` - if some aspect of this key or value prevents it from being stored in this context
      See Also:
        `XMLCryptoContext.get(Object)`