public static class DepsFunction.LookupFunction<OUTPUT_TYPE extends QueryTarget,ENV_NODE_TYPE> extends Object implements QueryEnvironment.QueryFunction<OUTPUT_TYPE,ENV_NODE_TYPE>
Constructor and Description |
---|
LookupFunction() |
Modifier and Type | Method and Description |
---|---|
Set<OUTPUT_TYPE> |
eval(QueryEvaluator<ENV_NODE_TYPE> evaluator,
QueryEnvironment<ENV_NODE_TYPE> env,
com.google.common.collect.ImmutableList<QueryEnvironment.Argument<ENV_NODE_TYPE>> args)
Called when a user-defined function is to be evaluated.
|
com.google.common.collect.ImmutableList<QueryEnvironment.ArgumentType> |
getArgumentTypes()
The types of the arguments of the function.
|
int |
getMandatoryArguments()
The number of arguments that are required.
|
String |
getName()
Name of the function as it appears in the query language.
|
public String getName()
QueryEnvironment.QueryFunction
getName
in interface QueryEnvironment.QueryFunction<OUTPUT_TYPE extends QueryTarget,ENV_NODE_TYPE>
public int getMandatoryArguments()
QueryEnvironment.QueryFunction
This should be greater than or equal to zero and at smaller than or equal to the length of
the list returned by QueryEnvironment.QueryFunction.getArgumentTypes()
.
getMandatoryArguments
in interface QueryEnvironment.QueryFunction<OUTPUT_TYPE extends QueryTarget,ENV_NODE_TYPE>
public com.google.common.collect.ImmutableList<QueryEnvironment.ArgumentType> getArgumentTypes()
QueryEnvironment.QueryFunction
getArgumentTypes
in interface QueryEnvironment.QueryFunction<OUTPUT_TYPE extends QueryTarget,ENV_NODE_TYPE>
public Set<OUTPUT_TYPE> eval(QueryEvaluator<ENV_NODE_TYPE> evaluator, QueryEnvironment<ENV_NODE_TYPE> env, com.google.common.collect.ImmutableList<QueryEnvironment.Argument<ENV_NODE_TYPE>> args)
QueryEnvironment.QueryFunction
eval
in interface QueryEnvironment.QueryFunction<OUTPUT_TYPE extends QueryTarget,ENV_NODE_TYPE>
evaluator
- the evaluator for evaluating argument expressions.env
- the query environment this function is evaluated in.args
- the input arguments. These are type-checked against the specification returned by
QueryEnvironment.QueryFunction.getArgumentTypes()
and QueryEnvironment.QueryFunction.getMandatoryArguments()
Set
to
enable actual implementation to avoid making unnecessary copies, but resulting set is not
supposed to be mutated afterwards so implementation is ok to return ImmutableSet
.