package com.neverwinterdp.scribengin.dataflow; import java.util.HashMap; import java.util.Map; import com.fasterxml.jackson.annotation.JsonIgnore; import com.neverwinterdp.scribengin.storage.StreamDescriptor; public class DataflowTaskDescriptor { static public enum Status { INIT, PROCESSING, SUSPENDED, TERMINATED } private int id; private Status status = Status.INIT; private String scribe; private StreamDescriptor streamDescriptor; private Map<String, StreamDescriptor> sinkStreamDescriptors; private String storedPath; public int getId() { return id; } public void setId(int id) { this.id = id; } public Status getStatus() { return this.status; } public void setStatus(Status status) { this.status = status; } public String getScribe() { return scribe;} public void setScribe(String scribe) { this.scribe = scribe; } public StreamDescriptor getSourceStreamDescriptor() { return streamDescriptor; } public void setSourceStreamDescriptor(StreamDescriptor streamDescriptor) { this.streamDescriptor = streamDescriptor; } public void add(String name, StreamDescriptor sinkDescriptor) { if(sinkStreamDescriptors == null) { sinkStreamDescriptors = new HashMap<String, StreamDescriptor>() ; } sinkStreamDescriptors.put(name, sinkDescriptor); } public Map<String, StreamDescriptor> getSinkStreamDescriptors() { return sinkStreamDescriptors; } public void setSinkStreamDescriptors(Map<String, StreamDescriptor> sinkStreamDescriptors) { this.sinkStreamDescriptors = sinkStreamDescriptors; } @JsonIgnore public String getStoredPath() { return storedPath; } public void setStoredPath(String storedPath) { this.storedPath = storedPath; } public String storedName() { if(this.storedPath == null) { throw new RuntimeException("Stored path is not available") ; } int idx = storedPath.lastIndexOf("/") ; String storedName = storedPath.substring(idx + 1); return storedName; } }