com.metamatrix.query.sql.visitor
Class ExpressionSymbolCollector

java.lang.Object
  extended by com.metamatrix.query.sql.LanguageVisitor
      extended by com.metamatrix.query.sql.visitor.ExpressionSymbolCollector

public class ExpressionSymbolCollector
extends LanguageVisitor

This visitor class will traverse a language object tree and collect all expression element symbol references it finds. It uses a collection to collect the symbols 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 return the collection. The public visit() methods should NOT be called directly.


Constructor Summary
ExpressionSymbolCollector(java.util.Collection elements)
          Construct a new visitor with the specified collection, which should be non-null.
 
Method Summary
 java.util.Collection getSymbols()
          Get the elements collected by the visitor.
static void getSymbols(LanguageObject obj, java.util.Collection elements)
          Helper to quickly get the elements from obj in the elements collection
 void visit(AggregateSymbol obj)
          Visit a language object and collect symbols.
 void visit(ExpressionSymbol obj)
          Visit a language object and collect symbols.
 
Methods inherited from class com.metamatrix.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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExpressionSymbolCollector

public ExpressionSymbolCollector(java.util.Collection elements)
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

getSymbols

public java.util.Collection getSymbols()
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(ExpressionSymbol obj)
Visit a language object and collect symbols. This method should NOT be called directly.

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

visit

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

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

getSymbols

public static final void getSymbols(LanguageObject obj,
                                    java.util.Collection elements)
Helper to quickly get the elements from obj in the elements collection

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


Copyright © 2009. All Rights Reserved.