3 import java.io.Serializable;
7 import jalview.util.MathUtils;
9 import static java.lang.String.format;
11 import java.beans.PropertyChangeListener;
12 import java.beans.PropertyChangeSupport;
15 * An id handler to the external job running on the server. This is the smallest
16 * job unit which might me a part of a larger multi-stage or parallel task
17 * handled by the WebServiceWorker. Jobs are created by the JalviewWebService on
18 * job submission and are used to identify that job during its lifetime. It can
19 * be serialized and used between application launches.
24 public final class WSJob implements Serializable
26 private static final long serialVersionUID = -4600214977954333787L;
28 /* Client-side identifier */
29 public final long uid = MathUtils.getUID();
31 private int jobNum = 0;
33 /* Shortened server name e.g. "slivka" or "jabaws" */
34 private String serviceProvider = "";
36 /* Name of the service e.g. "ClustalW2" */
37 private String serviceName = "";
39 /* Server-side identifier */
40 private String jobId = "";
42 private WSJobStatus status = WSJobStatus.UNKNOWN;
44 private String log = "";
46 private String errorLog = "";
48 /* Base url of the server associated with the job */
49 private String hostName = "";
51 private Date creationTime = new Date();
53 public PropertyChangeSupport pcs = new PropertyChangeSupport(this);
59 public WSJob(String serviceProvider, String serviceName, String hostName)
61 this.serviceProvider = serviceProvider;
62 this.serviceName = serviceName;
63 this.hostName = hostName;
67 public String toString()
69 return format("%s:%s [%s] Created %s", serviceProvider, serviceName,
74 * Get the ordinal numer of the job.
78 public int getJobNum()
83 public void setJobNum(int jobNum)
88 public WSJobStatus getStatus()
93 public void setStatus(WSJobStatus status)
95 var oldStatus = this.status;
97 pcs.firePropertyChange("status", oldStatus, status);
100 public String getLog()
105 public void setLog(String log)
107 var oldLog = this.log;
109 pcs.firePropertyChange("log", oldLog, log);
112 public String getErrorLog()
117 public void setErrorLog(String log)
119 String oldErrorLog = this.errorLog;
121 pcs.firePropertyChange("errorLog", oldErrorLog, this.errorLog);
129 public String getServiceProvider()
131 return serviceProvider;
134 public void setServiceProvider(String serviceProvider)
136 this.serviceProvider = serviceProvider;
139 public String getServiceName()
144 public void setServiceName(String serviceName)
146 this.serviceName = serviceName;
149 public String getJobId()
154 public void setJobId(String jobID)
159 public String getHostName()
164 public void setHostName(String hostName)
166 this.hostName = hostName;
169 public Date getCreationTime()
174 public void setCreationTime(Date creationTime)
176 this.creationTime = creationTime;
179 public void addPropertyChangeListener(PropertyChangeListener listener)
181 pcs.addPropertyChangeListener(listener);
184 public void addPropertyChangeListener(String propertyName,
185 PropertyChangeListener listener)
187 pcs.addPropertyChangeListener(propertyName, listener);
190 public void removePropertyChangeListener(PropertyChangeListener listener)
192 pcs.removePropertyChangeListener(listener);
195 public void removePropertyChagneListener(String propertyName,
196 PropertyChangeListener listener)
198 pcs.removePropertyChangeListener(propertyName, listener);