SunTM's XACML Implementation for JavaTM

com.sun.xacml.combine
Class BaseCombiningAlgFactory

java.lang.Object
  extended bycom.sun.xacml.combine.CombiningAlgFactory
      extended bycom.sun.xacml.combine.BaseCombiningAlgFactory
Direct Known Subclasses:
StandardCombiningAlgFactory

public class BaseCombiningAlgFactory
extends CombiningAlgFactory

This is a basic implementation of CombiningAlgFactory. It implements the insertion and retrieval methods, but doesn't actually setup the factory with any algorithms.

Note that while this class is thread-safe on all creation methods, it is not safe to add support for a new algorithm while creating an instance of an algorithm. This follows from the assumption that most people will initialize these factories up-front, and then start processing without ever modifying the factories. If you need these mutual operations to be thread-safe, then you should write a wrapper class that implements the right synchronization.

Since:
1.2

Constructor Summary
BaseCombiningAlgFactory()
          Default constructor.
BaseCombiningAlgFactory(Set algorithms)
          Constructor that configures this factory with an initial set of supported algorithms.
 
Method Summary
 void addAlgorithm(CombiningAlgorithm alg)
          Adds a combining algorithm to the factory.
 CombiningAlgorithm createAlgorithm(URI algId)
          Tries to return the correct combinging algorithm based on the given algorithm ID.
 Set getSupportedAlgorithms()
          Returns the algorithm identifiers supported by this factory.
 
Methods inherited from class com.sun.xacml.combine.CombiningAlgFactory
addCombiningAlg, createCombiningAlg, getInstance, setDefaultFactory
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BaseCombiningAlgFactory

public BaseCombiningAlgFactory()
Default constructor.


BaseCombiningAlgFactory

public BaseCombiningAlgFactory(Set algorithms)
Constructor that configures this factory with an initial set of supported algorithms.

Parameters:
algorithms - a Set of CombiningAlgorithms
Throws:
IllegalArgumentException - if any elements of the set are not CombiningAlgorithms
Method Detail

addAlgorithm

public void addAlgorithm(CombiningAlgorithm alg)
Adds a combining algorithm to the factory. This single instance will be returned to anyone who asks the factory for an algorithm with the id given here.

Specified by:
addAlgorithm in class CombiningAlgFactory
Parameters:
alg - the combining algorithm to add
Throws:
IllegalArgumentException - if the algId is already registered

getSupportedAlgorithms

public Set getSupportedAlgorithms()
Returns the algorithm identifiers supported by this factory.

Specified by:
getSupportedAlgorithms in class CombiningAlgFactory
Returns:
a Set of Strings

createAlgorithm

public CombiningAlgorithm createAlgorithm(URI algId)
                                   throws UnknownIdentifierException
Tries to return the correct combinging algorithm based on the given algorithm ID.

Specified by:
createAlgorithm in class CombiningAlgFactory
Parameters:
algId - the identifier by which the algorithm is known
Returns:
a combining algorithm
Throws:
UnknownIdentifierException - algId is unknown

Sun's XACML Implementation Version 1.2

Copyright 2003-2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.

Sun, Sun Microsystems, the Sun Logo, and Java are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.