package eu.europeana.cloud.service.dps;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.HashMap;
import java.util.Map;
@XmlRootElement()
public class DpsTask implements Serializable {
/* Dataset Key */
public static final String DATASET_URLS = "DATASET_URLS";
/* File URL Key */
public static final String FILE_URLS = "FILE_URLS";
/* List of input data (cloud-records or cloud-datasets) */
private Map<String, List<String>> inputData;
/* List of parameters (specific for each dps-topology) */
private Map<String, String> parameters;
/* Task start time */
private Date startTime = null;
/* Task create time */
private Date createTime = new Date(System.currentTimeMillis());
/* Task end time*/
private Date endTime = null;
/* Unique id for this task */
private long taskId;
/* Name for the task */
private String taskName;
public DpsTask() {
this("");
}
/**
* @param taskName
*/
public DpsTask(String taskName) {
this.taskName = taskName;
inputData = new HashMap();
parameters = new HashMap();
taskId = UUID.randomUUID().getMostSignificantBits();
}
/**
* @return Unique id for this task
*/
public long getTaskId() {
return taskId;
}
public void setTaskName(String taskName) {
this.taskName = taskName;
}
/**
* @return Name for the task
*/
public String getTaskName() {
return taskName;
}
public void addDataEntry(String dataType, List<String> data) {
inputData.put(dataType, data);
}
public List<String> getDataEntry(String dataType) {
return inputData.get(dataType);
}
public void addParameter(String parameterKey, String parameterValue) {
parameters.put(parameterKey, parameterValue);
}
public String getParameter(String parameterKey) {
return parameters.get(parameterKey);
}
/**
* @return List of parameters (specific for each dps-topology)
*/
public Map<String, String> getParameters() {
return parameters;
}
public void setParameters(Map<String, String> parameters) {
this.parameters = parameters;
}
/**
* @return List of input data (cloud-records or cloud-datasets)
*/
public Map<String, List<String>> getInputData() {
return inputData;
}
public void setInputData(Map<String, List<String>> inputData) {
this.inputData = inputData;
}
}