package ql.ast.statement; import ql.ast.Expression; import ql.ast.QLType; import ql.ast.expression.Identifier; import ql.ast.expression.literal.StringLiteral; import ql.ast.visitor.StatementVisitor; public class ComputedQuestion extends Question { private final Expression expression; public ComputedQuestion(Identifier identifier, QLType type, StringLiteral text, Expression expression) { super(identifier, type, text); this.expression = expression; } public Expression getExpression() { return this.expression; } @Override public String toString() { StringBuilder sb = new StringBuilder("ComputedQuestion("); sb.append(getIdentifier().toString() + ", "); sb.append(getType().toString() + ", "); sb.append(getText().toString() + ", "); sb.append(getExpression().toString()); sb.append(")"); return sb.toString(); } @Override public <T> T accept(StatementVisitor<T> visitor) { return visitor.visit(this); } }