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: WfResource.java,v 1.4 2006/10/02 10:09:02 mlipp Exp $
021: *
022: * $Log: WfResource.java,v $
023: * Revision 1.4 2006/10/02 10:09:02 mlipp
024: * Fixed typo.
025: *
026: * Revision 1.3 2006/10/02 10:08:16 mlipp
027: * Fixed typo.
028: *
029: * Revision 1.2 2006/09/29 12:32:09 drmlipp
030: * Consistently using WfMOpen as projct name now.
031: *
032: * Revision 1.1.1.2 2004/08/18 15:17:38 drmlipp
033: * Update to 1.2
034: *
035: * Revision 1.10 2004/06/14 19:37:20 lipp
036: * Fixed assignment functions and cleaned up assignment related
037: * interfaces.
038: *
039: * Revision 1.9 2003/06/27 08:51:45 lipp
040: * Fixed copyright/license information.
041: *
042: * Revision 1.8 2003/04/26 16:11:14 lipp
043: * Moved some classes to reduce package dependencies.
044: *
045: * Revision 1.7 2002/11/26 11:23:29 lipp
046: * Modified RemoteException comment.
047: *
048: * Revision 1.6 2002/07/24 08:04:42 huaiyang
049: * doccheck.
050: *
051: * Revision 1.5 2001/12/09 14:01:26 lipp
052: * Improved documentation.
053: *
054: * Revision 1.4 2001/08/24 12:58:30 lipp
055: * CR/NL fixes
056: *
057: * Revision 1.3 2001/07/26 21:00:08 lipp
058: * Added Exceptions
059: *
060: * Revision 1.2 2001/07/26 15:57:40 lipp
061: * Methods returning Collections renamed.
062: *
063: * Revision 1.1 2001/07/06 08:51:49 lipp
064: * Moved from domain to omgcore
065: *
066: * Revision 1.3 2001/07/05 14:15:10 lipp
067: * Rather complete version.
068: *
069: * Revision 1.2 2001/07/04 09:51:02 lipp
070: * Fixed Copyright notice
071: *
072: */
073: package de.danet.an.workflow.omgcore;
074:
075: import java.rmi.RemoteException;
076: import java.util.Collection;
077:
078: /**
079: * <code>WfResource</code> is an abstraction that represents a person or
080: * thing that will potentially accept an assignment to an activity.
081: **/
082: public interface WfResource extends WfObject {
083:
084: /**
085: * This method returns the
086: * {@link WfAssignment <code>WfAssignments</code>}s
087: * associated with a resource.
088: *
089: * @return the associated {@link WfAssignment <code>WfAssignments</code>}s.
090: * @throws RemoteException if a system-level error occurs.
091: */
092: Collection workItems() throws RemoteException;
093:
094: /**
095: * Checks if a given {@link WfAssignment <code>WfAssignment</code>} is
096: * associated with this resource.
097: *
098: * @param member the given <code>WfAssignment</code>.
099: * @return <code>true</code> if the association exists.
100: * @throws RemoteException if a system-level error occurs.
101: */
102: boolean isMemberOfWorkItems(WfAssignment member)
103: throws RemoteException;
104:
105: /**
106: * Returns the resource key. The resource key identifies a resource
107: * within a given business domain. It is assumed that resources are
108: * defined in the same business domain as the workflow process
109: * they are associated with.<P>
110: *
111: * The key is set when the object is initialized; modification of the
112: * key can be done in the context of a resource management facility.
113: *
114: * @return the resource key.
115: * @throws RemoteException if a system-level error occurs.
116: */
117: String resourceKey() throws RemoteException;
118:
119: /**
120: * Returns a human readable, descriptive name of the resource.
121: *
122: * @return the name of the resource.
123: * @throws RemoteException if a system-level error occurs.
124: */
125: String resourceName() throws RemoteException;
126:
127: /**
128: * Signals to the resource that it is no longer needed for a
129: * specific assignment. It is assumed that this operation is invoked
130: * when an assignment is deleted or when an assignment is reassigned
131: * to another resource.<P>
132: *
133: * (The description from the OMG specification is a bit unclear
134: * about the nature of this method. Is it used to <em>signal</em>
135: * the release, or does it <em>cause</em> the release, i.e. does
136: * it update the storage of assignments. Due to the fact that this
137: * method throws <code>NotAssignedException</code>, which is
138: * possible only if this method interfaces with the assignment
139: * storage, we have opted for the latter.)
140: *
141: * @param fromAssignment the specific assignment.
142: * @param releaseInfo specifies additional information on the
143: * reason for realizing the resource as input.
144: * @throws NotAssignedException if the resource is not associated
145: * with the given assignment.
146: * @throws RemoteException if a system-level error occurs.
147: */
148: void release(WfAssignment fromAssignment, String releaseInfo)
149: throws RemoteException, NotAssignedException;
150:
151: /**
152: * @clientCardinality 1
153: * @supplierCardinality 0..*
154: * @clientQualifier assignee
155: * @supplierQualifier work list
156: */
157: /*#WfAssignment lnkWfAssignment;*/
158: }
|