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: ExtProcess.java,v 1.6 2007/05/03 21:58:21 mlipp Exp $
021: *
022: * $Log: ExtProcess.java,v $
023: * Revision 1.6 2007/05/03 21:58:21 mlipp
024: * Internal refactoring for making better use of local EJBs.
025: *
026: * Revision 1.5 2006/09/29 12:32:09 drmlipp
027: * Consistently using WfMOpen as projct name now.
028: *
029: * Revision 1.4 2005/10/10 20:02:12 mlipp
030: * Synchronized with 1.3.3.
031: *
032: * Revision 1.3 2005/02/04 14:25:25 drmlipp
033: * Synchronized with 1.3rc2.
034: *
035: * Revision 1.2.2.2 2005/02/01 16:08:40 drmlipp
036: * Implemented deferred choice.
037: *
038: * Revision 1.2.2.1 2005/01/31 15:41:14 drmlipp
039: * Started implementation of deferred choice.
040: *
041: * Revision 1.2 2005/01/10 16:23:17 drmlipp
042: * Added missing serializability.
043: *
044: * Revision 1.1.1.4 2004/08/18 15:17:36 drmlipp
045: * Update to 1.2
046: *
047: * Revision 1.24 2004/07/14 11:24:51 lipp
048: * Fixed typo.
049: *
050: * Revision 1.23 2004/04/12 19:33:52 lipp
051: * Clarified application invocation interface.
052: *
053: * Revision 1.22 2004/03/25 14:41:46 lipp
054: * Added possibility to specify actual parameters as XML.
055: *
056: * Revision 1.21 2004/03/20 21:08:43 lipp
057: * Added access to requesting processes' channels.
058: *
059: * Revision 1.20 2004/03/12 12:19:53 lipp
060: * Javadoc fixes.
061: *
062: * Revision 1.19 2004/02/13 08:25:29 lipp
063: * Changed channel message data type to Map which is more appropriate.
064: *
065: * Revision 1.18 2004/02/12 13:49:07 lipp
066: * Renamed sendChannelMessage to submitChannelMessage to emphasize
067: * difference to deliverChannelMessage.
068: *
069: * Revision 1.17 2004/02/06 13:37:35 lipp
070: * Added channel close notification.
071: *
072: * Revision 1.16 2004/02/06 10:25:46 lipp
073: * Finshed Receiver.
074: *
075: * Revision 1.15 2004/01/30 14:36:29 lipp
076: * Partial implementation of message receipt.
077: *
078: * Revision 1.14 2003/12/16 16:46:25 lipp
079: * Let process close activities to avoid inconsistent transition manager
080: * states.
081: *
082: * Revision 1.13 2003/12/16 15:46:57 lipp
083: * Moved handleAuditEvent to common anchestor.
084: *
085: * Revision 1.12 2003/09/25 12:00:05 lipp
086: * Avoid client dependency on rhino.
087: *
088: * Revision 1.11 2003/09/25 11:01:20 lipp
089: * Fixed usage of jsScope (may not be used remotely).
090: *
091: * Revision 1.10 2003/09/23 14:29:40 lipp
092: * Fixed interface hierarchy.
093: *
094: * Revision 1.9 2003/09/19 13:09:28 lipp
095: * Removed abandon aiagin.
096: *
097: * Revision 1.8 2003/09/18 14:08:16 lipp
098: * Added abandon method to handle deadlines.
099: *
100: * Revision 1.7 2003/09/15 15:43:40 lipp
101: * Initial version of handling exceptions in transition manager.
102: *
103: * Revision 1.6 2003/09/04 08:46:44 lipp
104: * Fixed client dependency on rhino.jar.
105: *
106: * Revision 1.5 2003/06/27 08:51:46 lipp
107: * Fixed copyright/license information.
108: *
109: * Revision 1.4 2003/05/14 13:05:04 lipp
110: * Made creator of subprocess inherited attribute.
111: *
112: * Revision 1.3 2003/05/05 07:04:51 lipp
113: * Handling parameters for sub-flow now.
114: *
115: * Revision 1.2 2003/05/02 14:55:59 lipp
116: * Resolved some more package dependencies.
117: *
118: * Revision 1.1 2003/04/26 18:56:24 lipp
119: * Moved extended interfaces to own package.
120: *
121: * Revision 1.2 2003/04/03 07:11:11 lipp
122: * Added missing RemoteException.
123: *
124: * Revision 1.1 2003/03/13 14:06:08 lipp
125: * Started implementation of subflow.
126: *
127: */
128: package de.danet.an.workflow.apix;
129:
130: import java.io.Serializable;
131: import java.rmi.RemoteException;
132: import java.util.Map;
133:
134: import de.danet.an.workflow.api.Process;
135: import de.danet.an.workflow.omgcore.InvalidDataException;
136: import de.danet.an.workflow.omgcore.WfAuditEvent;
137:
138: /**
139: * This interface defines additional methods known to the domain
140: * classes only.
141: *
142: * @author <a href="mailto:lipp@danet.de">Michael Lipp</a>
143: * @version $Revision: 1.6 $
144: */
145:
146: public interface ExtProcess extends Process, Serializable {
147:
148: /**
149: * Return the process this process is a subflow of.
150: * @return the process or <code>null</code> if this process is not
151: * a subflow
152: * @throws RemoteException if a system-level error occurs.
153: */
154: Process requestingProcess() throws RemoteException;
155:
156: /**
157: * Deliver a message on the given channel to a receiver tool
158: * listening on that channel.
159: *
160: * @param channel the channel name
161: * @param message the message
162: * @return <code>true</code> if the mesage could be delivered,
163: * <code>false</code> if no activity was listening
164: * @throws InvalidDataException if the message contains invalid data
165: * @throws RemoteException if a system level error occurs.
166: */
167: boolean deliverChannelMessage(String channel, Map message)
168: throws InvalidDataException, RemoteException;
169:
170: /**
171: * Deliver a message on the given channel to a receiver tool
172: * listening on that channel. If no tool is listening, store the
173: * message.
174: *
175: * @param channel the channel name
176: * @param message the message
177: * @throws InvalidDataException if the message contains invalid data
178: * @throws RemoteException if a system level error occurs.
179: */
180: void submitChannelMessage(String channel, Map message)
181: throws InvalidDataException, RemoteException;
182:
183: /**
184: * Looks for a message on the given channel and if found returns it.
185: *
186: * @param channel the channel name
187: * @return the message or <code>null</code>
188: * @throws RemoteException if a system level error occurs.
189: */
190: Map lookForMessage(String channel) throws RemoteException;
191:
192: /**
193: * Handles the given audit event.
194: * @param event the event.
195: * @throws RemoteException
196: * if a system-level error occurs
197: */
198: void handleAuditEvent(WfAuditEvent event) throws RemoteException;
199: }
|