public class StandardFunctionFactory extends BaseFunctionFactory
Note that because this supports only the standard functions, this
factory does not allow the addition of any other functions. If you call
addFunction
on an instance of this class, an exception
will be thrown. If you need a standard factory that is modifiable,
you can either create a new BaseFunctionFactory
(or some
other implementation of FunctionFactory
) populated with
the standard functions from getStandardFunctions
or
you can use getNewFactoryProxy
to get a proxy containing
a new, modifiable set of factories.
Modifier and Type | Method and Description |
---|---|
void |
addAbstractFunction(FunctionProxy proxy,
URI identity)
Always throws an exception, since support for new functions may not be
added to a standard factory.
|
void |
addFunction(Function function)
Always throws an exception, since support for new functions may not be
added to a standard factory.
|
static StandardFunctionFactory |
getConditionFactory()
Returns a FuntionFactory that will only provide those functions that
are usable in the root of the Condition.
|
static StandardFunctionFactory |
getGeneralFactory()
Returns a FunctionFactory that provides access to all the functions.
|
static FunctionFactoryProxy |
getNewFactoryProxy()
A convenience method that returns a proxy containing newly created
instances of
BaseFunctionFactory s that are correctly
supersetted and contain the standard functions and abstract functions. |
static Map |
getStandardAbstractFunctions(String xacmlVersion)
Returns the set of abstract functions that this standard factory
supports as a mapping of identifier to proxy.
|
static Set |
getStandardFunctions(String xacmlVersion)
Returns the identifiers supported for the given version of XACML.
|
static StandardFunctionFactory |
getTargetFactory()
Returns a FunctionFactory that will only provide those functions that
are usable in Target matching.
|
createAbstractFunction, createAbstractFunction, createAbstractFunction, createAbstractFunction, createFunction, createFunction, getSupportedFunctions
addAbstractConditionFunction, addAbstractGeneralFunction, addAbstractTargetFunction, addConditionFunction, addGeneralFunction, addTargetFunction, getConditionInstance, getConditionInstance, getGeneralInstance, getGeneralInstance, getInstance, getInstance, getTargetInstance, getTargetInstance, registerFactory, setDefaultFactory
public static StandardFunctionFactory getTargetFactory()
FunctionFactory
, ensuring quick
access to this factory.FunctionFactory
for target functionspublic static StandardFunctionFactory getConditionFactory()
FunctionFactory
, ensuring quick
access to this factory.FunctionFactory
for condition functionspublic static StandardFunctionFactory getGeneralFactory()
FunctionFactory
,
ensuring quick access to this factory.FunctionFactory
for all functionspublic static Set getStandardFunctions(String xacmlVersion)
xacmlVersion
- a standard XACML identifier string, as provided
in PolicyMetaData
Set
of identifiersUnknownIdentifierException
- if the version string is unknownpublic static Map getStandardAbstractFunctions(String xacmlVersion)
Map
mapping URI
s to
FunctionProxy
spublic static FunctionFactoryProxy getNewFactoryProxy()
BaseFunctionFactory
s that are correctly
supersetted and contain the standard functions and abstract functions.
These factories allow adding support for new functions.public void addFunction(Function function) throws IllegalArgumentException
addFunction
in class BaseFunctionFactory
function
- the Function
to add to the factoryUnsupportedOperationException
- alwaysIllegalArgumentException
- if the function's identifier is already
used or if the function is non-boolean
(when this is a Target or Condition
factory)public void addAbstractFunction(FunctionProxy proxy, URI identity) throws IllegalArgumentException
addAbstractFunction
in class BaseFunctionFactory
proxy
- the FunctionProxy
to add to the factoryidentity
- the function's identifierUnsupportedOperationException
- alwaysIllegalArgumentException
- if the function's identifier is already
usedCopyright © 2023 JBoss by Red Hat. All rights reserved.