package scs.demos.mapreduce.servant;
import java.util.Properties;
import java.io.FileInputStream;
import java.io.IOException;
import org.omg.PortableServer.POA;
import scs.demos.mapreduce.Reporter;
import scs.demos.mapreduce.FileSplit;
import scs.demos.mapreduce.IOMapReduceException;
import scs.demos.mapreduce.TaskStatus;
import scs.demos.mapreduce.Task;
/**
* Classe abstrata que representa uma tarefa map ou reduce
* @author Sand Luz Correa
*/
public abstract class MapReduceTask {
protected FileSplit[] inputSplit = null;
protected FileSplit[] outputSplit = null;
protected TaskStatus status = null;
protected int id = 0;
protected Properties conf = null;
protected Reporter reporter = null;
protected String configFileName = null;
protected POA poa = null;
protected Task task = null;
public MapReduceTask(String configFileName, POA poa, Task task, Reporter reporter) throws IOException {
try {
this.conf = new Properties();
this.conf.load(new FileInputStream(configFileName));
this.reporter = reporter;
this.configFileName = configFileName;
this.poa = poa;
this.id = task.getId();
this.status = task.getStatus();
this.task = task;
} catch (IOException e) {
throw e;
}
}
public abstract void run() throws IOMapReduceException;
}