}
}
private SingleElementSymbol replaceSymbol(SingleElementSymbol ses,
boolean alias) {
SingleElementSymbol replacmentSymbol = null;
Expression expr = ses;
if (ses instanceof ExpressionSymbol && !(ses instanceof AggregateSymbol)) {
expr = ((ExpressionSymbol)ses).getExpression();
}
Expression replacement = replaceExpression(expr);
if (replacement instanceof SingleElementSymbol) {
replacmentSymbol = (SingleElementSymbol)replacement;
} else {
replacmentSymbol = new ExpressionSymbol(ses.getShortName(), replacement);
}
if (alias && createAliases() && !replacmentSymbol.getShortCanonicalName().equals(ses.getShortCanonicalName())) {
replacmentSymbol = new AliasSymbol(ses.getShortName(), replacmentSymbol);
}
return replacmentSymbol;
}