KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > tigris > scarab > workflow > Workflow


1 package org.tigris.scarab.workflow;
2
3 /* ================================================================
4  * Copyright (c) 2000-2002 CollabNet. All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are
8  * met:
9  *
10  * 1. Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12  *
13  * 2. Redistributions in binary form must reproduce the above copyright
14  * notice, this list of conditions and the following disclaimer in the
15  * documentation and/or other materials provided with the distribution.
16  *
17  * 3. The end-user documentation included with the redistribution, if
18  * any, must include the following acknowlegement: "This product includes
19  * software developed by Collab.Net <http://www.Collab.Net/>."
20  * Alternately, this acknowlegement may appear in the software itself, if
21  * and wherever such third-party acknowlegements normally appear.
22  *
23  * 4. The hosted project names must not be used to endorse or promote
24  * products derived from this software without prior written
25  * permission. For written permission, please contact info@collab.net.
26  *
27  * 5. Products derived from this software may not use the "Tigris" or
28  * "Scarab" names nor may "Tigris" or "Scarab" appear in their names without
29  * prior written permission of Collab.Net.
30  *
31  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
32  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
33  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
34  * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
35  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
37  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
38  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
39  * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
40  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
41  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
42  *
43  * ====================================================================
44  *
45  * This software consists of voluntary contributions made by many
46  * individuals on behalf of Collab.Net.
47  */

48
49 import java.util.Map JavaDoc;
50 import java.util.List JavaDoc;
51
52
53 import org.tigris.scarab.om.ScarabUser;
54 import org.tigris.scarab.om.Issue;
55 import org.tigris.scarab.om.Module;
56 import org.tigris.scarab.om.IssueType;
57 import org.tigris.scarab.om.AttributeOption;
58 import org.tigris.scarab.om.OptionWorkflow;
59 import org.tigris.scarab.om.Attribute;
60 import org.tigris.scarab.om.WorkflowRules;
61 import org.tigris.scarab.util.ScarabException;
62
63 /**
64  * This is the primary interface for workflow within Scarab.
65  * Implementations of this interface are loaded through the
66  * WorkflowFactory interface. It gets which class to load
67  * from the Scarab.properties file.
68  *
69  * @author <a HREF="mailto:elicia@tigris.org">Elicia David</a>
70  * @version $Id: Workflow.java 8054 2003-06-03 19:02:07Z elicia $
71  */

72 public interface Workflow
73 {
74     boolean canMakeTransition(ScarabUser user,
75                                      AttributeOption fromOption,
76                                      AttributeOption toOption,
77                                      Issue issue)
78         throws ScarabException;
79
80
81     String JavaDoc checkTransition(AttributeOption fromOption,
82                                   AttributeOption toOption,
83                                   Issue issue, Map JavaDoc newAttVals,
84                                   ScarabUser user)
85         throws ScarabException;
86         
87     String JavaDoc checkInitialTransition(AttributeOption toOption,
88                                          Issue issue, Map JavaDoc newAttVals,
89                                          ScarabUser user)
90         throws ScarabException;
91
92     OptionWorkflow getWorkflowForRole(AttributeOption fromOption,
93                                              AttributeOption toOption,
94                                              String JavaDoc roleName,
95                                              Module module,
96                                              IssueType issueType)
97         throws ScarabException;
98
99
100     List JavaDoc getWorkflowsForRoleList(AttributeOption fromOption,
101                                         AttributeOption toOption,
102                                         List JavaDoc roleNames, Module module,
103                                         IssueType issueType)
104         throws ScarabException;
105
106     List JavaDoc getWorkflowsForIssueType(IssueType issueType)
107         throws ScarabException;
108
109     void saveWorkflow(AttributeOption fromOption,
110                              AttributeOption toOption,
111                              String JavaDoc roleName, Module module,
112                              IssueType issueType, WorkflowRules workflowRule)
113         throws ScarabException;
114
115     OptionWorkflow inherit(AttributeOption fromOption,
116                                    AttributeOption toOption,
117                                    String JavaDoc roleName, Module module,
118                                    IssueType issueType)
119         throws ScarabException;
120
121     void resetWorkflow(AttributeOption fromOption,
122                               AttributeOption toOption,
123                               String JavaDoc roleName, Module module,
124                               IssueType issueType)
125         throws ScarabException;
126
127     void resetWorkflows(String JavaDoc roleName, Module module, IssueType issueType,
128                                boolean initial)
129         throws ScarabException;
130
131
132     void deleteWorkflowsForOption(AttributeOption option,
133                                          Module module, IssueType issueType)
134         throws ScarabException;
135
136     void deleteWorkflowsForAttribute(Attribute attr, Module module,
137                                             IssueType issueType)
138         throws ScarabException;
139
140     void addIssueTypeWorkflowToModule(Module module,
141                                             IssueType issueType)
142         throws ScarabException;
143
144     void copyIssueTypeWorkflows(IssueType issueType, IssueType newIssueType)
145         throws ScarabException;
146
147     void resetAllWorkflowsForIssueType(Module module,
148                                               IssueType issueType)
149         throws ScarabException;
150
151 }
152
Popular Tags