RETURN_T
- function return typepublic abstract static class BaseFirstOrderFunctionCall.EagerEval<RETURN_T extends Value> extends BaseFirstOrderFunctionCall<RETURN_T>
FirstOrderFunction
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.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>
Modifier and Type | Field and Description |
---|---|
protected List<Expression<?>> |
argExpressions |
protected String |
functionId |
protected String |
indeterminateArgMessage |
protected int |
numOfSameTypePrimitiveParamsBeforeBag |
protected int |
totalArgCount |
Modifier | Constructor and Description |
---|---|
protected |
EagerEval(FirstOrderFunctionSignature<RETURN_T> functionSignature,
List<Expression<?>> args,
Datatype<?>... remainingArgTypes)
Instantiates Function FirstOrderFunctionCall
|
evaluate, evaluate, getReturnType
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
evaluate
protected final List<Expression<?>> argExpressions
protected final String indeterminateArgMessage
protected final int totalArgCount
protected final int numOfSameTypePrimitiveParamsBeforeBag
protected final String functionId
protected EagerEval(FirstOrderFunctionSignature<RETURN_T> functionSignature, List<Expression<?>> args, Datatype<?>... remainingArgTypes) throws IllegalArgumentException
functionSignature
- function signatureargs
- arguments' ExpressionsremainingArgTypes
- types of arguments following args
, and of which the actual Expression is unknown at this point, but will be known and passed at evaluation time as
remainingArgs
parameter to BaseFirstOrderFunctionCall.evaluate(EvaluationContext, boolean, AttributeValue...)
, then FirstOrderFunctionCall.evaluate(EvaluationContext, AttributeValue...)
.IllegalArgumentException
- if one of remainingArgTypes
is a bag type.Copyright © 2012–2020. All rights reserved.