RETURN_T
- function return typePRIMITIVE_PARAM_T
- primitive values' supertype, i.e. bag element type for bag parameter and the parameter datatype for primitive parameters. If argument expressions return different datatypes, the
supertype of all - AttributeValue
- may be specified.public abstract static class BaseFirstOrderFunctionCall.EagerPartlyBagEval<RETURN_T extends Value,PRIMITIVE_PARAM_T extends AttributeValue> extends BaseFirstOrderFunctionCall.EagerEval<RETURN_T>
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>
argExpressions, functionId, indeterminateArgMessage, numOfSameTypePrimitiveParamsBeforeBag, totalArgCount
Modifier | Constructor and Description |
---|---|
protected |
EagerPartlyBagEval(FirstOrderFunctionSignature<RETURN_T> functionSig,
BagDatatype<PRIMITIVE_PARAM_T> bagParamType,
Class<PRIMITIVE_PARAM_T[]> primitiveArrayClass,
List<Expression<?>> args,
Datatype<?>[] remainingArgTypes) |
Modifier and Type | Method and Description |
---|---|
protected abstract RETURN_T |
evaluate(Deque<PRIMITIVE_PARAM_T> primArgsBeforeBag,
Bag<PRIMITIVE_PARAM_T>[] bagArgs,
PRIMITIVE_PARAM_T[] remainingArgs)
Make the call with attribute values as arguments.
|
RETURN_T |
evaluate(EvaluationContext context,
AttributeValue... remainingArgs)
Make the call in a given evaluation context and argument values resolved at evaluation time.
|
evaluate, evaluate, getReturnType
protected EagerPartlyBagEval(FirstOrderFunctionSignature<RETURN_T> functionSig, BagDatatype<PRIMITIVE_PARAM_T> bagParamType, Class<PRIMITIVE_PARAM_T[]> primitiveArrayClass, List<Expression<?>> args, Datatype<?>[] remainingArgTypes) throws IllegalArgumentException
IllegalArgumentException
protected abstract RETURN_T evaluate(Deque<PRIMITIVE_PARAM_T> primArgsBeforeBag, Bag<PRIMITIVE_PARAM_T>[] bagArgs, PRIMITIVE_PARAM_T[] remainingArgs) throws IndeterminateEvaluationException
IndeterminateEvaluationException
- if any error evaluating the functionpublic final RETURN_T evaluate(EvaluationContext context, AttributeValue... remainingArgs) throws IndeterminateEvaluationException
FirstOrderFunctionCall
FirstOrderFunctionCall.evaluate(EvaluationContext, boolean, AttributeValue...)
after
checking evaluation-time args.context
- evaluation contextremainingArgs
- remaining args (not yet known at initialization time). Null if none. Only non-bag/primitive values are valid remainingArgs
to prevent varargs warning in
FirstOrderFunctionCall.evaluate(EvaluationContext, AttributeValue...)
(potential heap pollution via varargs parameter) that would be caused by using a parameterized type such as Value/Collection
to represent both bags and primitives.IndeterminateEvaluationException
- if any error evaluating the functionCopyright © 2012–2020. All rights reserved.