Class BaseFirstOrderFunctionCall.EagerEval<RETURN_T extends Value>
- java.lang.Object
-
- org.ow2.authzforce.core.pdp.api.func.BaseFirstOrderFunctionCall<RETURN_T>
-
- org.ow2.authzforce.core.pdp.api.func.BaseFirstOrderFunctionCall.EagerEval<RETURN_T>
-
- Type Parameters:
RETURN_T
- function return type
- All Implemented Interfaces:
FirstOrderFunctionCall<RETURN_T>
,FunctionCall<RETURN_T>
- Direct Known Subclasses:
BaseFirstOrderFunctionCall.EagerBagEval
,BaseFirstOrderFunctionCall.EagerMultiPrimitiveTypeEval
,BaseFirstOrderFunctionCall.EagerPartlyBagEval
,BaseFirstOrderFunctionCall.EagerSinglePrimitiveTypeEval
- Enclosing class:
- BaseFirstOrderFunctionCall<RETURN extends Value>
public abstract static class BaseFirstOrderFunctionCall.EagerEval<RETURN_T extends Value> extends BaseFirstOrderFunctionCall<RETURN_T>
Function call, forFirstOrderFunction
s requiring eager (aka greedy) evaluation of ALL their arguments' expressions to actual values, before the function can be evaluated. This is the case of most functions in XACML. Exceptions (functions not using eager evaluation) are logical functions for instance, such as 'or', 'and', 'n-of'. Indeed, these functions can return the final result before all arguments have been evaluated, e.g. the 'or' function returns True as soon as one of the arguments return True, regardless of the remaining arguments.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.ow2.authzforce.core.pdp.api.func.BaseFirstOrderFunctionCall
BaseFirstOrderFunctionCall.EagerBagEval<RETURN_T extends Value,PARAM_BAG_ELEMENT_T extends AttributeValue>, BaseFirstOrderFunctionCall.EagerEval<RETURN_T extends Value>, BaseFirstOrderFunctionCall.EagerMultiPrimitiveTypeEval<RETURN_T extends Value>, BaseFirstOrderFunctionCall.EagerPartlyBagEval<RETURN_T extends Value,PRIMITIVE_PARAM_T extends AttributeValue>, BaseFirstOrderFunctionCall.EagerSinglePrimitiveTypeEval<RETURN_T extends Value,PARAM_T extends AttributeValue>
-
-
Field Summary
Fields Modifier and Type Field Description protected List<Expression<?>>
argExpressions
protected String
functionId
protected String
indeterminateArgMessage
protected int
numOfSameTypePrimitiveParamsBeforeBag
protected int
totalArgCount
-
Constructor Summary
Constructors Modifier Constructor Description protected
EagerEval(FirstOrderFunctionSignature<RETURN_T> functionSignature, List<Expression<?>> args, Datatype<?>... remainingArgTypes)
Instantiates Function FirstOrderFunctionCall
-
Method Summary
-
Methods inherited from class org.ow2.authzforce.core.pdp.api.func.BaseFirstOrderFunctionCall
evaluate, evaluate, getReturnType
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.ow2.authzforce.core.pdp.api.func.FirstOrderFunctionCall
evaluate
-
-
-
-
Field Detail
-
argExpressions
protected final List<Expression<?>> argExpressions
-
indeterminateArgMessage
protected final String indeterminateArgMessage
-
totalArgCount
protected final int totalArgCount
-
numOfSameTypePrimitiveParamsBeforeBag
protected final int numOfSameTypePrimitiveParamsBeforeBag
-
functionId
protected final String functionId
-
-
Constructor Detail
-
EagerEval
protected EagerEval(FirstOrderFunctionSignature<RETURN_T> functionSignature, List<Expression<?>> args, Datatype<?>... remainingArgTypes) throws IllegalArgumentException
Instantiates Function FirstOrderFunctionCall- Parameters:
functionSignature
- function signatureargs
- arguments' ExpressionsremainingArgTypes
- types of arguments followingargs
, and of which the actual Expression is unknown at this point, but will be known and passed at evaluation time asremainingArgs
parameter toBaseFirstOrderFunctionCall.evaluate(EvaluationContext, boolean, AttributeValue...)
, thenFirstOrderFunctionCall.evaluate(EvaluationContext, AttributeValue...)
.- Throws:
IllegalArgumentException
- if one ofremainingArgTypes
is a bag type.
-
-