/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.query.sql.v9;
import org.teiid.query.parser.QueryParser;
import org.teiid.query.parser.TeiidNodeFactory.ASTNodes;
import org.teiid.query.sql.AbstractTestFactory;
import org.teiid.query.sql.proc.RaiseStatement;
import org.teiid.query.sql.symbol.AggregateSymbol;
import org.teiid.query.sql.symbol.Expression;
import org.teiid.query.sql.symbol.WindowFunction;
/**
*
*/
public class Test9Factory extends AbstractTestFactory {
/**
* @param parser
*/
public Test9Factory(QueryParser parser) {
super(parser);
}
@Override
public Expression wrapExpression(Expression expr, String... exprName) {
// Expression are no longer wrapped in ExpressionSymbols. Purely a version 7 concept
return expr;
}
@Override
public AggregateSymbol newAggregateSymbol(String name, boolean isDistinct, Expression expression) {
AggregateSymbol as = newNode(ASTNodes.AGGREGATE_SYMBOL);
as.setName(name);
as.setDistinct(isDistinct);
if (expression == null)
as.setArgs(null);
else
as.setArgs(new Expression[] {expression});
return as;
}
@Override
public WindowFunction newWindowFunction(String name) {
WindowFunction windowFunction = newNode(ASTNodes.WINDOW_FUNCTION);
// window function no longer uses name
return windowFunction;
}
@Override
public RaiseStatement newRaiseStatement(Expression expr) {
RaiseStatement raiseStatement = newNode(ASTNodes.RAISE_STATEMENT);
raiseStatement.setExpression(expr);
return raiseStatement;
}
}