JSR 105, v0.13 (Proposed Final Draft)

javax.xml.crypto.dsig.dom
Class DOMSignContext

java.lang.Object
  |
  +--javax.xml.crypto.dsig.dom.DOMSignContext
All Implemented Interfaces:
DOMIdMap, XMLCryptoContext, XMLSignContext

public class DOMSignContext
extends Object
implements XMLSignContext, DOMIdMap

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 before 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).


Constructor Summary
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
 Object get(Object key)
          Returns the value to which this context maps the specified key.
 String getBaseURI()
          Returns the base URI.
 String getDefaultNamespacePrefix()
          Returns the default namespace prefix.
 Element getElementById(String idValue)
          Returns the Element with the specified ID attribute value.
 KeySelector getKeySelector()
          Returns the key selector for finding a key.
 String getNamespacePrefix(String namespaceURI, String defaultPrefix)
          Returns the namespace prefix that the specified namespace URI is associated with.
 Node getNextSibling()
          Returns the nextSibling node.
 Node getParent()
          Returns the parent node.
 Object getProperty(String name)
          Returns the value of the specified property.
 URIDereferencer getURIDereferencer()
          Returns a URIDereferencer that is used to dereference URIReferences.
 Object put(Object key, Object value)
          Associates the specified value with the specified key in this context.
 String putNamespacePrefix(String namespaceURI, String prefix)
          Maps the specified namespace URI to the specified prefix.
 void setBaseURI(String baseURI)
          Sets the base URI.
 void setDefaultNamespacePrefix(String defaultPrefix)
          Sets the default namespace prefix.
 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.
 void setKeySelector(KeySelector ks)
          Sets the key selector for finding a key.
 void setNextSibling(Node nextSibling)
          Sets the next sibling node.
 void setParent(Node parent)
          Sets the parent node.
 Object setProperty(String name, Object value)
          Sets the specified property.
 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

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 Detail

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)

getNamespacePrefix

public String getNamespacePrefix(String namespaceURI,
                                 String defaultPrefix)
Returns the namespace prefix that the specified namespace URI is associated with. Returns the specified default prefix if the specified namespace URI has not been bound to a prefix. To bind a namespace URI to a prefix, call the putNamespacePrefix method.

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:
putNamespacePrefix(String, String)

putNamespacePrefix

public String putNamespacePrefix(String namespaceURI,
                                 String prefix)
Maps the specified namespace URI to the specified prefix. If there is already a prefix associated with the specified namespace URI, the old prefix is replaced by the specified prefix.

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:
getNamespacePrefix(String, String)

getDefaultNamespacePrefix

public String getDefaultNamespacePrefix()
Returns the default namespace prefix. The default namespace prefix is the prefix for all namespace URIs not explicitly set by the putNamespacePrefix method.

Returns:
the default namespace prefix, or null if none has been set.
See Also:
setDefaultNamespacePrefix(String)

setDefaultNamespacePrefix

public void setDefaultNamespacePrefix(String defaultPrefix)
Sets the default namespace prefix. This sets the namespace prefix for all namespace URIs not explicitly set by the putNamespacePrefix method.

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

getBaseURI

public 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(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
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 Object getProperty(String name)
Description copied from interface: XMLCryptoContext
Returns the value of the specified property.

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
See Also:
XMLCryptoContext.setProperty(String, Object)

setProperty

public Object setProperty(String name,
                          Object value)
Description copied from interface: XMLCryptoContext
Sets the specified property.

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
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 Element getElementById(String idValue)
Description copied from interface: DOMIdMap
Returns the Element with the specified ID attribute value.

Specified by:
getElementById in interface DOMIdMap
Parameters:
idValue - the value of the ID
Returns:
the Element with the specified ID attribute value, or null if none.
See Also:
DOMIdMap.setIdAttributeNS(org.w3c.dom.Element, java.lang.String, java.lang.String)

setIdAttributeNS

public void setIdAttributeNS(Element element,
                             String namespaceURI,
                             String localName)
Description copied from interface: DOMIdMap
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.

Specified by:
setIdAttributeNS in interface DOMIdMap
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:
DOMIdMap.getElementById(java.lang.String)

get

public Object get(Object key)
Description copied from interface: XMLCryptoContext
Returns the value to which this context maps the specified key.

More formally, if this context contains a mapping from a key k to a value v such that (key==null ? k==null : key.equals(k)), then this method returns v; otherwise it returns null. (There can be at most one such mapping.)

This method is useful for retrieving arbitrary information that is specific to the cryptographic operation that this context is used for.

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)
Description copied from interface: XMLCryptoContext
Associates the specified value with the specified key in this context. If the context previously contained a mapping for this key, the old value is replaced by the specified value.

This method is useful for storing arbitrary information that is specific to the cryptographic operation that this context is used for.

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
See Also:
XMLCryptoContext.get(Object)

JSR 105, v0.13 (Proposed Final Draft)

Copyright © 2003-2004, Sun Microsystems, Inc. and IBM Corporation. All rights reserved.
Please send comments to: jsr-105-comments@sun.com