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: ToolInvocationHandler.java,v 1.4 2007/05/03 21:58:18 mlipp Exp $
021: *
022: * $Log: ToolInvocationHandler.java,v $
023: * Revision 1.4 2007/05/03 21:58:18 mlipp
024: * Internal refactoring for making better use of local EJBs.
025: *
026: * Revision 1.3 2006/09/29 12:32:08 drmlipp
027: * Consistently using WfMOpen as projct name now.
028: *
029: * Revision 1.2 2005/08/25 13:24:22 drmlipp
030: * Synchronized with 1.3.1p6.
031: *
032: * Revision 1.1.1.2.6.1 2005/08/24 14:14:52 drmlipp
033: * Started implementation of exception mapping.
034: *
035: * Revision 1.1.1.2 2003/12/19 13:01:28 drmlipp
036: * Updated to 1.1rc1
037: *
038: * Revision 1.9 2003/12/08 14:08:13 lipp
039: * Execute tool termination in own transaction.
040: *
041: * Revision 1.8 2003/06/27 08:51:45 lipp
042: * Fixed copyright/license information.
043: *
044: * Revision 1.7 2003/05/06 13:21:30 lipp
045: * Resolved cyclic dependency.
046: *
047: * Revision 1.6 2002/12/19 21:37:43 lipp
048: * Reorganized interfaces.
049: *
050: * Revision 1.5 2002/11/26 11:23:30 lipp
051: * Modified RemoteException comment.
052: *
053: * Revision 1.4 2002/10/08 13:52:35 lipp
054: * Merged branch new-state-handling.
055: *
056: * Revision 1.3.2.1 2002/10/08 13:04:34 lipp
057: * Reimplementing state handling, activity start to complete cycle.
058: *
059: * Revision 1.3 2002/10/02 10:58:13 lipp
060: * Modifications for tool invocation.
061: *
062: * Revision 1.2 2002/09/26 20:03:36 lipp
063: * Reorganized tool invocation.
064: *
065: * Revision 1.1 2002/09/25 15:16:34 lipp
066: * Reorganized tool invocation layer dependencies.
067: *
068: */
069: package de.danet.an.workflow.domain;
070:
071: import java.util.Map;
072:
073: import de.danet.an.workflow.api.Activity;
074: import de.danet.an.workflow.api.ActivityUniqueKey;
075: import de.danet.an.workflow.apix.ExtActivity;
076: import de.danet.an.workflow.internalapi.ExtApplication;
077: import de.danet.an.workflow.internalapi.ToolInvocationException;
078: import de.danet.an.workflow.spis.aii.ApplicationNotStoppedException;
079:
080: /**
081: * Invoking a tool can have a complex relationship with the
082: * persistence layer as it involves transactional aspects. It is
083: * therefore delegated to the persistence layer by obtaining an object
084: * that implements this interface.
085: *
086: * @author <a href="mailto:lipp@danet.de"></a>
087: * @version $Revision: 1.4 $
088: */
089:
090: public interface ToolInvocationHandler {
091:
092: /**
093: * Invoke the tool. If the implementing class supports it,
094: * invocation may be asynchronous.
095: *
096: * @param appl the application description of the tool.
097: * @param auk the activity's unique key
098: * @param act the <code>WfActivity</code>.
099: * @param params the invocation parameters.
100: * @throws ToolInvocationException if tool invocation fails.
101: */
102: void invoke(ExtApplication appl, ActivityUniqueKey auk,
103: ExtActivity act, Map params) throws ToolInvocationException;
104:
105: /**
106: * Terminate the tool.
107: *
108: * @param appl the application description of the tool.
109: * @param act the <code>WfActivity</code>.
110: * @throws ApplicationNotStoppedException if termination is not possible.
111: */
112: void terminate(ExtApplication appl, Activity act)
113: throws ApplicationNotStoppedException;
114: }
|