4203 |
02 Nov 16 |
nicklas |
1 |
package net.sf.basedb.opengrid; |
4203 |
02 Nov 16 |
nicklas |
2 |
|
4203 |
02 Nov 16 |
nicklas |
3 |
import net.sf.basedb.core.Job; |
4203 |
02 Nov 16 |
nicklas |
4 |
|
4203 |
02 Nov 16 |
nicklas |
5 |
/** |
4203 |
02 Nov 16 |
nicklas |
Represents an identifier for a job on an Open Grid Scheduler |
4203 |
02 Nov 16 |
nicklas |
cluster. The cluster id and job id is required while the BASE |
4203 |
02 Nov 16 |
nicklas |
job id is optional. |
4203 |
02 Nov 16 |
nicklas |
9 |
|
4203 |
02 Nov 16 |
nicklas |
@author nicklas |
4203 |
02 Nov 16 |
nicklas |
@since 1.0 |
4203 |
02 Nov 16 |
nicklas |
12 |
*/ |
4203 |
02 Nov 16 |
nicklas |
13 |
public class JobIdentifier |
4203 |
02 Nov 16 |
nicklas |
14 |
{ |
4203 |
02 Nov 16 |
nicklas |
15 |
|
4203 |
02 Nov 16 |
nicklas |
16 |
private final String clusterId; |
4203 |
02 Nov 16 |
nicklas |
17 |
private final String clusterJobId; |
4203 |
02 Nov 16 |
nicklas |
18 |
private final int baseJobId; |
4203 |
02 Nov 16 |
nicklas |
19 |
|
4203 |
02 Nov 16 |
nicklas |
20 |
/** |
4203 |
02 Nov 16 |
nicklas |
Creates a job identifier for a job on a cluster that has |
4203 |
02 Nov 16 |
nicklas |
a known job in BASE. |
4203 |
02 Nov 16 |
nicklas |
23 |
*/ |
4203 |
02 Nov 16 |
nicklas |
24 |
public JobIdentifier(String clusterId, String clusterJobId, int baseJobId) |
4203 |
02 Nov 16 |
nicklas |
25 |
{ |
4203 |
02 Nov 16 |
nicklas |
26 |
this.clusterId = clusterId; |
4203 |
02 Nov 16 |
nicklas |
27 |
this.clusterJobId = clusterJobId; |
4203 |
02 Nov 16 |
nicklas |
28 |
this.baseJobId = baseJobId; |
4203 |
02 Nov 16 |
nicklas |
29 |
} |
4203 |
02 Nov 16 |
nicklas |
30 |
|
4203 |
02 Nov 16 |
nicklas |
31 |
/** |
4203 |
02 Nov 16 |
nicklas |
Creates a job identifier for a job on a cluster that has |
4203 |
02 Nov 16 |
nicklas |
no known job in BASE. |
4203 |
02 Nov 16 |
nicklas |
34 |
*/ |
4203 |
02 Nov 16 |
nicklas |
35 |
public JobIdentifier(String clusterId, String clusterJobId) |
4203 |
02 Nov 16 |
nicklas |
36 |
{ |
4203 |
02 Nov 16 |
nicklas |
37 |
this(clusterId, clusterJobId, 0); |
4203 |
02 Nov 16 |
nicklas |
38 |
} |
4203 |
02 Nov 16 |
nicklas |
39 |
|
4203 |
02 Nov 16 |
nicklas |
40 |
/** |
4203 |
02 Nov 16 |
nicklas |
Creates a job identifier for a job on a cluster that has |
4203 |
02 Nov 16 |
nicklas |
a known job in BASE. |
4203 |
02 Nov 16 |
nicklas |
43 |
*/ |
4203 |
02 Nov 16 |
nicklas |
44 |
public JobIdentifier(String clusterId, String clusterJobId, Job baseJob) |
4203 |
02 Nov 16 |
nicklas |
45 |
{ |
4203 |
02 Nov 16 |
nicklas |
46 |
this(clusterId, clusterJobId, baseJob == null ? 0 : baseJob.getId()); |
4203 |
02 Nov 16 |
nicklas |
47 |
} |
4203 |
02 Nov 16 |
nicklas |
48 |
|
4203 |
02 Nov 16 |
nicklas |
49 |
/** |
4203 |
02 Nov 16 |
nicklas |
Get the ID of the cluster the job is located on. |
4203 |
02 Nov 16 |
nicklas |
51 |
*/ |
4203 |
02 Nov 16 |
nicklas |
52 |
public String getClusterId() |
4203 |
02 Nov 16 |
nicklas |
53 |
{ |
4203 |
02 Nov 16 |
nicklas |
54 |
return clusterId; |
4203 |
02 Nov 16 |
nicklas |
55 |
} |
4203 |
02 Nov 16 |
nicklas |
56 |
|
4203 |
02 Nov 16 |
nicklas |
57 |
/** |
4203 |
02 Nov 16 |
nicklas |
Get the (Open Grid Schedulre) ID of the job. |
4203 |
02 Nov 16 |
nicklas |
59 |
*/ |
4203 |
02 Nov 16 |
nicklas |
60 |
public String getClusterJobId() |
4203 |
02 Nov 16 |
nicklas |
61 |
{ |
4203 |
02 Nov 16 |
nicklas |
62 |
return clusterJobId; |
4203 |
02 Nov 16 |
nicklas |
63 |
} |
4203 |
02 Nov 16 |
nicklas |
64 |
|
4203 |
02 Nov 16 |
nicklas |
65 |
/** |
4203 |
02 Nov 16 |
nicklas |
Get the corresponding job id in BASE. |
4203 |
02 Nov 16 |
nicklas |
67 |
*/ |
4203 |
02 Nov 16 |
nicklas |
68 |
public int getBaseJobId() |
4203 |
02 Nov 16 |
nicklas |
69 |
{ |
4203 |
02 Nov 16 |
nicklas |
70 |
return baseJobId; |
4203 |
02 Nov 16 |
nicklas |
71 |
} |
4203 |
02 Nov 16 |
nicklas |
72 |
|
4203 |
02 Nov 16 |
nicklas |
73 |
/** |
4203 |
02 Nov 16 |
nicklas |
Equality is based on the cluster id and job id only. BASE internal id is |
4203 |
02 Nov 16 |
nicklas |
ignored. |
4203 |
02 Nov 16 |
nicklas |
76 |
*/ |
4203 |
02 Nov 16 |
nicklas |
77 |
@Override |
4203 |
02 Nov 16 |
nicklas |
78 |
public boolean equals(Object other) |
4203 |
02 Nov 16 |
nicklas |
79 |
{ |
4203 |
02 Nov 16 |
nicklas |
80 |
if (other == null) return false; |
4203 |
02 Nov 16 |
nicklas |
81 |
if (other.getClass() != this.getClass()) return false; |
4203 |
02 Nov 16 |
nicklas |
82 |
JobIdentifier o = (JobIdentifier)other; |
4203 |
02 Nov 16 |
nicklas |
83 |
return clusterId.equals(o.clusterId) && clusterJobId.equals(o.clusterJobId); |
4203 |
02 Nov 16 |
nicklas |
84 |
} |
4203 |
02 Nov 16 |
nicklas |
85 |
|
4203 |
02 Nov 16 |
nicklas |
86 |
@Override |
4203 |
02 Nov 16 |
nicklas |
87 |
public int hashCode() |
4203 |
02 Nov 16 |
nicklas |
88 |
{ |
4203 |
02 Nov 16 |
nicklas |
89 |
return 7 * clusterId.hashCode() + clusterJobId.hashCode(); |
4203 |
02 Nov 16 |
nicklas |
90 |
} |
4203 |
02 Nov 16 |
nicklas |
91 |
|
4203 |
02 Nov 16 |
nicklas |
92 |
@Override |
4203 |
02 Nov 16 |
nicklas |
93 |
public String toString() |
4203 |
02 Nov 16 |
nicklas |
94 |
{ |
4203 |
02 Nov 16 |
nicklas |
95 |
return "JobIdentifier#"+clusterJobId+"#"+baseJobId+"["+clusterId+"]"; |
4203 |
02 Nov 16 |
nicklas |
96 |
} |
4203 |
02 Nov 16 |
nicklas |
97 |
|
4203 |
02 Nov 16 |
nicklas |
98 |
} |