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: ProcessDirectory.java,v 1.2 2006/09/29 12:32:07 drmlipp Exp $
021: *
022: * $Log: ProcessDirectory.java,v $
023: * Revision 1.2 2006/09/29 12:32:07 drmlipp
024: * Consistently using WfMOpen as projct name now.
025: *
026: * Revision 1.1.1.2 2004/08/18 15:17:36 drmlipp
027: * Update to 1.2
028: *
029: * Revision 1.21 2004/02/20 09:52:36 lipp
030: * Added method for activity lookup.
031: *
032: * Revision 1.20 2003/06/27 08:51:46 lipp
033: * Fixed copyright/license information.
034: *
035: * Revision 1.19 2003/04/08 13:09:14 lipp
036: * Changed paramter type for removeProcess.
037: *
038: * Revision 1.18 2003/04/08 08:10:08 schlue
039: * Javadoc fixed.
040: *
041: * Revision 1.17 2002/11/26 11:23:30 lipp
042: * Modified RemoteException comment.
043: *
044: * Revision 1.16 2002/11/04 14:51:05 barzik
045: * extended to allow removing a process
046: *
047: * Revision 1.15 2002/10/22 13:33:49 lipp
048: * Upgraded return value of lookupProcess.
049: *
050: * Revision 1.14 2002/09/19 14:37:37 lipp
051: * Using WorkflowService.release now and optimized process definition
052: * storage.
053: *
054: * Revision 1.13 2002/09/17 16:12:40 lipp
055: * Removed two not really needed Exceptions.
056: *
057: * Revision 1.12 2002/09/08 19:19:18 lipp
058: * Replaced process type with process manager.
059: *
060: * Revision 1.11 2002/08/26 20:23:13 lipp
061: * Lots of method renames.
062: *
063: * Revision 1.10 2002/08/21 22:06:47 lipp
064: * Finished transition to ProcessMgrStub.
065: *
066: * Revision 1.9 2002/07/24 08:04:42 huaiyang
067: * doccheck.
068: *
069: * Revision 1.8 2002/07/24 05:48:16 huaiyang
070: * javadocs added.
071: *
072: * Revision 1.7 2002/07/05 08:56:16 lipp
073: * Removed processByKey, was leading the wrong way...
074: *
075: * Revision 1.6 2002/07/04 21:16:11 lipp
076: * Added processByKey method.
077: *
078: * Revision 1.5 2002/06/17 14:43:34 lipp
079: * New methods to access activity info.
080: *
081: * Revision 1.4 2002/05/28 09:53:49 huaiyang
082: * Improved documentation.
083: *
084: * Revision 1.3 2002/04/03 12:53:04 lipp
085: * JavaDoc fixes.
086: *
087: * Revision 1.2 2002/02/04 16:06:49 huaiyang
088: * Add the method of processMgr.
089: *
090: * Revision 1.1 2002/01/15 15:38:24 robert
091: * replace ProcessDirectory interface from workflow/domain to workflow/api
092: *
093: * Revision 1.4 2002/01/14 15:46:24 lipp
094: * Put some methods of ProcessDirectory in workflow.domain.
095: *
096: */
097: package de.danet.an.workflow.api;
098:
099: import java.util.Collection;
100:
101: import java.rmi.RemoteException;
102:
103: import de.danet.an.workflow.omgcore.WfObject;
104: import de.danet.an.workflow.omgcore.WfProcess;
105:
106: /**
107: * Client interface for the process directory.
108: */
109: public interface ProcessDirectory extends WfObject {
110:
111: /**
112: * This operation method returns a collection of the
113: * defined process types as Strings.
114: *
115: * @return collection of String
116: * @throws RemoteException if a system-level error occurs.
117: */
118: Collection processMgrNames() throws RemoteException;
119:
120: /**
121: * This operation method delivers a collection of all known
122: * processes. The objects of the collection are
123: * remote interface of type
124: * {@link de.danet.an.workflow.api.Process
125: * <code>Process</code>}.
126: *
127: * @return collection of
128: * {@link de.danet.an.workflow.api.Process <code>Process</code>}
129: * @throws RemoteException if a system-level error occurs.
130: */
131: Collection processes() throws RemoteException;
132:
133: /**
134: * This method finds the process identified by the given
135: * type and key.
136: *
137: * @param processMgrName type of the given process.
138: * @param processKey key of the process.
139: * @return the process found.
140: * @throws InvalidKeyException if no such process can be
141: * found.
142: * @throws RemoteException if a system-level error occurs.
143: */
144: Process lookupProcess(String processMgrName, String processKey)
145: throws InvalidKeyException, RemoteException;
146:
147: /**
148: * This method returns the activity identified be the given unique
149: * key.
150: *
151: * @param key denotes the activity to be looked up.
152: * @return the corresponding <code>Activity</code> value
153: * @throws RemoteException if a system-level error occurs.
154: * @exception InvalidKeyException if the activity specified by
155: * <code>key</code> cannot be found.
156: * @ejb.interface-method
157: * view-type="remote"
158: */
159: Activity lookupActivity(ActivityUniqueKey key)
160: throws InvalidKeyException, RemoteException;
161:
162: /**
163: * This method finds the activity identified be the given unique
164: * key and returns all available information about it. This is a
165: * shortcut for first looking up the activity and then retrieving
166: * the "essential" information about it.
167: *
168: * @param key denotes the activity to be looked up.
169: * @return the corresponding <code>Activity.Info</code> value
170: * @exception InvalidKeyException if the activity specified by
171: * <code>key</code> cannot be found.
172: * @throws RemoteException if a system-level error occurs.
173: */
174: Activity.Info lookupActivityInfo(ActivityUniqueKey key)
175: throws InvalidKeyException, RemoteException;
176:
177: /**
178: * Removes the given process. The process can be removed, only if
179: * it is in state "closed" or "not started".
180: *
181: * @param process the process to remove.
182: * @throws RemoteException if a system-level error occurs.
183: * @throws CannotRemoveException if the process cannot be removed,
184: * because it is still in progress.
185: */
186: void removeProcess(WfProcess process) throws RemoteException,
187: CannotRemoveException;
188: }
|