/** * The object is modified in place, so is not returned. * @param obj Language object * @param exprMap Expression map, Expression to Expression */ public static void mapExpressions(LanguageObject obj, Map<? extends Expression, ? extends Expression> exprMap) { mapExpressions(obj, exprMap, false); }
private Expression replaceSymbol(Expression ses, boolean alias) { Expression expr = ses; String name = Symbol.getShortName(ses); if (ses instanceof ExpressionSymbol) { expr = ((ExpressionSymbol)ses).getExpression(); } Expression replacmentSymbol = replaceExpression(expr); if (!(replacmentSymbol instanceof Symbol)) { replacmentSymbol = new ExpressionSymbol(name, replacmentSymbol); } else if (alias && createAliases() && !Symbol.getShortName(replacmentSymbol).equals(name)) { replacmentSymbol = new AliasSymbol(name, replacmentSymbol); } return replacmentSymbol; }
public void visit(Select obj) { List<Expression> symbols = obj.getSymbols(); for (int i = 0; i < symbols.size(); i++) { Expression symbol = symbols.get(i); if (symbol instanceof MultipleElementSymbol) { continue; } Expression replacmentSymbol = replaceSymbol(symbol, true); symbols.set(i, replacmentSymbol); } }
public void visit(AggregateSymbol obj) { visit((Function)obj); if (obj.getCondition() != null) { obj.setCondition(replaceExpression(obj.getCondition())); } }
/** * @see org.teiid.query.sql.LanguageVisitor#visit(Function) */ public void visit(Function obj) { Expression[] args = obj.getArgs(); if(args != null && args.length > 0) { for(int i=0; i<args.length; i++) { args[i] = replaceExpression(args[i]); } } }
return; final ExpressionMappingVisitor visitor = new ExpressionMappingVisitor(exprMap); visitor.elementSymbolsOnly = true; boolean preOrder = true;
/** * Swap name of stored proc and elements in stored procedure parameter expressions * @param obj Object to remap */ public void visit(StoredProcedure obj) { // Swap procedure name String execName = obj.getProcedureName(); GroupSymbol fakeGroup = new GroupSymbol(execName); Object procedureID = obj.getProcedureID(); if(procedureID != null) { fakeGroup.setMetadataID(procedureID); } GroupSymbol mappedGroup = getMappedGroup(fakeGroup); obj.setProcedureName(mappedGroup.getName()); super.visit(obj); }
@Override public void visit(Array array) { List<Expression> exprs = array.getExpressions(); for (int i = 0; i < exprs.size(); i++) { exprs.set(i, replaceExpression(exprs.get(i))); } }
public void visit(AggregateSymbol obj) { visit((Function)obj); if (obj.getCondition() != null) { obj.setCondition(replaceExpression(obj.getCondition())); } }
return; final ExpressionMappingVisitor visitor = new ExpressionMappingVisitor(exprMap); visitor.elementSymbolsOnly = true; boolean preOrder = true;
/** * Swap name of stored proc and elements in stored procedure parameter expressions * @param obj Object to remap */ public void visit(StoredProcedure obj) { // Swap procedure name String execName = obj.getProcedureName(); GroupSymbol fakeGroup = new GroupSymbol(execName); Object procedureID = obj.getProcedureID(); if(procedureID != null) { fakeGroup.setMetadataID(procedureID); } GroupSymbol mappedGroup = getMappedGroup(fakeGroup); obj.setProcedureName(mappedGroup.getName()); super.visit(obj); }
/** * The object is modified in place, so is not returned. * @param obj Language object * @param exprMap Expression map, Expression to Expression */ public static void mapExpressions(LanguageObject obj, Map<? extends Expression, ? extends Expression> exprMap) { mapExpressions(obj, exprMap, false); }
/** * Swap each ElementSymbol in GroupBy (other symbols are ignored). * @param obj Object to remap */ public void visit(GroupBy obj) { List<Expression> symbols = obj.getSymbols(); for (int i = 0; i < symbols.size(); i++) { Expression symbol = symbols.get(i); symbols.set(i, replaceExpression(symbol)); } }
public void visit(AggregateSymbol obj) { visit((Function)obj); if (obj.getCondition() != null) { obj.setCondition(replaceExpression(obj.getCondition())); } }
private Expression replaceSymbol(Expression ses, boolean alias) { Expression expr = ses; String name = Symbol.getShortName(ses); if (ses instanceof ExpressionSymbol) { expr = ((ExpressionSymbol)ses).getExpression(); } Expression replacmentSymbol = replaceExpression(expr); if (!(replacmentSymbol instanceof Symbol)) { replacmentSymbol = new ExpressionSymbol(name, replacmentSymbol); } else if (alias && createAliases() && !Symbol.getShortName(replacmentSymbol).equals(name)) { replacmentSymbol = new AliasSymbol(name, replacmentSymbol); } return replacmentSymbol; }
return; final ExpressionMappingVisitor visitor = new ExpressionMappingVisitor(exprMap); visitor.elementSymbolsOnly = true; boolean preOrder = true;
public void visit(Select obj) { List<Expression> symbols = obj.getSymbols(); for (int i = 0; i < symbols.size(); i++) { Expression symbol = symbols.get(i); if (symbol instanceof MultipleElementSymbol) { continue; } Expression replacmentSymbol = replaceSymbol(symbol, true); symbols.set(i, replacmentSymbol); } }
/** * Swap name of stored proc and elements in stored procedure parameter expressions * @param obj Object to remap */ public void visit(StoredProcedure obj) { // Swap procedure name String execName = obj.getProcedureName(); GroupSymbol fakeGroup = new GroupSymbol(execName); Object procedureID = obj.getProcedureID(); if(procedureID != null) { fakeGroup.setMetadataID(procedureID); } GroupSymbol mappedGroup = getMappedGroup(fakeGroup); obj.setProcedureName(mappedGroup.getName()); super.visit(obj); }
/** * The object is modified in place, so is not returned. * @param obj Language object * @param exprMap Expression map, Expression to Expression */ public static void mapExpressions(LanguageObject obj, Map<? extends Expression, ? extends Expression> exprMap) { mapExpressions(obj, exprMap, false); }
@Override public void visit(WindowSpecification windowSpecification) { if (windowSpecification.getPartition() == null) { return; } List<Expression> partition = windowSpecification.getPartition(); for (int i = 0; i < partition.size(); i++) { partition.set(i, replaceExpression(partition.get(i))); } }