public class FunctionCollectorVisitor extends LanguageVisitor
This visitor class will traverse a language object tree and collect all Function references it finds. It uses a collection to collect the Functions in so different collections will give you different collection properties - for instance, using a Set will remove duplicates.
This visitor can optionally collect functions of only a specific name
The easiest way to use this visitor is to call the static methods which create the visitor (and possibly the collection), run the visitor, and return the collection. The public visit() methods should NOT be called directly.
Constructor and Description |
---|
FunctionCollectorVisitor(Collection<Function> functions)
Construct a new visitor with the specified collection, which should
be non-null.
|
FunctionCollectorVisitor(Collection<Function> functions,
String functionName)
Construct a new visitor with the specified collection, which should
be non-null.
|
Modifier and Type | Method and Description |
---|---|
Collection<Function> |
getFunctions()
Get the elements collected by the visitor.
|
static Collection<Function> |
getFunctions(LanguageObject obj,
boolean removeDuplicates)
Helper to quickly get the elements from obj in a collection.
|
static Collection<Function> |
getFunctions(LanguageObject obj,
boolean removeDuplicates,
boolean deep) |
static void |
getFunctions(LanguageObject obj,
Collection<Function> functions)
Helper to quickly get the elements from obj in the elements collection
|
static void |
getFunctions(LanguageObject obj,
Collection<Function> functions,
boolean deep)
Helper to quickly get the elements from obj in the elements collection
|
static boolean |
isNonDeterministic(LanguageObject ex)
Checks to see if the object is non-deterministic
iff all function are non-deterministic, and all correlated subqueries are deterministic
|
void |
visit(Function obj)
Visit a language object and collect symbols.
|
setAbort, shouldAbort, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
public FunctionCollectorVisitor(Collection<Function> functions)
functions
- Collection to use for functionsIllegalArgumentException
- If elements is nullpublic FunctionCollectorVisitor(Collection<Function> functions, String functionName)
functions
- Collection to use for functionsIllegalArgumentException
- If elements is nullpublic Collection<Function> getFunctions()
ElementSymbol
public void visit(Function obj)
visit
in class LanguageVisitor
obj
- Language objectpublic static final void getFunctions(LanguageObject obj, Collection<Function> functions)
obj
- Language objectfunctions
- Collection to collect functions inpublic static final void getFunctions(LanguageObject obj, Collection<Function> functions, boolean deep)
obj
- Language objectfunctions
- Collection to collect functions inpublic static final Collection<Function> getFunctions(LanguageObject obj, boolean removeDuplicates)
obj
- Language objectremoveDuplicates
- True to remove duplicatesElementSymbol
public static final Collection<Function> getFunctions(LanguageObject obj, boolean removeDuplicates, boolean deep)
public static boolean isNonDeterministic(LanguageObject ex)
ex
- Copyright © 2019. All rights reserved.