package eu.dnetlib.dlms.jdbc.ast;

import java.sql.SQLException;

import eu.dnetlib.dlms.jdbc.ExecutorContext;
import eu.dnetlib.dlms.jdbc.server.IStatementExecutor;

/**
 * 
 * Wraps an expression as a statement. Does nothing, the expression itself does.
 * 
 * @author alessia
 * 
 */
public class RunExpr extends Statement {

	/** List of nodes that compose this RunExpr. */
	private Expression expression;

	/**
	 * {@inheritDoc}
	 * 
	 * @see eu.dnetlib.dlms.jdbc.ast.Statement#execute(eu.dnetlib.dlms.jdbc.server.IStatementExecutor)
	 */
	@Override
	public Object execute(final IStatementExecutor executor, final ExecutorContext context) throws SQLException {
		return executor.execute(this, context);
	}

	/**
	 * Constructor.
	 * 
	 * @param e
	 *            Expression instance
	 */
	public RunExpr(final Expression e) {
		this.expression = e;
	}

	public Expression getExpression() {
		return this.expression;
	}

	public void setExpression(final Expression expression) {
		this.expression = expression;
	}

	@Override
	public String toString() {
		return "RunExpr [expression=" + this.expression + "]";
	}

}
