01: /*
02: * Copyright 2005-2006 The Kuali Foundation.
03: *
04: *
05: * Licensed under the Educational Community License, Version 1.0 (the "License");
06: * you may not use this file except in compliance with the License.
07: * You may obtain a copy of the License at
08: *
09: * http://www.opensource.org/licenses/ecl1.php
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17: package edu.iu.uis.eden.workgroup;
18:
19: import java.util.List;
20: import java.util.Map;
21:
22: import org.kuali.workflow.attribute.Extension;
23:
24: import edu.iu.uis.eden.XmlLoader;
25: import edu.iu.uis.eden.clientapp.vo.WorkgroupIdVO;
26: import edu.iu.uis.eden.exception.EdenUserNotFoundException;
27: import edu.iu.uis.eden.user.WorkflowUser;
28: import edu.iu.uis.eden.xml.export.XmlExporter;
29:
30: /**
31: * A service providing data access for {@link Workgroup}s.
32: *
33: * @author ewestfal
34: */
35: public interface WorkgroupService extends XmlLoader, XmlExporter {
36:
37: /**
38: * Retrieves the capabilities of this Workgroup service. This essentially provides the core with information
39: * on the kinds of activities which the Workgroup service can perform such as reporting, routing, etc. This
40: * is primarily used by the web-tier of the application to aid in delivery of web-based workgroup services.
41: */
42: public WorkgroupCapabilities getCapabilities();
43:
44: public Workgroup getBlankWorkgroup();
45:
46: public Extension getBlankWorkgroupExtension();
47:
48: public Workgroup getWorkgroup(GroupId groupId);
49:
50: /**
51: * Searches for core Workflow workgroups plus any workgroup extensions if
52: * loadWorkgroupExtensions is true. A workgroup extension allow searching and
53: * dynamic loading of workgroups maintained in Workflow-external systems.
54: * Workgroup extensions are specified and configured based on the needs of
55: * a given installation site.
56: */
57: public Workgroup getWorkgroup(GroupId groupId,
58: boolean loadWorkgroupExtensions);
59:
60: public Workgroup getWorkgroup(WorkgroupIdVO groupIdVO);
61:
62: public List<Workgroup> getUsersGroups(WorkflowUser member)
63: throws EdenUserNotFoundException;
64:
65: public List<Workgroup> getWorkgroupsGroups(Workgroup workgroup);
66:
67: public List search(Workgroup workgroup,
68: Map<String, String> extensionValues, boolean useWildCards);
69:
70: public List search(Workgroup workgroup,
71: Map<String, String> extensionValues, WorkflowUser user)
72: throws EdenUserNotFoundException;
73:
74: public boolean isUserMemberOfGroup(GroupId groupId,
75: WorkflowUser user) throws EdenUserNotFoundException;
76:
77: public Workgroup copy(Workgroup workgroup);
78:
79: public void removeNameFromCache(GroupNameId name);
80:
81: public void removeFromCacheById(WorkflowGroupId id);
82:
83: public void save(Workgroup workgroup);
84:
85: }
|