/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
*/
/*
* $Id: XMLCryptoContext.java,v 1.6 2005/05/10 15:47:42 mullan Exp $
*/
package javax.xml.crypto;
/**
* Contains common context information for XML cryptographic operations.
*
* <p>This interface contains methods for setting and retrieving properties
* that affect the processing of XML signatures or XML encrypted structures.
*
* <p>Note that <code>XMLCryptoContext</code> instances can contain information
* and state specific to the XML cryptographic structure it is used with.
* The results are unpredictable if an <code>XMLCryptoContext</code> is
* used with multiple structures (for example, you should not use the same
* {@link javax.xml.crypto.dsig.XMLValidateContext} instance to validate two
* different {@link javax.xml.crypto.dsig.XMLSignature} objects).
*
* @author Sean Mullan
* @author JSR 105 Expert Group
* @since 1.6
*/
public interface XMLCryptoContext {
/**
* Returns the base URI.
*
* @return the base URI, or <code>null</code> if not specified
* @see #setBaseURI(String)
*/
String getBaseURI();
/**
* Sets the base URI.
*
* @param baseURI the base URI, or <code>null</code> to remove current
* value
* @throws IllegalArgumentException if <code>baseURI</code> is not RFC
* 2396 compliant
* @see #getBaseURI
*/
void setBaseURI(String baseURI);
/**
* Returns the key selector for finding a key.
*
* @return the key selector, or <code>null</code> if not specified
* @see #setKeySelector(KeySelector)
*/
KeySelector getKeySelector();
/**
* Sets the key selector for finding a key.
*
* @param ks the key selector, or <code>null</code> to remove the current
* setting
* @see #getKeySelector
*/
void setKeySelector(KeySelector ks);
/**
* Returns a <code>URIDereferencer</code> that is used to dereference
* {@link URIReference}s.
*
* @return the <code>URIDereferencer</code>, or <code>null</code> if not
* specified
* @see #setURIDereferencer(URIDereferencer)
*/
URIDereferencer getURIDereferencer();
/**
* Sets a <code>URIDereferencer</code> that is used to dereference
* {@link URIReference}s. The specified <code>URIDereferencer</code>
* is used in place of an implementation's default
* <code>URIDereferencer</code>.
*
* @param dereferencer the <code>URIDereferencer</code>, or
* <code>null</code> to remove any current setting
* @see #getURIDereferencer
*/
void setURIDereferencer(URIDereferencer dereferencer);
/**
* 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 {@link #putNamespacePrefix putNamespacePrefix}
* method.
*
* @param namespaceURI a namespace URI
* @param defaultPrefix the prefix to be returned in the event that the
* the specified namespace URI has not been bound to a prefix.
* @return the prefix that is associated with the specified namespace URI,
* or <code>defaultPrefix</code> if the URI is not registered. If
* the namespace URI is registered but has no prefix, an empty string
* (<code>""</code>) is returned.
* @throws NullPointerException if <code>namespaceURI</code> is
=1= |