public class GroupCollectorVisitor extends LanguageVisitor
This visitor class will traverse a language object tree and collect all group symbol references it finds. It uses a collection to collect the groups in so different collections will give you different collection properties - for instance, using a Set will remove duplicates.
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 get the collection. The public visit() methods should NOT be called directly.
Constructor and Description |
---|
GroupCollectorVisitor(Collection<GroupSymbol> groups)
Construct a new visitor with the specified collection, which should
be non-null.
|
Modifier and Type | Method and Description |
---|---|
Collection<GroupSymbol> |
getGroups()
Get the groups collected by the visitor.
|
static Collection<GroupSymbol> |
getGroups(LanguageObject obj,
boolean removeDuplicates)
Helper to quickly get the groups from obj in a collection.
|
static void |
getGroups(LanguageObject obj,
Collection<GroupSymbol> groups)
Helper to quickly get the groups from obj in the groups collection
|
static Collection<GroupSymbol> |
getGroupsIgnoreInlineViews(LanguageObject obj,
boolean removeDuplicates)
Helper to quickly get the groups from obj in a collection.
|
static void |
getGroupsIgnoreInlineViewsAndEvaluatableSubqueries(LanguageObject obj,
Collection<GroupSymbol> groups)
Helper to quickly get the groups from obj in the groups collection
|
Collection<GroupSymbol> |
getInlineViewGroups() |
void |
setIgnoreInlineViewGroups(boolean ignoreInlineViewGroups) |
void |
visit(GroupSymbol obj)
Visit a language object and collect symbols.
|
void |
visit(Into obj) |
void |
visit(StoredProcedure obj)
Visit a language object and collect symbols.
|
void |
visit(SubqueryFromClause obj) |
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
public GroupCollectorVisitor(Collection<GroupSymbol> groups)
groups
- Collection to use for groupsIllegalArgumentException
- If groups is nullpublic Collection<GroupSymbol> getGroups()
GroupSymbol
public Collection<GroupSymbol> getInlineViewGroups()
public void setIgnoreInlineViewGroups(boolean ignoreInlineViewGroups)
public void visit(GroupSymbol obj)
visit
in class LanguageVisitor
obj
- Language objectpublic void visit(StoredProcedure obj)
visit
in class LanguageVisitor
obj
- Language objectpublic void visit(Into obj)
visit
in class LanguageVisitor
public void visit(SubqueryFromClause obj)
visit
in class LanguageVisitor
public static void getGroups(LanguageObject obj, Collection<GroupSymbol> groups)
obj
- Language objectgroups
- Collection to collect groups inpublic static Collection<GroupSymbol> getGroups(LanguageObject obj, boolean removeDuplicates)
obj
- Language objectremoveDuplicates
- True to remove duplicatesGroupSymbol
public static void getGroupsIgnoreInlineViewsAndEvaluatableSubqueries(LanguageObject obj, Collection<GroupSymbol> groups)
obj
- Language objectgroups
- Collection to collect groups inpublic static Collection<GroupSymbol> getGroupsIgnoreInlineViews(LanguageObject obj, boolean removeDuplicates)
obj
- Language objectremoveDuplicates
- True to remove duplicatesGroupSymbol
Copyright © 2019. All rights reserved.