# Class DOMSignContext

java.lang.Object
javax.xml.crypto.dom.DOMCryptoContext
javax.xml.crypto.dsig.dom.DOMSignContext

All Implemented Interfaces:
  `XMLSignContext, XMLCryptoContext`

public class DOMSignContext extends DOMCryptoContext implements XMLSignContext
A DOM-specific `XMLSignContext`. This class contains additional methods to specify the location in a DOM tree where an `XMLSignature` object is to be marshalled when generating the signature.

Note that `DOMSignContext` instances can contain information and state specific to the XML signature structure it is used with. The results are unpredictable if a `DOMSignContext` is used with different signature structures (for example, you should not use the same `DOMSignContext` instance to sign two different `XMLSignature` objects).

Since:
  1.6

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DOMSignContext(Key signingKey, Node parent)`
  Creates a `DOMSignContext` with the specified signing key and parent node.
  `DOMSignContext(Key signingKey, Node parent, Node nextSibling)`
  Creates a `DOMSignContext` with the specified signing key, parent and next sibling nodes.
  `DOMSignContext(KeySelector ks, Node parent)`
  Creates a `DOMSignContext` with the specified key selector and parent node.
  `DOMSignContext(KeySelector ks, Node parent, Node nextSibling)`
  Creates a `DOMSignContext` with the specified key selector, parent and next sibling nodes.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Node`
  `getNextSibling()`
  Returns the nextSibling node.
  `Node`
  `getParent()`
  Returns the parent node.
  `void`
  `setNextSibling(Node nextSibling)`
  Sets the next sibling node.
  `void`
  `setParent(Node parent)`
  Sets the parent node.

  ### Methods declared in class DOMCryptoContext

  `get, getBaseURI, getDefaultNamespacePrefix, getElementById, getKeySelector, getNamespacePrefix, getProperty, getURIDereferencer, iterator, put, putNamespacePrefix, setBaseURI, setDefaultNamespacePrefix, setIdAttributeNS, setKeySelector, setProperty, setURIDereferencer`

  ### Methods declared in class Object

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

  ### Methods declared in interface XMLCryptoContext

  `get, getBaseURI, getDefaultNamespacePrefix, getKeySelector, getNamespacePrefix, getProperty, getURIDereferencer, put, putNamespacePrefix, setBaseURI, setDefaultNamespacePrefix, setKeySelector, setProperty, setURIDereferencer`

- ## Constructor Details

  - ### DOMSignContext

    public DOMSignContext(Key signingKey, Node parent)
    Creates a `DOMSignContext` with the specified signing key and parent node. The signing key is stored in a `singleton KeySelector` that is returned by the `getKeySelector` method. The marshalled `XMLSignature` will be added as the last child element of the specified parent node unless a next sibling node is specified by invoking the `setNextSibling` method.
    Parameters:
      `signingKey` - the signing key
      `parent` - the parent node
    Throws:
      `NullPointerException` - if `signingKey` or `parent` is `null`

  - ### DOMSignContext

    public DOMSignContext(Key signingKey, Node parent, Node nextSibling)
    Creates a `DOMSignContext` with the specified signing key, parent and next sibling nodes. The signing key is stored in a `singleton KeySelector` that is returned by the `getKeySelector` method. The marshalled `XMLSignature` will be inserted as a child element of the specified parent node and immediately before the specified next sibling node.
    Parameters:
      `signingKey` - the signing key
      `parent` - the parent node
      `nextSibling` - the next sibling node
    Throws:
      `NullPointerException` - if `signingKey`, `parent` or `nextSibling` is `null`

  - ### DOMSignContext

    public DOMSignContext(KeySelector ks, Node parent)
    Creates a `DOMSignContext` with the specified key selector and parent node. The marshalled `XMLSignature` will be added as the last child element of the specified parent node unless a next sibling node is specified by invoking the `setNextSibling` method.
    Parameters:
      `ks` - the key selector
      `parent` - the parent node
    Throws:
      `NullPointerException` - if `ks` or `parent` is `null`

  - ### DOMSignContext

    public DOMSignContext(KeySelector ks, Node parent, Node nextSibling)
    Creates a `DOMSignContext` with the specified key selector, parent and next sibling nodes. The marshalled `XMLSignature` will be inserted as a child element of the specified parent node and immediately before the specified next sibling node.
    Parameters:
      `ks` - the key selector
      `parent` - the parent node
      `nextSibling` - the next sibling node
    Throws:
      `NullPointerException` - if `ks`, `parent` or `nextSibling` is `null`

- ## Method Details

  - ### setParent

    public void setParent(Node parent)
    Sets the parent node.
    Parameters:
      `parent` - the parent node. The marshalled `XMLSignature` will be added as a child element of this node.
    Throws:
      `NullPointerException` - if `parent` is `null`
    See Also:
      - `getParent()`

  - ### setNextSibling

    public void setNextSibling(Node nextSibling)
    Sets the next sibling node.
    Parameters:
      `nextSibling` - the next sibling node. The marshalled `XMLSignature` will be inserted immediately before this node. Specify `null` to remove the current setting.
    See Also:
      - `getNextSibling()`

  - ### getParent

    public Node getParent()
    Returns the parent node.
    Returns:
      the parent node (never `null`)
    See Also:
      - `setParent(Node)`

  - ### getNextSibling

    public Node getNextSibling()
    Returns the nextSibling node.
    Returns:
      the nextSibling node, or `null` if not specified.
    See Also:
      - `setNextSibling(Node)`