Source code: com/virtuosotechnologies/lib/asyncjob/AsyncJobExecution.java
1 /*
2 ================================================================================
3
4 FILE: AsyncJobExecution.java
5
6 PROJECT:
7
8 Virtuoso Utilities
9
10 CONTENTS:
11
12 An object that tracks an execution of a single AsyncJob
13
14 PROGRAMMERS:
15
16 Daniel Azuma (DA) <dazuma@kagi.com>
17
18 COPYRIGHT:
19
20 Copyright (C) 2003 Daniel Azuma (dazuma@kagi.com)
21
22 This program is free software; you can redistribute it and/or
23 modify it under the terms of the GNU General Public License as
24 published by the Free Software Foundation; either version 2
25 of the License, or (at your option) any later version.
26
27 This program is distributed in the hope that it will be useful,
28 but WITHOUT ANY WARRANTY; without even the implied warranty of
29 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30 GNU General Public License for more details.
31
32 You should have received a copy of the GNU General Public
33 License along with this program; if not, write to
34 Free Software Foundation, Inc.
35 59 Temple Place, Suite 330
36 Boston, MA 02111-1307 USA
37
38 ================================================================================
39 */
40
41
42 package com.virtuosotechnologies.lib.asyncjob;
43
44
45 /**
46 * An object that tracks an execution of a single AsyncJob.
47 */
48 public interface AsyncJobExecution
49 {
50 /**
51 * Get the runner running this job
52 *
53 * @return the AsyncJobRunner
54 */
55 public AsyncJobRunner getAsyncJobRunner();
56
57
58 /**
59 * Get the job being run
60 *
61 * @return the AsyncJob
62 */
63 public AsyncJob getAsyncJob();
64
65
66 /**
67 * Wait until the job is finished.
68 *
69 * @return true if the job succeeded, false if it failed
70 */
71 public boolean waitForCompletion()
72 throws
73 InterruptedException;
74
75
76 /**
77 * Has the job started yet?
78 *
79 * @return true if the job has started
80 */
81 public boolean isStarted();
82
83
84 /**
85 * Has the job finished yet?
86 *
87 * @return true if the job has finished
88 */
89 public boolean isFinished();
90
91
92 /**
93 * Get the job result value.
94 *
95 * @return the result value (which may be null) or null if the job is
96 * not finished or failed.
97 */
98 public Object getResult();
99
100
101 /**
102 * Get the job failure exception.
103 *
104 * @return the exception with which the job failed, or null if the job is
105 * not finished or did not fail.
106 */
107 public AsyncJobException getException();
108
109
110 /**
111 * Add an execution listener.
112 *
113 * @param listener listener to add
114 */
115 public void addAsyncJobListener(
116 AsyncJobListener listener);
117
118
119 /**
120 * Remove an execution listener.
121 *
122 * @param listener listener to remove
123 */
124 public void removeAsyncJobListener(
125 AsyncJobListener listener);
126 }