org.teiid.query.sql.visitor
Class FunctionCollectorVisitor

java.lang.Object
  extended by org.teiid.query.sql.LanguageVisitor
      extended by org.teiid.query.sql.visitor.FunctionCollectorVisitor

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 Summary
FunctionCollectorVisitor(java.util.Collection<Function> functions)
          Construct a new visitor with the specified collection, which should be non-null.
FunctionCollectorVisitor(java.util.Collection<Function> functions, java.lang.String functionName)
          Construct a new visitor with the specified collection, which should be non-null.
 
Method Summary
 java.util.Collection<Function> getFunctions()
          Get the elements collected by the visitor.
static java.util.Collection<Function> getFunctions(LanguageObject obj, boolean removeDuplicates)
          Helper to quickly get the elements from obj in a collection.
static java.util.Collection<Function> getFunctions(LanguageObject obj, boolean removeDuplicates, boolean deep)
           
static void getFunctions(LanguageObject obj, java.util.Collection<Function> functions)
          Helper to quickly get the elements from obj in the elements collection
static void getFunctions(LanguageObject obj, java.util.Collection<Function> functions, boolean deep)
          Helper to quickly get the elements from obj in the elements collection
static boolean isNonDeterministic(LanguageObject ex)
           
 void visit(Function obj)
          Visit a language object and collect symbols.
 
Methods inherited from class org.teiid.query.sql.LanguageVisitor
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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FunctionCollectorVisitor

public FunctionCollectorVisitor(java.util.Collection<Function> functions)
Construct a new visitor with the specified collection, which should be non-null.

Parameters:
elements - Collection to use for elements
Throws:
java.lang.IllegalArgumentException - If elements is null

FunctionCollectorVisitor

public FunctionCollectorVisitor(java.util.Collection<Function> functions,
                                java.lang.String functionName)
Construct a new visitor with the specified collection, which should be non-null.

Parameters:
elements - Collection to use for elements
Throws:
java.lang.IllegalArgumentException - If elements is null
Method Detail

getFunctions

public java.util.Collection<Function> getFunctions()
Get the elements collected by the visitor. This should best be called after the visitor has been run on the language object tree.

Returns:
Collection of ElementSymbol

visit

public void visit(Function obj)
Visit a language object and collect symbols. This method should NOT be called directly.

Overrides:
visit in class LanguageVisitor
Parameters:
obj - Language object

getFunctions

public static final void getFunctions(LanguageObject obj,
                                      java.util.Collection<Function> functions)
Helper to quickly get the elements from obj in the elements collection

Parameters:
obj - Language object
elements - Collection to collect elements in

getFunctions

public static final void getFunctions(LanguageObject obj,
                                      java.util.Collection<Function> functions,
                                      boolean deep)
Helper to quickly get the elements from obj in the elements collection

Parameters:
obj - Language object
elements - Collection to collect elements in

getFunctions

public static final java.util.Collection<Function> getFunctions(LanguageObject obj,
                                                                boolean removeDuplicates)
Helper to quickly get the elements from obj in a collection. The removeDuplicates flag affects whether duplicate elements will be filtered out.

Parameters:
obj - Language object
removeDuplicates - True to remove duplicates
Returns:
Collection of ElementSymbol

getFunctions

public static final java.util.Collection<Function> getFunctions(LanguageObject obj,
                                                                boolean removeDuplicates,
                                                                boolean deep)

isNonDeterministic

public static boolean isNonDeterministic(LanguageObject ex)


Copyright © 2011. All Rights Reserved.