001: /*
002: * This file is part of the WfMOpen project.
003: * Copyright (C) 2001-2003 Danet GmbH (www.danet.de), GS-AN.
004: * All rights reserved.
005: *
006: * This program is free software; you can redistribute it and/or modify
007: * it under the terms of the GNU General Public License as published by
008: * the Free Software Foundation; either version 2 of the License, or
009: * (at your option) any later version.
010: *
011: * This program is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
014: * GNU General Public License for more details.
015: *
016: * You should have received a copy of the GNU General Public License
017: * along with this program; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
019: *
020: * $Id: Process.java,v 1.4 2006/09/29 12:32:07 drmlipp Exp $
021: *
022: * $Log: Process.java,v $
023: * Revision 1.4 2006/09/29 12:32:07 drmlipp
024: * Consistently using WfMOpen as projct name now.
025: *
026: * Revision 1.3 2005/01/02 20:49:12 mlipp
027: * First version of debug mode.
028: *
029: * Revision 1.2 2004/08/19 09:27:24 drmlipp
030: * Fixed javadoc
031: *
032: * Revision 1.1.1.1 2003/06/30 20:05:13 drmlipp
033: * Initial import
034: *
035: * Revision 1.25 2003/06/27 08:51:46 lipp
036: * Fixed copyright/license information.
037: *
038: * Revision 1.24 2003/04/25 14:50:59 lipp
039: * Fixed javadoc errors and warnings.
040: *
041: * Revision 1.23 2002/12/19 21:37:43 lipp
042: * Reorganized interfaces.
043: *
044: * Revision 1.22 2002/11/26 11:23:30 lipp
045: * Modified RemoteException comment.
046: *
047: * Revision 1.21 2002/11/01 14:05:30 barzik
048: * Redesign of transition order
049: *
050: * Revision 1.20 2002/09/18 11:42:21 lipp
051: * Moved participant data access to process definition.
052: *
053: * Revision 1.19 2002/09/18 09:53:33 lipp
054: * Moved access to application data to process definition.
055: *
056: * Revision 1.18 2002/09/17 15:24:24 lipp
057: * Renamed Tool to Application and copied some functionality to
058: * ProcessDefintion.
059: *
060: * Revision 1.17 2002/08/30 11:38:51 lipp
061: * Added create time as process method.
062: *
063: * Revision 1.16 2002/08/26 20:23:13 lipp
064: * Lots of method renames.
065: *
066: * Revision 1.15 2002/08/26 14:17:07 lipp
067: * JavaDoc fixes.
068: *
069: * Revision 1.14 2002/08/25 20:55:54 lipp
070: * Clearing up use of ProcessDefinition.
071: *
072: * Revision 1.13 2002/08/20 18:34:39 lipp
073: * Re-added erroneously removed RemoteException.
074: *
075: * Revision 1.12 2002/08/20 13:46:13 lipp
076: * Using xpath now to extract additional process information from xpdl.
077: *
078: * Revision 1.11 2002/08/01 10:13:16 huaiyang
079: * Use JDOM instead of DOM now.
080: *
081: * Revision 1.10 2002/07/24 05:48:16 huaiyang
082: * javadocs added.
083: *
084: * Revision 1.9 2002/05/20 16:19:53 lipp
085: * Moved complete from "public" API to "private" API.
086: *
087: * Revision 1.8 2002/05/17 12:52:34 lipp
088: * Cleaned up interface to tools.
089: *
090: * Revision 1.7 2002/02/04 16:06:19 huaiyang
091: * Add the method of activityByKey.
092: *
093: * Revision 1.6 2002/02/01 13:31:16 lipp
094: * Added missing RemoteException.
095: *
096: * Revision 1.5 2002/01/31 15:40:54 huaiyang
097: * Add the methods of getApplications and applicationById.
098: *
099: * Revision 1.4 2002/01/29 14:45:26 huaiyang
100: * Add the method of getParticipants.
101: *
102: * Revision 1.3 2002/01/22 08:57:28 huaiyang
103: * Add new method of getDefinitionDOM.
104: *
105: * Revision 1.2 2002/01/18 09:55:35 huaiyang
106: * Add method getXPDL()
107: *
108: * Revision 1.1 2002/01/15 14:25:01 robert
109: * replace from workflow/domain to workflow/api
110: *
111: * Revision 1.35 2002/01/10 15:36:53 lipp
112: * Cleaned up definition of Priority.
113: *
114: * Revision 1.34 2001/12/18 22:16:53 lipp
115: * Restructured DOM generation, implemented "assignments" method from ras.
116: *
117: * Revision 1.33 2001/10/09 16:00:33 lipp
118: * Additional imports for javadoc.
119: *
120: * Revision 1.32 2001/10/09 13:48:28 montag
121: * doccheck
122: *
123: * Revision 1.31 2001/10/06 09:45:52 lipp
124: * Seperated interface and implementation of domain classes.
125: *
126: * Revision 1.30 2001/09/24 12:30:52 montag
127: * ProcessAttributes removed.
128: *
129: * Revision 1.29 2001/09/24 09:16:44 montag
130: * Allow abortion of activities to "fail".
131: *
132: * Revision 1.28 2001/09/21 16:43:08 montag
133: * "Faule Bits" solved
134: *
135: * Revision 1.27 2001/09/21 10:59:17 montag
136: * Debug Log for "faule bits"
137: *
138: * Revision 1.26 2001/09/11 12:30:05 montag
139: * clean up refresh/dispose due to new db scheme
140: *
141: * Revision 1.25 2001/09/11 11:43:55 montag
142: * removed obsolete columns from the db. next step:
143: * clean up refresh/dispose due to new db scheme
144: *
145: * Revision 1.24 2001/09/11 09:16:50 montag
146: * transition manager now finds openable activities
147: * at process start. next step: determine next activities
148: * when an activity is complete
149: *
150: * Revision 1.23 2001/09/11 07:19:07 montag
151: * usage of bean resources, second part
152: * load of transitions corrected
153: *
154: * Revision 1.22 2001/09/10 15:51:53 montag
155: * usage of bean resources, first part
156: *
157: * Revision 1.21 2001/09/10 08:46:38 lipp
158: * Introducing persistence support protocol for domain classes.
159: *
160: * Revision 1.20 2001/09/07 07:59:54 lipp
161: * Clarified state handling.
162: *
163: * Revision 1.19 2001/08/23 14:13:16 lipp
164: * Status handling now conformant to "Workflow Management Application
165: * Programming Interface (Interface 2&3)", Appendix G.
166: *
167: * Revision 1.18 2001/08/22 11:05:41 lipp
168: * Minor fixes of return types of state querying functions patch.
169: *
170: * Revision 1.17 2001/08/21 15:48:05 lipp
171: * Return types of state querying functions converted to
172: * String as required by OMG (some minor bugs still left)
173: *
174: * Revision 1.16 2001/08/15 14:35:29 montag
175: * start a process
176: *
177: * Revision 1.15 2001/08/15 11:18:41 montag
178: * load transitions
179: *
180: * Revision 1.14 2001/08/15 07:46:37 montag
181: * new interface for client calls
182: *
183: * Revision 1.13 2001/08/14 09:57:23 montag
184: * transitions in domain
185: *
186: * Revision 1.12 2001/08/14 09:31:27 montag
187: * abort process and activities
188: *
189: * Revision 1.11 2001/08/14 09:11:21 montag
190: * check closed state of process activities
191: *
192: * Revision 1.10 2001/08/14 08:10:40 montag
193: * instanciate process and activity
194: *
195: * Revision 1.9 2001/08/13 15:33:17 montag
196: * basic process creation
197: *
198: * Revision 1.8 2001/08/13 09:04:26 montag
199: * New constructors for process and activity
200: *
201: * Revision 1.7 2001/08/08 12:23:21 montag
202: * javadoc corrected
203: *
204: * Revision 1.6 2001/08/02 09:35:54 montag
205: * priority and domain classes
206: *
207: * Revision 1.5 2001/08/01 14:00:57 montag
208: * References to the omg modell.
209: *
210: * Revision 1.4 2001/08/01 13:28:40 montag
211: * make modell easier
212: *
213: * Revision 1.3 2001/08/01 08:28:27 montag
214: * package and process adapted
215: *
216: * Revision 1.2 2001/08/01 08:16:26 montag
217: * modelling according to the xpdl description
218: *
219: * Revision 1.1 2001/07/31 16:20:18 montag
220: * more base classes
221: *
222: *
223: */
224: package de.danet.an.workflow.api;
225:
226: import java.util.Date;
227: import java.util.List;
228:
229: import java.rmi.RemoteException;
230:
231: import de.danet.an.workflow.omgcore.InvalidStateException;
232:
233: /**
234: * Interface <code>Process</code> adds some functions to the
235: * {@link de.danet.an.workflow.omgcore.WfProcess OMG process}.
236: */
237: public interface Process extends ExecutionObject,
238: de.danet.an.workflow.omgcore.WfProcess {
239:
240: /**
241: * Returns the {@link Activity <code>Activity</code>} with the
242: * given key. The OMG interface only defines a {@link
243: * de.danet.an.workflow.omgcore.WfProcess#steps method for listing
244: * all the activities} associated with the process. While, of
245: * course, one could select the activity with a certain key from
246: * that list, this would be rather insufficient.
247: * @param key the
248: * {@link de.danet.an.workflow.omgcore.WfActivity#key key} of the activity
249: * @return the activity associated with the key
250: * @throws InvalidKeyException if no activity with the given key
251: * exists
252: * @throws RemoteException if a system-level error occurs.
253: */
254: Activity activityByKey(String key) throws RemoteException,
255: InvalidKeyException;
256:
257: /**
258: * Returns the process definition of this process.
259: * @return the representation of the process definition.
260: * @throws RemoteException if a system-level error occurs.
261: */
262: ProcessDefinition processDefinition() throws RemoteException;
263:
264: /**
265: * Gets a list of transitions for this process.
266: * @return list of transitions for this process
267: * @throws RemoteException if a system level error occurs.
268: */
269: List transitions() throws RemoteException;
270:
271: /**
272: * Returns the creation time of the process.
273: * @return the creation time.
274: * @throws RemoteException if a system-level error occurs.
275: */
276: Date createTime() throws RemoteException;
277:
278: /**
279: * Enable or disable debugging of the process. Changing the debug
280: * mode is only allowed when the process has been started.
281: *
282: * @param debug if the process is to be debugged
283: * @throws RemoteException if a system-level error occurs.
284: * @throws InvalidStateException if changing the debug mode is not
285: * allowed
286: */
287: void setDebugEnabled(boolean debug) throws RemoteException,
288: InvalidStateException;
289: }
|