/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package org.jevis.commons.dataprocessing;
import java.util.List;
import org.jevis.api.JEVisDataSource;
import org.jevis.api.JEVisObject;
import org.jevis.api.JEVisSample;
/**
*
* @author Florian Simon <florian.simon@envidatec.com>
*/
public interface Process {
/**
* Set the JEVisDatasource
*
* @param ds
*/
void setJEVisDataSource(JEVisDataSource ds);
/**
* Returns the JEVisDatasource
*
* @return
*/
JEVisDataSource getJEVisDataSource();
/**
* Set the ID of this Task. The ID should be Unique unter the parent task.
*
* @param id
*/
void setID(String id);
/**
* Retuns the ID of this Task. The ID should be Unique unter the parent
* task.
*
* @return
*/
String getID();
/**
* Returns an list of all Options for this task
*
* @return
*/
List<ProcessOption> getOptions();
/**
* Returns the processor type.
*
* @return
*/
ProcessFunction getFunction();
/**
* Set The processor used to this task
*
* @param processor
*/
void setFunction(ProcessFunction processor);
/**
* Set the options for this task
*
* @param options
*/
void setOptions(List<ProcessOption> options);
/**
* returns the result of this task
*
* @return
*/
List<JEVisSample> getResult();
void setSubProcesses(List<Process> processes);
List<Process> getSubProcesses();
public void setObject(JEVisObject object);
public JEVisObject getObject();
public void restResult();
public Process getParent();
/**
* Note will not set the child in the parent....
*
* @param parent
*/
public void setParent(Process parent);
// public Task setParent(Task parent);
}