001: /*--
002:
003: Copyright (C) 2002-2005 Adrian Price.
004: All rights reserved.
005:
006: Redistribution and use in source and binary forms, with or without
007: modification, are permitted provided that the following conditions
008: are met:
009:
010: 1. Redistributions of source code must retain the above copyright
011: notice, this list of conditions, and the following disclaimer.
012:
013: 2. Redistributions in binary form must reproduce the above copyright
014: notice, this list of conditions, and the disclaimer that follows
015: these conditions in the documentation and/or other materials
016: provided with the distribution.
017:
018: 3. The names "OBE" and "Open Business Engine" must not be used to
019: endorse or promote products derived from this software without prior
020: written permission. For written permission, please contact
021: adrianprice@sourceforge.net.
022:
023: 4. Products derived from this software may not be called "OBE" or
024: "Open Business Engine", nor may "OBE" or "Open Business Engine"
025: appear in their name, without prior written permission from
026: Adrian Price (adrianprice@users.sourceforge.net).
027:
028: THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
029: WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
030: OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
031: DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT,
032: INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
033: (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
034: SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
035: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
036: STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
037: IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
038: POSSIBILITY OF SUCH DAMAGE.
039:
040: For more information on OBE, please see
041: <http://obe.sourceforge.net/>.
042:
043: */
044:
045: package org.obe.engine.persistence.memory;
046:
047: import org.obe.spi.model.ActivityInstance;
048: import org.obe.spi.model.WorkItem;
049: import org.wfmc.wapi.WMWorkItemState;
050:
051: import java.util.Date;
052:
053: /**
054: * Holds the persistent state of a work item.
055: *
056: * @author Anthony Eden
057: * @author Adrian Price
058: */
059: public class BasicWorkItem extends BasicAttributedEntity implements
060: WorkItem {
061: private final ActivityInstance _activityInstance;
062: private int _toolIndex;
063: private int _state;
064: private int _priority;
065: private Date _startedDate;
066: private Date _completedDate;
067: private Date _targetDate;
068: private Date _dueDate;
069: private String _name;
070: private String _performer;
071: private String _participant;
072:
073: public BasicWorkItem(String processDefinitionId,
074: String processInstanceId, String workItemId,
075: ActivityInstance activityInstance, int toolIndex) {
076:
077: super (WorkItem.propertyDescriptors, processDefinitionId,
078: processInstanceId, workItemId);
079: _activityInstance = activityInstance;
080: _toolIndex = toolIndex;
081: _name = activityInstance.getName();
082: _priority = activityInstance.getPriority();
083: }
084:
085: protected int getType() {
086: return WORKITEM_TYPE;
087: }
088:
089: public String getActivityDefinitionId() {
090: return _activityInstance.getActivityDefinitionId();
091: }
092:
093: public String getActivityInstanceId() {
094: return _activityInstance.getActivityInstanceId();
095: }
096:
097: public String getWorkItemId() {
098: return _entityId;
099: }
100:
101: public int getToolIndex() {
102: return _toolIndex;
103: }
104:
105: public void setToolIndex(int index) {
106: _toolIndex = index;
107: }
108:
109: public int getState() {
110: return _state;
111: }
112:
113: public void setState(int state) {
114: _state = state;
115: }
116:
117: public int getPriority() {
118: return _priority;
119: }
120:
121: public void setPriority(int priority) {
122: _priority = priority;
123: }
124:
125: public Date getStartedDate() {
126: return _startedDate;
127: }
128:
129: public void setStartedDate(Date startedDate) {
130: _startedDate = startedDate;
131: }
132:
133: public Date getCompletedDate() {
134: return _completedDate;
135: }
136:
137: public void setCompletedDate(Date completedDate) {
138: _completedDate = completedDate;
139: }
140:
141: public Date getTargetDate() {
142: return _targetDate;
143: }
144:
145: public void setTargetDate(Date targetDate) {
146: _targetDate = targetDate;
147: }
148:
149: public Date getDueDate() {
150: return _dueDate;
151: }
152:
153: public void setDueDate(Date dueDate) {
154: _dueDate = dueDate;
155: }
156:
157: public String getName() {
158: return _name;
159: }
160:
161: public void setName(String name) {
162: _name = name;
163: }
164:
165: public String getParticipant() {
166: return _participant;
167: }
168:
169: public void setParticipant(String participant) {
170: _participant = participant;
171: }
172:
173: public String getPerformer() {
174: return _performer;
175: }
176:
177: public void setPerformer(String performer) {
178: _performer = performer;
179: }
180:
181: public ActivityInstance getActivityInstance() {
182: return _activityInstance;
183: }
184:
185: public String toString() {
186: return "WorkItem[workItemId='" + _entityId
187: + "', activityInstanceId='" + getActivityInstanceId()
188: + "', processInstanceId='" + _processInstanceId
189: + "', processDefinitionId='" + _processDefinitionId
190: + "', activityDefinitionId='"
191: + getActivityDefinitionId() + "', name='" + _name
192: + ", toolIndex=" + _toolIndex + "', state="
193: + WMWorkItemState.valueOf(_state).stringValue()
194: + ", priority=" + _priority + ", performer='"
195: + _performer + ", participant='" + _participant
196: + "', startedDate=" + _startedDate + ", completedDate="
197: + _completedDate + ", dueDate=" + _dueDate + ']';
198: }
199: }
|