- 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 theXMLCryptoContext
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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
get(Object key)
This implementation uses an internalHashMap
to get the object that the specified key maps to.String
getBaseURI()
Returns the base URI.String
getDefaultNamespacePrefix()
Returns the default namespace prefix.Element
getElementById(String idValue)
Returns theElement
with the specified ID attribute value.KeySelector
getKeySelector()
Returns the key selector for finding a key.String
getNamespacePrefix(String namespaceURI, String defaultPrefix)
This implementation uses an internalHashMap
to get the prefix that the specified URI maps to.Object
getProperty(String name)
This implementation uses an internalHashMap
to get the object that the specified name maps to.URIDereferencer
getURIDereferencer()
Returns aURIDereferencer
that is used to dereferenceURIReference
s.Iterator<Map.Entry<String,Element>>
iterator()
Returns a read-only iterator over the set of Id/Element mappings of thisDOMCryptoContext
.Object
put(Object key, Object value)
This implementation uses an internalHashMap
to map the key to the specified object.String
putNamespacePrefix(String namespaceURI, String prefix)
This implementation uses an internalHashMap
to map the 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.Object
setProperty(String name, Object value)
This implementation uses an internalHashMap
to map the name to the specified object.void
setURIDereferencer(URIDereferencer dereferencer)
Sets aURIDereferencer
that is used to dereferenceURIReference
s.
-
-
-
Method Detail
-
getNamespacePrefix
public String getNamespacePrefix(String namespaceURI, String defaultPrefix)
This implementation uses an internalHashMap
to get the prefix that the specified URI maps to. It returns thedefaultPrefix
if it maps tonull
.- Specified by:
getNamespacePrefix
in interfaceXMLCryptoContext
- Parameters:
namespaceURI
- a namespace URIdefaultPrefix
- 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
- ifnamespaceURI
isnull
- See Also:
XMLCryptoContext.putNamespacePrefix(String, String)
-
putNamespacePrefix
public String putNamespacePrefix(String namespaceURI, String prefix)
This implementation uses an internalHashMap
to map the URI to the specified prefix.- Specified by:
putNamespacePrefix
in interfaceXMLCryptoContext
- Parameters:
namespaceURI
- a namespace URIprefix
- a namespace prefix (ornull
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
- ifnamespaceURI
isnull
- See Also:
XMLCryptoContext.getNamespacePrefix(String, String)
-
getDefaultNamespacePrefix
public 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 theputNamespacePrefix
method.- Specified by:
getDefaultNamespacePrefix
in interfaceXMLCryptoContext
- Returns:
- the default namespace prefix, or
null
if none has been set. - See Also:
XMLCryptoContext.setDefaultNamespacePrefix(String)
-
setDefaultNamespacePrefix
public void setDefaultNamespacePrefix(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 theputNamespacePrefix
method.- Specified by:
setDefaultNamespacePrefix
in interfaceXMLCryptoContext
- Parameters:
defaultPrefix
- the default namespace prefix, ornull
to remove the current setting. Specify the empty string (""
) to bind no prefix.- See Also:
XMLCryptoContext.getDefaultNamespacePrefix()
-
getBaseURI
public String getBaseURI()
Description copied from interface:XMLCryptoContext
Returns the base URI.- Specified by:
getBaseURI
in interfaceXMLCryptoContext
- 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 interfaceXMLCryptoContext
- Parameters:
baseURI
- the base URI, ornull
to remove current value- Throws:
IllegalArgumentException
- ifbaseURI
is not RFC 2396 compliant- See Also:
XMLCryptoContext.getBaseURI()
-
getURIDereferencer
public URIDereferencer getURIDereferencer()
Description copied from interface:XMLCryptoContext
Returns aURIDereferencer
that is used to dereferenceURIReference
s.- Specified by:
getURIDereferencer
in interfaceXMLCryptoContext
- Returns:
- the
URIDereferencer
, ornull
if not specified - See Also:
XMLCryptoContext.setURIDereferencer(URIDereferencer)
-
setURIDereferencer
public void setURIDereferencer(URIDereferencer dereferencer)
Description copied from interface:XMLCryptoContext
Sets aURIDereferencer
that is used to dereferenceURIReference
s. The specifiedURIDereferencer
is used in place of an implementation's defaultURIDereferencer
.- Specified by:
setURIDereferencer
in interfaceXMLCryptoContext
- Parameters:
dereferencer
- theURIDereferencer
, ornull
to remove any current setting- See Also:
XMLCryptoContext.getURIDereferencer()
-
getProperty
public Object getProperty(String name)
This implementation uses an internalHashMap
to get the object that the specified name maps to.- Specified by:
getProperty
in interfaceXMLCryptoContext
- 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
- ifname
isnull
- See Also:
XMLCryptoContext.setProperty(String, Object)
-
setProperty
public Object setProperty(String name, Object value)
This implementation uses an internalHashMap
to map the name to the specified object.- Specified by:
setProperty
in interfaceXMLCryptoContext
- Parameters:
name
- the name of the propertyvalue
- 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
- ifname
isnull
- 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 interfaceXMLCryptoContext
- 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 interfaceXMLCryptoContext
- Parameters:
ks
- the key selector, ornull
to remove the current setting- See Also:
XMLCryptoContext.getKeySelector()
-
getElementById
public Element getElementById(String idValue)
Returns theElement
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, ornull
if none. - Throws:
NullPointerException
- ifidValue
isnull
- 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 elementnamespaceURI
- the namespace URI of the attribute (specifynull
if not applicable)localName
- the local name of the attribute- Throws:
IllegalArgumentException
- iflocalName
is not an attribute of the specified element or it does not contain a specific valueNullPointerException
- ifelement
orlocalName
isnull
- 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 thisDOMCryptoContext
. Attempts to modify the set via theIterator.remove()
method throw anUnsupportedOperationException
. The mappings are returned in no particular order. Each element in the iteration is represented as aMap.Entry
. If theDOMCryptoContext
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 internalHashMap
to get the object that the specified key maps to.- Specified by:
get
in interfaceXMLCryptoContext
- 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 internalHashMap
to map the key to the specified object.- Specified by:
put
in interfaceXMLCryptoContext
- Parameters:
key
- key with which the specified value is to be associated withvalue
- 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)
-
-