Package org.teiid.query.sql.visitor
Class AbstractSymbolMappingVisitor
- java.lang.Object
-
- org.teiid.query.sql.LanguageVisitor
-
- org.teiid.query.sql.visitor.ExpressionMappingVisitor
-
- org.teiid.query.sql.visitor.AbstractSymbolMappingVisitor
-
- Direct Known Subclasses:
StaticSymbolMappingVisitor
public abstract class AbstractSymbolMappingVisitor extends ExpressionMappingVisitor
This class is used to update LanguageObjects by replacing one set of symbols with another. There is one abstract method which must be overridden to define how the mapping lookup occurs.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractSymbolMappingVisitor()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract Symbol
getMappedSymbol(Symbol symbol)
Get the mapped symbol from the specified symbol.List
getUnmappedSymbols()
Get all symbols that were not mapped during life of visitor.Expression
replaceExpression(Expression element)
void
visit(Delete obj)
This method updates theDelete
object it receives as an argument by replacing the virtual groups/elements with their physical counterparts.void
visit(Insert obj)
This method updates theInsert
object it receives as an argument by replacing the virtual groups/elements with their physical counterparts.void
visit(SetClause obj)
void
visit(StoredProcedure obj)
Swap name of stored proc and elements in stored procedure parameter expressionsvoid
visit(UnaryFromClause obj)
Swap group in unary from clause.void
visit(Update obj)
This method updates theUpdate
object it receives as an argument by replacing the virtual groups/elements with their physical counterparts.void
visit(MultipleElementSymbol obj)
Swap each ElementSymbol referenced by AllInGroupSymbol-
Methods inherited from class org.teiid.query.sql.visitor.ExpressionMappingVisitor
createAliases, getVariableValues, isClone, mapExpressions, mapExpressions, setClone, setVariableValues, 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 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
-
-
-
-
Method Detail
-
getMappedSymbol
protected abstract Symbol getMappedSymbol(Symbol symbol)
Get the mapped symbol from the specified symbol. Subclasses should implement this method to look up the target symbol from the specified symbol.- Parameters:
symbol
- Source symbol- Returns:
- Target symbol
-
visit
public void visit(Insert obj)
This method updates the
Insert
object it receives as an argument by replacing the virtual groups/elements with their physical counterparts.- Overrides:
visit
in classExpressionMappingVisitor
- Parameters:
obj
- The Insert object to be updated with physical groups/elements- See Also:
LanguageVisitor.visit(org.teiid.query.sql.lang.Insert)
-
visit
public void visit(Delete obj)
This method updates the
Delete
object it receives as an argument by replacing the virtual groups/elements with their physical counterparts.- Overrides:
visit
in classLanguageVisitor
- Parameters:
obj
- The Delete object to be updated with physical groups
-
visit
public void visit(Update obj)
This method updates the
Update
object it receives as an argument by replacing the virtual groups/elements with their physical counterparts.- Overrides:
visit
in classLanguageVisitor
- Parameters:
obj
- The Update object to be updated with physical groups
-
visit
public void visit(SetClause obj)
- Overrides:
visit
in classExpressionMappingVisitor
-
visit
public void visit(MultipleElementSymbol obj)
Swap each ElementSymbol referenced by AllInGroupSymbol- Overrides:
visit
in classLanguageVisitor
- Parameters:
obj
- Object to remap
-
visit
public void visit(UnaryFromClause obj)
Swap group in unary from clause.- Overrides:
visit
in classLanguageVisitor
- Parameters:
obj
- Object to remap
-
visit
public void visit(StoredProcedure obj)
Swap name of stored proc and elements in stored procedure parameter expressions- Overrides:
visit
in classExpressionMappingVisitor
- Parameters:
obj
- Object to remap
-
replaceExpression
public Expression replaceExpression(Expression element)
- Overrides:
replaceExpression
in classExpressionMappingVisitor
- See Also:
ExpressionMappingVisitor.replaceExpression(org.teiid.query.sql.symbol.Expression)
-
getUnmappedSymbols
public List getUnmappedSymbols()
Get all symbols that were not mapped during life of visitor. If all symbols were mapped, this will return null.- Returns:
- List of ElementSymbol and GroupSymbol that were unmapped OR null if all symbols mapped successfully
-
-