001: /*
002: * This file is part of the WfMOpen project.
003: * Copyright (C) 2001-2004 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: ProcessMgr.java,v 1.3 2006/11/19 21:53:47 mlipp Exp $
021: *
022: * $Log: ProcessMgr.java,v $
023: * Revision 1.3 2006/11/19 21:53:47 mlipp
024: * Finished support for native Java types.
025: *
026: * Revision 1.2 2006/09/29 12:32:07 drmlipp
027: * Consistently using WfMOpen as projct name now.
028: *
029: * Revision 1.1.1.3 2004/08/18 15:17:36 drmlipp
030: * Update to 1.2
031: *
032: * Revision 1.8 2004/02/12 16:13:53 lipp
033: * Renamed method for finding processes by data item value.
034: *
035: * Revision 1.7 2004/02/09 15:15:29 lipp
036: * Support for looking up processes by the value of a data item.
037: *
038: * Revision 1.6 2004/01/19 12:30:58 lipp
039: * SchemaType now supported properly.
040: *
041: * Revision 1.5 2003/06/27 08:51:46 lipp
042: * Fixed copyright/license information.
043: *
044: * Revision 1.4 2003/04/24 20:50:13 lipp
045: * Fixed some warnings.
046: *
047: * Revision 1.3 2002/11/26 11:23:30 lipp
048: * Modified RemoteException comment.
049: *
050: * Revision 1.2 2002/02/03 13:22:38 lipp
051: * New method ProcessMgr.processByKey.
052: *
053: * Revision 1.1 2002/01/15 15:27:04 robert
054: * replace ProcessMgr interface from workflow/domain to workflow/api
055: *
056: * Revision 1.5 2001/10/06 09:45:52 lipp
057: * Seperated interface and implementation of domain classes.
058: *
059: * Revision 1.4 2001/08/17 10:00:24 montag
060: * clean up classes and javadoc
061: *
062: * Revision 1.3 2001/08/13 15:33:17 montag
063: * basic process creation
064: *
065: * Revision 1.2 2001/08/02 14:48:07 montag
066: * ProcessMgr changed.
067: *
068: * Revision 1.1 2001/08/02 09:35:54 montag
069: * priority and domain classes
070: *
071: *
072: */
073: package de.danet.an.workflow.api;
074:
075: import java.util.Collection;
076:
077: import java.rmi.RemoteException;
078:
079: import de.danet.an.workflow.omgcore.WfProcessMgr;
080:
081: /**
082: * Interface <code>ProcessMgr</code> adds some functions to the
083: * {@link WfProcessMgr OMG process manager}.<P>
084: *
085: * The meta information returned by <code>contextSignature</code> and
086: * <code>resultSignature</code> defined in <code>WfProcessMgr</code>
087: * uses Java classes to represents
088: * primitive types, as specified for {@link
089: * de.danet.an.workflow.omgcore.ProcessDataInfo
090: * <code>ProcessDataInfo</code>}. In addition the type of a data item
091: * can be indicated as
092: * <dl>
093: * <dt><code>org.w3c.dom.Element.class</code></dt>
094: * <dd>denotes XML with unknown structure. Values of this type are
095: * represented as instances of <code>SAXEventBuffer</code>.</dd>
096: * <dt>an instance of <code>SAXEventBuffer</code></dt>
097: * <dd>denotes XML with the known structure represented by the XML in the
098: * event buffer. Values of this type are
099: * represented as instances of <code>SAXEventBuffer</code>.</dd>
100: * <dt>an instance of <code>ExternalReference</code></dt>
101: * <dd>denotes the type as specified in the process definition. If a
102: * Java type is specified as fully qualified Java class name
103: * in the localtion attribute, "java:" is prepended as protocol and
104: * values are of the specified type. Else values of this type are
105: * represented as instances of <code>SAXEventBuffer</code>.</dd>
106: * </dl>
107: */
108: public interface ProcessMgr extends WfProcessMgr {
109:
110: /**
111: * Returns the {@link Process <code>Process</code>} with the given key.
112: * The OMG interface only defines a {@link WfProcessMgr#processes
113: * method for listing all processes} associated with a process manager.
114: * While, of course, one could select the process with a certain key
115: * from that list, this would be rather inefficient.
116: * @param key the
117: * {@link de.danet.an.workflow.omgcore.WfProcess#key key} of the process
118: * @return the process associated with the key
119: * @throws InvalidKeyException if no process with the given key
120: * exists
121: * @throws RemoteException if a system-level error occurs
122: */
123: Process processByKey(String key) throws RemoteException,
124: InvalidKeyException;
125:
126: /**
127: * Returns all {@link Process <code>Process</code>}es that have a
128: * given value in a particular process data item. Note that this
129: * method may only be used for data items of type string.
130: *
131: * @param itemName the name of the process data item
132: * @param itemValue the value of the process data item
133: * @return the collection of processes
134: * @throws RemoteException if a system-level error occurs
135: */
136: Collection findByDataItem(String itemName, String itemValue)
137: throws RemoteException;
138: }
|