X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws2%2FWSJob.java;fp=src%2Fjalview%2Fws2%2FWSJob.java;h=0de6b22d42a4e8f1317241f44b3c2f085375f533;hb=8aa8957ae59e9171681ed89c8947dcfba847c1e4;hp=0000000000000000000000000000000000000000;hpb=8764cf9e079a8c7d72d920403ce4db71450183f1;p=jalview.git diff --git a/src/jalview/ws2/WSJob.java b/src/jalview/ws2/WSJob.java new file mode 100755 index 0000000..0de6b22 --- /dev/null +++ b/src/jalview/ws2/WSJob.java @@ -0,0 +1,195 @@ +package jalview.ws2; + +import java.io.Serializable; +import java.net.URI; +import java.util.Date; + +import jalview.util.MathUtils; + +import static java.lang.String.format; + +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; + +/** + * An id handler to the external job running on the server. This is the smallest + * job unit which might me a part of a larger multi-stage or parallel task + * handled by the WebServiceWorker. Jobs are created by the JalviewWebService on + * job submission and are used to identify that job during its lifetime. It can + * be serialized and used between application launches. + * + * @author mmwarowny + * + */ +public final class WSJob implements Serializable +{ + private static final long serialVersionUID = -4600214977954333787L; + + /* Client-side identifier */ + public final long uid = MathUtils.getUID(); + + private int jobNum = 0; + + /* Shortened server name e.g. "slivka" or "jabaws" */ + private String serviceProvider = ""; + + /* Name of the service e.g. "ClustalW2" */ + private String serviceName = ""; + + /* Server-side identifier */ + private String jobId = ""; + + private WSJobStatus status = WSJobStatus.UNKNOWN; + + private String log = ""; + + private String errorLog = ""; + + /* Base url of the server associated with the job */ + private String hostName = ""; + + private Date creationTime = new Date(); + + public PropertyChangeSupport pcs = new PropertyChangeSupport(this); + + public WSJob() + { + } + + public WSJob(String serviceProvider, String serviceName, String hostName) + { + this.serviceProvider = serviceProvider; + this.serviceName = serviceName; + this.hostName = hostName; + } + + @Override + public String toString() + { + return format("%s:%s [%s] Created %s", serviceProvider, serviceName, + jobId, creationTime); + } + + public int getJobNum() + { + return jobNum; + } + + public void setJobNum(int jobNum) + { + this.jobNum = jobNum; + } + + public WSJobStatus getStatus() + { + return status; + } + + public void setStatus(WSJobStatus status) + { + var oldStatus = this.status; + this.status = status; + pcs.firePropertyChange("status", oldStatus, status); + } + + public String getLog() + { + return log; + } + + public void setLog(String log) + { + var oldLog = this.log; + this.log = log; + pcs.firePropertyChange("log", oldLog, log); + } + + public String getErrorLog() + { + return errorLog; + } + + public void setErrorLog(String log) + { + String oldErrorLog = this.errorLog; + this.errorLog = log; + pcs.firePropertyChange("errorLog", oldErrorLog, this.errorLog); + } + + public long getUid() + { + return uid; + } + + public String getServiceProvider() + { + return serviceProvider; + } + + public void setServiceProvider(String serviceProvider) + { + this.serviceProvider = serviceProvider; + } + + public String getServiceName() + { + return serviceName; + } + + public void setServiceName(String serviceName) + { + this.serviceName = serviceName; + } + + public String getJobId() + { + return jobId; + } + + public void setJobId(String jobID) + { + this.jobId = jobID; + } + + public String getHostName() + { + return hostName; + } + + public void setHostName(String hostName) + { + this.hostName = hostName; + } + + public Date getCreationTime() + { + return creationTime; + } + + public void setCreationTime(Date creationTime) + { + this.creationTime = creationTime; + } + + public void addPropertyChangeListener(PropertyChangeListener listener) + { + pcs.addPropertyChangeListener(listener); + } + + public void addPropertyChangeListener(String propertyName, + PropertyChangeListener listener) + { + pcs.addPropertyChangeListener(propertyName, listener); + } + + public void removePropertyChangeListener(PropertyChangeListener listener) + { + pcs.removePropertyChangeListener(listener); + } + + public void removePropertyChagneListener(String propertyName, + PropertyChangeListener listener) + { + pcs.removePropertyChangeListener(propertyName, listener); + } +}