01: /*
02: * This file is part of the WfMOpen project.
03: * Copyright (C) 2001-2003 Danet GmbH (www.danet.de), GS-AN.
04: * All rights reserved.
05: *
06: * This program is free software; you can redistribute it and/or modify
07: * it under the terms of the GNU General Public License as published by
08: * the Free Software Foundation; either version 2 of the License, or
09: * (at your option) any later version.
10: *
11: * This program is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14: * GNU General Public License for more details.
15: *
16: * You should have received a copy of the GNU General Public License
17: * along with this program; if not, write to the Free Software
18: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19: *
20: * $Id: ProcessDataWithParams.java,v 1.2 2006/09/29 12:32:08 drmlipp Exp $
21: *
22: * $Log: ProcessDataWithParams.java,v $
23: * Revision 1.2 2006/09/29 12:32:08 drmlipp
24: * Consistently using WfMOpen as projct name now.
25: *
26: * Revision 1.1.1.1 2003/06/30 20:05:15 drmlipp
27: * Initial import
28: *
29: * Revision 1.2 2003/06/27 08:51:45 lipp
30: * Fixed copyright/license information.
31: *
32: * Revision 1.1 2003/05/07 14:45:50 lipp
33: * Implemented synchronous subflow.
34: *
35: */
36: package de.danet.an.workflow.domain;
37:
38: import de.danet.an.workflow.api.DefaultProcessData;
39: import de.danet.an.workflow.api.FormalParameter;
40:
41: /**
42: * This class is used to return the results from a sub-process
43: * invocation to the invoking activity. There is a nasty problem in
44: * doing this which is solved by this class. <P>
45: *
46: * In order to merge the results properly, the calling activity must
47: * know the formal parameters of the called process. All it does know,
48: * however, are the package and process ids of the called process, it
49: * does not record the key of the called process.<P>
50: *
51: * While normally the package and process ids may be used to lookup
52: * the process definition and retrieve the formal parameters, it may
53: * happen that the process definition of the called process has been
54: * deleted while the process was running.<P>
55: *
56: * To circumvent this, the called process (which always knows about
57: * its formal parameters) piggybacks the information about the formal
58: * parameters on the process data.<P>
59: *
60: * (Anybody wanting to start a design discussion here should start it
61: * with proposing a better solution.)
62: *
63: * @author <a href="mailto:lipp@danet.de">Michael Lipp</a>
64: * @version $Revision: 1.2 $
65: */
66:
67: public class ProcessDataWithParams extends DefaultProcessData {
68:
69: private FormalParameter[] formalParams;
70:
71: /**
72: * Creates an instance of <code>ProcessDataWithParams</code>
73: * with the given formal parameters.
74: * @param fps the formal parameters
75: */
76: public ProcessDataWithParams(FormalParameter[] fps) {
77: formalParams = fps;
78: }
79:
80: /**
81: * Return the formal parameters.
82: * @return the formal parameters
83: */
84: public FormalParameter[] formalParameters() {
85: return formalParams;
86: }
87:
88: }
|