package org.marketcetera.strategy;
import org.marketcetera.core.ClassVersion;
/* $License$ */
/**
* Executes a strategy script.
*
* @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a>
* @version $Id: ExecutionEngine.java 16154 2012-07-14 16:34:05Z colin $
* @since 1.0.0
*/
@ClassVersion("$Id: ExecutionEngine.java 16154 2012-07-14 16:34:05Z colin $")
interface ExecutionEngine
{
/**
* Prepares the <code>ExecutionEngine</code> to execute the given <code>Strategy</code>.
*
* @param inStrategy a <code>Strategy</code> value
* @param inProcessedScript a <code>String</code> value containing the actual text of the strategy to execute
* @throws StrategyException if an error occurs
*/
void prepare(Strategy inStrategy,
String inProcessedScript)
throws StrategyException;
/**
* Starts the execution of the {@link Strategy}.
*
* @return an <code>Object</code> containing a reference to the {@link Strategy} being executed
* @throws StrategyException if an error occurs
*/
Object start()
throws StrategyException;
/**
* Stops the execution of the {@link Strategy}.
*
* @throws StrategyException if an error occurs
*/
void stop()
throws StrategyException;
}