blob: e69035a686262c57861210790e93a0f82369347d [file] [log] [blame]
package edu.uci.ics.asterix.aql.expression;
import java.util.List;
import edu.uci.ics.asterix.aql.base.Expression;
import edu.uci.ics.asterix.aql.base.Statement;
import edu.uci.ics.asterix.aql.expression.visitor.IAqlExpressionVisitor;
import edu.uci.ics.asterix.aql.expression.visitor.IAqlVisitorWithVoidReturn;
import edu.uci.ics.asterix.common.exceptions.AsterixException;
import edu.uci.ics.asterix.om.functions.AsterixFunction;
public class FunctionDecl implements Statement {
private AsterixFunction ident;
private List<VarIdentifier> paramList;
private Expression funcBody;
public FunctionDecl() {
}
public FunctionDecl(AsterixFunction ident, List<VarIdentifier> paramList, Expression funcBody) {
this.ident = ident;
this.paramList = paramList;
this.funcBody = funcBody;
}
public AsterixFunction getIdent() {
return ident;
}
public void setIdent(AsterixFunction ident) {
this.ident = ident;
}
public List<VarIdentifier> getParamList() {
return paramList;
}
public void setParamList(List<VarIdentifier> paramList) {
this.paramList = paramList;
}
public Expression getFuncBody() {
return funcBody;
}
public void setFuncBody(Expression funcBody) {
this.funcBody = funcBody;
}
@Override
public Kind getKind() {
return Kind.FUNCTION_DECL;
}
@Override
public <T> void accept(IAqlVisitorWithVoidReturn<T> visitor, T arg) throws AsterixException {
visitor.visit(this, arg);
}
@Override
public <R, T> R accept(IAqlExpressionVisitor<R, T> visitor, T arg) throws AsterixException {
return visitor.visitFunctionDecl(this, arg);
}
}