JAL-3878 Add javadocs to created classes and reformat code.
[jalview.git] / src / jalview / ws2 / WSJob.java
1 package jalview.ws2;
2
3 import java.io.Serializable;
4 import java.net.URI;
5 import java.util.Date;
6
7 import jalview.util.MathUtils;
8
9 import static java.lang.String.format;
10
11 import java.beans.PropertyChangeListener;
12 import java.beans.PropertyChangeSupport;
13
14 /**
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.
20  *
21  * @author mmwarowny
22  *
23  */
24 public final class WSJob implements Serializable
25 {
26   private static final long serialVersionUID = -4600214977954333787L;
27
28   /* Client-side identifier */
29   public final long uid = MathUtils.getUID();
30
31   private int jobNum = 0;
32
33   /* Shortened server name e.g. "slivka" or "jabaws" */
34   private String serviceProvider = "";
35
36   /* Name of the service e.g. "ClustalW2" */
37   private String serviceName = "";
38
39   /* Server-side identifier */
40   private String jobId = "";
41
42   private WSJobStatus status = WSJobStatus.UNKNOWN;
43
44   private String log = "";
45
46   private String errorLog = "";
47
48   /* Base url of the server associated with the job */
49   private String hostName = "";
50
51   private Date creationTime = new Date();
52
53   public PropertyChangeSupport pcs = new PropertyChangeSupport(this);
54
55   public WSJob()
56   {
57   }
58
59   public WSJob(String serviceProvider, String serviceName, String hostName)
60   {
61     this.serviceProvider = serviceProvider;
62     this.serviceName = serviceName;
63     this.hostName = hostName;
64   }
65
66   @Override
67   public String toString()
68   {
69     return format("%s:%s [%s] Created %s", serviceProvider, serviceName,
70             jobId, creationTime);
71   }
72
73   /**
74    * Get the ordinal numer of the job.
75    * 
76    * @return job number
77    */
78   public int getJobNum()
79   {
80     return jobNum;
81   }
82
83   public void setJobNum(int jobNum)
84   {
85     this.jobNum = jobNum;
86   }
87
88   public WSJobStatus getStatus()
89   {
90     return status;
91   }
92
93   public void setStatus(WSJobStatus status)
94   {
95     var oldStatus = this.status;
96     this.status = status;
97     pcs.firePropertyChange("status", oldStatus, status);
98   }
99
100   public String getLog()
101   {
102     return log;
103   }
104
105   public void setLog(String log)
106   {
107     var oldLog = this.log;
108     this.log = log;
109     pcs.firePropertyChange("log", oldLog, log);
110   }
111
112   public String getErrorLog()
113   {
114     return errorLog;
115   }
116
117   public void setErrorLog(String log)
118   {
119     String oldErrorLog = this.errorLog;
120     this.errorLog = log;
121     pcs.firePropertyChange("errorLog", oldErrorLog, this.errorLog);
122   }
123
124   public long getUid()
125   {
126     return uid;
127   }
128
129   public String getServiceProvider()
130   {
131     return serviceProvider;
132   }
133
134   public void setServiceProvider(String serviceProvider)
135   {
136     this.serviceProvider = serviceProvider;
137   }
138
139   public String getServiceName()
140   {
141     return serviceName;
142   }
143
144   public void setServiceName(String serviceName)
145   {
146     this.serviceName = serviceName;
147   }
148
149   public String getJobId()
150   {
151     return jobId;
152   }
153
154   public void setJobId(String jobID)
155   {
156     this.jobId = jobID;
157   }
158
159   public String getHostName()
160   {
161     return hostName;
162   }
163
164   public void setHostName(String hostName)
165   {
166     this.hostName = hostName;
167   }
168
169   public Date getCreationTime()
170   {
171     return creationTime;
172   }
173
174   public void setCreationTime(Date creationTime)
175   {
176     this.creationTime = creationTime;
177   }
178
179   public void addPropertyChangeListener(PropertyChangeListener listener)
180   {
181     pcs.addPropertyChangeListener(listener);
182   }
183
184   public void addPropertyChangeListener(String propertyName,
185           PropertyChangeListener listener)
186   {
187     pcs.addPropertyChangeListener(propertyName, listener);
188   }
189
190   public void removePropertyChangeListener(PropertyChangeListener listener)
191   {
192     pcs.removePropertyChangeListener(listener);
193   }
194
195   public void removePropertyChagneListener(String propertyName,
196           PropertyChangeListener listener)
197   {
198     pcs.removePropertyChangeListener(propertyName, listener);
199   }
200 }