1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package net.sf.oxclient.service;
17
18 import java.util.List;
19 import java.util.Map;
20
21 import net.sf.oval.constraint.NotNull;
22 import net.sf.oval.guard.Guarded;
23 import net.sf.oxclient.ICommunicationManager;
24 import net.sf.oxclient.IFolderModule;
25 import net.sf.oxclient.IGroupwareModule;
26 import net.sf.oxclient.IGroupwareSession;
27 import net.sf.oxclient.IQuery;
28 import net.sf.oxclient.IUser;
29
30 import org.springframework.beans.factory.annotation.Required;
31
32
33
34
35
36 @Guarded
37 public abstract class AbsGroupwareSession<FolderBean> implements IGroupwareSession<FolderBean> {
38
39 private ICommunicationManager communicationManager = null;
40
41 private String sessionId = null;
42
43 private Map<String, AbsGroupwareModule<?, FolderBean>> moduleMap = null;
44
45
46
47
48 @Required
49 public void setModuleMap(
50 @NotNull final Map<String, AbsGroupwareModule<?, FolderBean>> moduleMap) {
51 this.moduleMap = moduleMap;
52 }
53
54
55
56
57 public ICommunicationManager getCommunicationManager() {
58 return this.communicationManager;
59 }
60
61
62
63
64 @Required
65 public void setCommunicationManager(@NotNull final ICommunicationManager communicationManager) {
66 this.communicationManager = communicationManager;
67 }
68
69
70
71
72 public IQuery createQuery(@NotNull final String module) {
73 return this.communicationManager.createQuery(module);
74 }
75
76
77
78
79 public IGroupwareModule<?, FolderBean> getModule(@NotNull final String modulename) {
80 final IGroupwareModule<?, FolderBean> result = this.moduleMap.get(modulename);
81 if (result == null) {
82 throw new IllegalArgumentException("unknowen module '" + modulename + "'");
83 }
84 return result;
85 }
86
87
88
89
90 @SuppressWarnings("unchecked")
91 public List<FolderBean> getRootFolders() {
92 final IFolderModule<FolderBean> folderModule =
93 (IFolderModule<FolderBean>) getModule("folder");
94 return folderModule.getRootFolders();
95 }
96
97
98
99
100 public String getSessionId() {
101 return this.sessionId;
102 }
103
104
105
106
107
108
109
110 public void setSessionId(final String sessionId) {
111 this.sessionId = sessionId;
112 }
113
114
115
116
117 public IUser getUser() {
118 return this.communicationManager.getUser();
119 }
120
121 }