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: ExtActivity.java,v 1.13 2007/05/03 21:58:22 mlipp Exp $
021: *
022: * $Log: ExtActivity.java,v $
023: * Revision 1.13 2007/05/03 21:58:22 mlipp
024: * Internal refactoring for making better use of local EJBs.
025: *
026: */
027: package de.danet.an.workflow.apix;
028:
029: import java.io.Serializable;
030:
031: import java.util.Date;
032:
033: import java.rmi.RemoteException;
034:
035: import de.danet.an.workflow.omgcore.NotRunningException;
036: import de.danet.an.workflow.omgcore.TransitionNotAllowedException;
037: import de.danet.an.workflow.omgcore.WfAuditEvent;
038: import de.danet.an.workflow.spis.aii.ResultProvider.ExceptionResult;
039:
040: import de.danet.an.workflow.api.Activity;
041:
042: /**
043: * This interface defines some additional methods of <code>Activity</code>s
044: * that are only available within the implementation (not part of the API).
045: *
046: * @author <a href="mailto:lipp@danet.de"></a>
047: * @version $Revision: 1.13 $
048: */
049:
050: public interface ExtActivity extends Activity, Serializable {
051:
052: /**
053: * Return the start time of the activity.
054: * @return result
055: * @throws NotRunningException if the activity has not been started yet
056: * @throws RemoteException if a system-level error occurs
057: */
058: Date startTime() throws RemoteException, NotRunningException;
059:
060: /**
061: * Returns a <code>WfAuditEvent</code> containing information about the
062: * activity and its container, only.
063: *
064: * @return the event containing the required information.
065: * @throws RemoteException
066: * if a system-level error occurs.
067: */
068: WfAuditEvent auditEventBase() throws RemoteException;
069:
070: /**
071: * Like {@link Activity.abandon(String) <code>abandon(String)</code>} but
072: * may also suspend the activity.
073: *
074: * @param result
075: * exception information
076: * @throws RemoteException
077: * if a system-level error occurs
078: * @throws TransitionNotAllowedException
079: * if the activity is not executing a tool
080: */
081: void abandon(ExceptionResult result) throws RemoteException,
082: TransitionNotAllowedException;
083:
084: /**
085: * Handles the given audit event.
086: * @param event the event.
087: * @throws RemoteException
088: * if a system-level error occurs
089: */
090: void handleAuditEvent(WfAuditEvent event) throws RemoteException;
091:
092: /**
093: * Set the channel this activity is waiting on. Used solemnly by the
094: * receiver tool.
095: *
096: * @param procKey
097: * the process' key
098: * @param channel
099: * the channel name
100: * @throws RemoteException
101: * if a system-level error occurs.
102: */
103: void waitOnChannel(String procKey, String channel)
104: throws RemoteException;
105:
106: }
|