package eu.dnetlib.dlms.jdbc.server;

import java.sql.SQLException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import eu.dnetlib.dlms.jdbc.ColumnInfo;
import eu.dnetlib.dlms.jdbc.DataResult;
import eu.dnetlib.dlms.jdbc.DorotyObjectEnum;

/**
 * AbstractDOLExecuter dummy implementation.
 * 
 * @author lexis
 */
public class DummyDOLExecuter extends AbstractDOLExecuter {

    /**
     * logger.
     */
    private static final Log log = LogFactory.getLog(DummyDOLExecuter.class);

    /**
     * No args constructor.
     */
    public DummyDOLExecuter() {
	super();
    }

    /**
     * {@inheritDoc}
     * 
     * @see eu.dnetlib.dlms.jdbc.server.AbstractDOLExecuter#execute(java.lang.String)
     */
    @Override
    protected void executeImpl(final eu.dnetlib.dlms.jdbc.ast.ASTNode theStm)
	    throws SQLException {
	log.debug("Executing :" + theStm);
	// TODO: execute the statement!
	/*
	 * let's put something in the dataRows! TODO: be careful putting
	 * elements in dataRows! The only statement that generates a result set
	 * is a dql query! but not every dql query!
	 */
	if (this.isResultSetExpected()) {
	    try {
		this.getDataRows().put(
			new DataResult(new String[] {
				theStm.toString() + " says: ", "hello",
				"world", "I want to create  ", "a fake ",
				" DataResult!" }));
		this.setColumns(new ColumnInfo[] { new ColumnInfo("colName",
			DorotyObjectEnum.std_string) });
	    } catch (InterruptedException e) {
		throw new SQLException(e);
	    }
	}
    }

}
