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: WfProcess.java,v 1.2 2006/09/29 12:32:09 drmlipp Exp $
021: *
022: * $Log: WfProcess.java,v $
023: * Revision 1.2 2006/09/29 12:32:09 drmlipp
024: * Consistently using WfMOpen as projct name now.
025: *
026: * Revision 1.1.1.1 2003/06/30 20:05:16 drmlipp
027: * Initial import
028: *
029: * Revision 1.13 2003/06/27 08:51:45 lipp
030: * Fixed copyright/license information.
031: *
032: * Revision 1.12 2003/04/26 16:11:14 lipp
033: * Moved some classes to reduce package dependencies.
034: *
035: * Revision 1.11 2002/11/26 11:23:29 lipp
036: * Modified RemoteException comment.
037: *
038: * Revision 1.10 2002/10/02 21:23:10 lipp
039: * Removed faultily inserted declaration.
040: *
041: * Revision 1.9 2002/09/30 12:42:05 barzik
042: * audit event handling using base event information
043: *
044: * Revision 1.8 2002/07/24 08:04:42 huaiyang
045: * doccheck.
046: *
047: * Revision 1.7 2002/07/23 11:53:42 huaiyang
048: * Add javadocs.
049: *
050: * Revision 1.6 2001/08/16 15:26:00 montag
051: * clean up
052: *
053: * Revision 1.5 2001/08/03 15:06:58 montag
054: * Sequence diagram
055: *
056: * Revision 1.4 2001/07/30 10:49:21 montag
057: * activititesInState corrected
058: *
059: * Revision 1.3 2001/07/26 21:00:08 lipp
060: * Added Exceptions
061: *
062: * Revision 1.2 2001/07/26 15:57:40 lipp
063: * Methods returning Collections renamed.
064: *
065: * Revision 1.1 2001/07/06 08:51:49 lipp
066: * Moved from domain to omgcore
067: *
068: * Revision 1.2 2001/07/05 14:15:09 lipp
069: * Rather complete version.
070: *
071: * Revision 1.1 2001/07/04 16:08:05 lipp
072: * Compilable version
073: *
074: * Revision 1.2 2001/07/04 09:51:02 lipp
075: * Fixed Copyright notice
076: *
077: */
078: package de.danet.an.workflow.omgcore;
079:
080: import java.rmi.RemoteException;
081: import java.util.Collection;
082:
083: /**
084: * <code>WfProcess</code> is the performer of a workflow request. All
085: * workflow objects that perform work implement this interface. This
086: * interface allows work to proceed asynchronously while being monitored
087: * and controlled.
088: **/
089: public interface WfProcess extends WfExecutionObject {
090:
091: /**
092: * Returns the <code>WfRequester</code> associated with this
093: * <code>WfProcess</code>.
094: * @return the associated <code>WfRequester</code>.
095: * @throws RemoteException if a system-level error occurs.
096: */
097: public WfRequester requester() throws RemoteException;
098:
099: /**
100: * Reassigns the <code>WfProcess</code> to another
101: * <code>WfRequester</code>.
102: * @param requester new WfRequester.
103: * @throws RemoteException if a system-level error occurs.
104: * @throws CannotChangeRequesterException if ressignment of the process is
105: * not supported.
106: */
107: public void setRequester(WfRequester requester)
108: throws RemoteException, CannotChangeRequesterException;
109:
110: /**
111: * Returns all WfActivities associated with this <code>WfProcess</code>.
112: * @return the collection of all the WfActivities.
113: * @throws RemoteException if a system-level error occurs.
114: */
115: public Collection steps() throws RemoteException;
116:
117: /**
118: * Returns the <code>WfProcessMgr</code> associated with the
119: * <code>WfProcess</code>.
120: * @return the associated WfProcessMgr.
121: * @throws RemoteException if a system-level error occurs.
122: */
123: public WfProcessMgr manager() throws RemoteException;
124:
125: /**
126: * Returns the result produced by the WfProcess. In general the result is
127: * undefined until the process completes, but some processes may produce
128: * intermediate results.
129: * @return process data representing intermediate result.
130: * @throws RemoteException if a system-level error occurs.
131: * @throws ResultNotAvailableException when the result cannot be obtained
132: * yet.
133: */
134: public ProcessData result() throws RemoteException,
135: ResultNotAvailableException;
136:
137: /**
138: * Initiate enactment of a WfProcess.
139: * @throws RemoteException if a system-level error occurs.
140: * @throws CannotStartException when the process cannot be started (e.g.,
141: * because it is not properly initialized).
142: * @throws AlreadyRunningException when the process has already been
143: * started.
144: */
145: public void start() throws RemoteException, CannotStartException,
146: AlreadyRunningException;
147:
148: /**
149: * Return all <code>WfActivity</code> objects that are in a certain state.
150: * @param state the given state.
151: * @return the collection of all WfActivities.
152: * @throws RemoteException if a system-level error occurs.
153: * @throws InvalidStateException if an invalid state has been specified.
154: */
155: public Collection activitiesInState(String state)
156: throws RemoteException, InvalidStateException;
157:
158: /**
159: * @link aggregationByValue
160: * @clientCardinality 1
161: * @supplierCardinality 0..*
162: * @supplierQualifier step
163: */
164: /*#WfActivity lnkWorkActivity;*/
165: }
|