001: /*
002: * The contents of this file are subject to the
003: * Mozilla Public License Version 1.1 (the "License");
004: * you may not use this file except in compliance with the License.
005: * You may obtain a copy of the License at http://www.mozilla.org/MPL/
006: *
007: * Software distributed under the License is distributed on an "AS IS"
008: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
009: * See the License for the specific language governing rights and
010: * limitations under the License.
011: *
012: * The Initial Developer of the Original Code is Simulacra Media Ltd.
013: * Portions created by Simulacra Media Ltd are Copyright (C) Simulacra Media Ltd, 2004.
014: *
015: * All Rights Reserved.
016: *
017: * Contributor(s):
018: */
019: package org.openharmonise.workfloweditor.model;
020:
021: import java.util.ArrayList;
022: import java.util.List;
023:
024: /**
025: * A workflow stage instance.
026: *
027: * @author Matthew Large
028: * @version $Revision: 1.1 $
029: *
030: */
031: public class WorkflowStage {
032:
033: /**
034: * List of {@link WorkflowStage} objects.
035: */
036: private ArrayList m_dependancies = new ArrayList();
037:
038: /**
039: * true if a stage is mandatory.
040: */
041: private boolean m_bMandatory = false;
042:
043: /**
044: * true if a stage will remain check after a revision.
045: */
046: private boolean m_bInheritance = false;
047:
048: /**
049: * Workflow model this is part of.
050: */
051: private WorkflowModel m_model = null;
052:
053: /**
054: * List of {@link Role} objects.
055: */
056: private ArrayList m_roles = new ArrayList();
057:
058: /**
059: * Definition for this workflow stage.
060: */
061: private WorkflowStageDefinition m_definition = null;
062:
063: protected WorkflowStage() {
064: super ();
065: }
066:
067: /**
068: * Constructs a new workflow stage.
069: *
070: * @param definition Definition
071: * @param model Model
072: */
073: public WorkflowStage(WorkflowStageDefinition definition,
074: WorkflowModel model) {
075: super ();
076: this .m_model = model;
077: this .m_definition = definition;
078: }
079:
080: /**
081: * Constructs a new workflow stage.
082: *
083: * @param definition Definition
084: * @param dependancies List of {@link WorkflowStage} objects
085: * @param model Model
086: */
087: public WorkflowStage(WorkflowStageDefinition definition,
088: List dependancies, WorkflowModel model) {
089: this (definition, model);
090: this .m_dependancies.addAll(dependancies);
091: }
092:
093: /**
094: * Returns the definition.
095: *
096: * @return Definition
097: */
098: public WorkflowStageDefinition getDefinition() {
099: return this .m_definition;
100: }
101:
102: /**
103: * Sets the definition.
104: *
105: * @param definition Definition
106: */
107: public void setDefinition(WorkflowStageDefinition definition) {
108: this .m_definition = definition;
109: }
110:
111: /**
112: * Adds a role.
113: *
114: * @param role Role to add
115: */
116: public void addRole(Role role) {
117: this .m_roles.add(role);
118: }
119:
120: /**
121: * Removes a role.
122: *
123: * @param role Role to remove
124: */
125: public void removeRole(Role role) {
126: this .m_roles.remove(role);
127: }
128:
129: /**
130: * Returns a list of the roles.
131: *
132: * @return List of {@link Role} objects
133: */
134: public List getRoles() {
135: return (List) this .m_roles.clone();
136: }
137:
138: /**
139: * Checks if this stage is inheritable.
140: *
141: * @return true if this stage is inheritable
142: */
143: public boolean isInheritable() {
144: return this .m_bInheritance;
145: }
146:
147: /**
148: * Sets if this stage is inheritable.
149: *
150: * @param bInheritable true is this stage is inheritable
151: */
152: public void setInheritable(boolean bInheritable) {
153: this .m_bInheritance = bInheritable;
154: }
155:
156: /**
157: * Checks if this stage is madatory.
158: *
159: * @return true if this stage is mandatory
160: */
161: public boolean isMandatory() {
162: return this .m_bMandatory;
163: }
164:
165: /**
166: * Sets if this stage is mandatory.
167: *
168: * @param bMandatory true to make this stage mandatory
169: */
170: public void setMandatory(boolean bMandatory) {
171: this .m_bMandatory = bMandatory;
172: }
173:
174: /**
175: * Adds a dependency.
176: *
177: * @param stage Stage to add
178: */
179: public void addDependancy(WorkflowStage stage) {
180: this .m_dependancies.add(stage);
181: }
182:
183: /**
184: * Removes a dependency.
185: *
186: * @param stage Stage to remove
187: */
188: public void removeDependancy(WorkflowStage stage) {
189: this .m_dependancies.remove(stage);
190: }
191:
192: /**
193: * Returns a list of all dependencies.
194: *
195: * @return List of {@link WorkflowStage} objects
196: */
197: public List getDependancies() {
198: return (List) this .m_dependancies.clone();
199: }
200:
201: /**
202: * Returns the title.
203: *
204: * @return Title
205: */
206: public String getTitle() {
207: return this .m_definition.getTitle();
208: }
209:
210: /**
211: * Returns the model.
212: *
213: * @return Model
214: */
215: public WorkflowModel getModel() {
216: return this .m_model;
217: }
218:
219: /**
220: * Sets the model.
221: *
222: * @param model Model
223: */
224: public void setModel(WorkflowModel model) {
225: this.m_model = model;
226: }
227:
228: }
|