001: /*
002: * $Id: WfProcess.java,v 1.1 2003/08/17 09:29:33 ajzeneski Exp $
003: *
004: * Copyright (c) 2001, 2002 The Open For Business Project - www.ofbiz.org
005: *
006: * Permission is hereby granted, free of charge, to any person obtaining a
007: * copy of this software and associated documentation files (the "Software"),
008: * to deal in the Software without restriction, including without limitation
009: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
010: * and/or sell copies of the Software, and to permit persons to whom the
011: * Software is furnished to do so, subject to the following conditions:
012: *
013: * The above copyright notice and this permission notice shall be included
014: * in all copies or substantial portions of the Software.
015: *
016: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
017: * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
018: * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
019: * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
020: * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
021: * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
022: * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
023: *
024: */
025: package org.ofbiz.workflow;
026:
027: import java.util.Iterator;
028: import java.util.Map;
029: import java.util.List;
030:
031: /**
032: * WfProcess - Workflow Process Interface
033: *
034: * @author <a href="mailto:jaz@ofbiz.org">Andy Zeneski</a>
035: * @version $Revision: 1.1 $
036: * @since 2.0
037: */
038: public interface WfProcess extends WfExecutionObject {
039:
040: /**
041: * Gets the requester of this process
042: * @throws WfException
043: * @return requester of this process
044: */
045: public WfRequester requester() throws WfException;
046:
047: /**
048: * Sets the requester for this process
049: * @param newValue
050: * @throws WfException
051: * @throws CannotChangeRequester
052: */
053: public void setRequester(WfRequester newValue) throws WfException,
054: CannotChangeRequester;
055:
056: /**
057: * @throws WfException
058: * @return
059: */
060: public int howManyStep() throws WfException;
061:
062: /**
063: * @throws WfException
064: * @return
065: */
066: public Iterator getIteratorStep() throws WfException;
067:
068: /**
069: * @param maxNumber
070: * @throws WfException
071: * @return List of WfActivity objects.
072: */
073: public List getSequenceStep(int maxNumber) throws WfException;
074:
075: /**
076: * @param member
077: * @throws WfException
078: * @return
079: */
080: public boolean isMemberOfStep(WfActivity member) throws WfException;
081:
082: /**
083: * Gets the manager associated with this process
084: * @throws WfException
085: * @return
086: */
087: public WfProcessMgr manager() throws WfException;
088:
089: /**
090: * Gets the results of this process
091: * @throws WfException
092: * @throws ResultNotAvailable
093: * @return result Map of results from this process
094: */
095: public Map result() throws WfException, ResultNotAvailable;
096:
097: /**
098: * Receives activity results.
099: * @param activity WfActivity sending the results.
100: * @param results Map of the results.
101: * @throws WfException
102: */
103: public void receiveResults(WfActivity activity, Map results)
104: throws WfException;
105:
106: /**
107: * Receives notification when an activity has completed.
108: * @param activity WfActivity which has completed.
109: * @throws WfException
110: */
111: public void activityComplete(WfActivity activity)
112: throws WfException;
113:
114: /**
115: * Starts the Workflow process
116: * @throws WfException
117: * @throws CannotStart
118: * @throws AlreadyRunning
119: */
120: public void start() throws WfException, CannotStart, AlreadyRunning;
121:
122: /**
123: * Starts the Workflow process on the defined activity
124: * @param activityId The activity to start
125: * @throws WfException
126: * @throws CannotStart
127: * @throws AlreadyRunning
128: */
129: public void start(String activityId) throws WfException,
130: CannotStart, AlreadyRunning;
131:
132: /**
133: * @param state
134: * @throws WfException
135: * @throws InvalidState
136: * @return
137: */
138: public Iterator getActivitiesInState(String state)
139: throws WfException, InvalidState;
140:
141: } // interface WfProcessOperations
|