public class RdepsFunction<T extends QueryTarget> extends Object implements QueryEnvironment.QueryFunction<T,T>
expr ::= RDEPS '(' expr ',' expr ')'
| RDEPS '(' expr ',' expr ',' WORD ')'
Constructor and Description |
---|
RdepsFunction() |
Modifier and Type | Method and Description |
---|---|
Set<T> |
eval(QueryEvaluator<T> evaluator,
QueryEnvironment<T> env,
com.google.common.collect.ImmutableList<QueryEnvironment.Argument<T>> args)
Evaluates to the reverse dependencies of the argument 'x' in the transitive closure of the set
'u'.
|
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<T extends QueryTarget,T extends QueryTarget>
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<T extends QueryTarget,T extends QueryTarget>
public com.google.common.collect.ImmutableList<QueryEnvironment.ArgumentType> getArgumentTypes()
QueryEnvironment.QueryFunction
getArgumentTypes
in interface QueryEnvironment.QueryFunction<T extends QueryTarget,T extends QueryTarget>
public Set<T> eval(QueryEvaluator<T> evaluator, QueryEnvironment<T> env, com.google.common.collect.ImmutableList<QueryEnvironment.Argument<T>> args) throws QueryException
eval
in interface QueryEnvironment.QueryFunction<T extends QueryTarget,T extends QueryTarget>
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
.QueryException