package comp314.interfaces;
/**
*
* @author Daniel Buchanan
*
*/
public interface IPipelineModule {
/**
* Sets the module's input data.
* @param data Input data
*/
void setData(IData data);
/**
* Runs the module and returns its result.
* @return result
*/
IData run();
/**
* Set input data and run module.
*
* @param data Input data
* @return Output data
*/
IData run(IData data);
/**
* Sets the status reporter.
* @param reporter Status Reporter
*/
void setReporter(IReporter reporter);
/**
* Gets the input data.
* @return the input data
*/
IData getData();
/**
* Gets the result, after you have called run().
* @return the result
*/
IData getResult();
/**
* Sets module options.
* @param options Module Options
*/
void setOptions(IData options);
}