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 }