annotate java-genomics-toolkit/gui/edu/unc/genomics/SubmittedJob.java @ 0:1daf3026d231

Upload alpha version
author timpalpant
date Mon, 13 Feb 2012 21:55:55 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
1 package edu.unc.genomics;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
2
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
3 import java.util.concurrent.ExecutionException;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
4 import java.util.concurrent.Future;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
5
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
6 /**
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
7 * Represents a job that was submitted for processing
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
8 *
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
9 * @author timpalpant
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
10 *
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
11 */
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
12 public class SubmittedJob {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
13 private static int numJobs = 0;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
14
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
15 private final Future<?> future;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
16 private final int id;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
17 private final Job job;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
18
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
19 public SubmittedJob(Job job, Future<?> future) {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
20 this.id = ++numJobs;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
21 this.job = job;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
22 this.future = future;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
23 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
24
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
25 /**
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
26 * @return the id
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
27 */
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
28 public int getId() {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
29 return id;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
30 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
31
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
32 /**
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
33 * @return the job
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
34 */
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
35 public Job getJob() {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
36 return job;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
37 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
38
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
39 /**
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
40 * If the job is currently running
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
41 * @return
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
42 */
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
43 public boolean isRunning() {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
44 return job.isRunning() && !isDone();
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
45 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
46
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
47 /**
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
48 * If the job is done running
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
49 * (it may have failed or succeeded)
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
50 * @return
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
51 */
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
52 public boolean isDone() {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
53 return future.isDone();
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
54 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
55
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
56 /**
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
57 * If this job completed without any Exceptions
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
58 * @return
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
59 */
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
60 public boolean succeeded() {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
61 return (future.isDone() && !failed());
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
62 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
63
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
64 /**
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
65 * If this job completed with Exceptions
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
66 * @return
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
67 */
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
68 public boolean failed() {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
69 if (future.isDone()) {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
70 try {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
71 future.get();
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
72 return false;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
73 } catch (InterruptedException | ExecutionException e) {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
74 return true;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
75 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
76 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
77
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
78 return false;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
79 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
80
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
81 /**
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
82 * Return an Exception that occured, or null if there were none
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
83 * or the job is not yet done
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
84 * @return
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
85 */
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
86 public Exception getException() {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
87 if (future.isDone()) {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
88 try {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
89 future.get();
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
90 return null;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
91 } catch (InterruptedException | ExecutionException e) {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
92 return e;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
93 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
94 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
95
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
96 return null;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
97 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
98
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
99 @Override
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
100 public String toString() {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
101 return "Job "+id+": "+job.getName();
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
102 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
103 }