615f32a467b18299cf29b7c66e54511650116332
[taxeditor.git] / eu.etaxonomy.taxeditor.cdmlib / src / main / java / eu / etaxonomy / taxeditor / session / NullSession.java
1 // $Id$
2 /**
3 * Copyright (C) 2015 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10 package eu.etaxonomy.taxeditor.session;
11
12 import java.util.Collection;
13 import java.util.List;
14 import java.util.Map;
15 import java.util.UUID;
16
17 import net.sf.ehcache.statistics.LiveCacheStatistics;
18 import eu.etaxonomy.cdm.api.service.IService;
19 import eu.etaxonomy.cdm.api.service.UpdateResult;
20 import eu.etaxonomy.cdm.model.common.CdmBase;
21 import eu.etaxonomy.taxeditor.remoting.cache.EntityCacherDebugResult;
22
23 /**
24 * @author cmathew
25 * @date 30 Jul 2015
26 *
27 */
28 public class NullSession implements ICdmEntitySession {
29
30 private ICdmEntitySessionEnabled sessionOwner;
31 private final CdmEntitySessionManager cdmEntitySessionManager;
32
33 public NullSession(ICdmEntitySessionEnabled sessionOwner, CdmEntitySessionManager cdmEntitySessionManager) {
34 this.sessionOwner = sessionOwner;
35 this.cdmEntitySessionManager = cdmEntitySessionManager;
36 }
37
38 public void setOwner(ICdmEntitySessionEnabled sessionOwner) {
39 this.sessionOwner = sessionOwner;
40 }
41
42 /* (non-Javadoc)
43 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#getOwner()
44 */
45 @Override
46 public ICdmEntitySessionEnabled getOwner() {
47 return sessionOwner;
48 }
49
50 /* (non-Javadoc)
51 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#getCacheStatistics()
52 */
53 @Override
54 public LiveCacheStatistics getCacheStatistics() {
55 // TODO Auto-generated method stub
56 return null;
57 }
58
59 /* (non-Javadoc)
60 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(java.lang.Object, boolean)
61 */
62 @Override
63 public <O> O load(O obj, boolean update) {
64 return obj;
65 }
66
67 /* (non-Javadoc)
68 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(eu.etaxonomy.cdm.model.common.CdmBase, boolean)
69 */
70 @Override
71 public <T extends CdmBase> T load(T cdmBase, boolean update) {
72 return cdmBase;
73 }
74
75 /* (non-Javadoc)
76 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(eu.etaxonomy.cdm.api.service.UpdateResult, boolean)
77 */
78 @Override
79 public UpdateResult load(UpdateResult updateResult, boolean update) {
80 return updateResult;
81 }
82
83 /* (non-Javadoc)
84 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#debug(eu.etaxonomy.cdm.model.common.CdmBase)
85 */
86 @Override
87 public <T extends CdmBase> EntityCacherDebugResult debug(T cdmBase) {
88 return null;
89 }
90
91 /* (non-Javadoc)
92 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#debug(java.util.Collection)
93 */
94 @Override
95 public <T extends CdmBase> EntityCacherDebugResult debug(Collection<T> cdmBase) {
96 return null;
97 }
98
99 /* (non-Javadoc)
100 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#debug()
101 */
102 @Override
103 public <T extends CdmBase> EntityCacherDebugResult debug() {
104 return null;
105 }
106
107 /* (non-Javadoc)
108 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(java.util.Collection, boolean)
109 */
110 @Override
111 public <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList, boolean update) {
112 return cdmBaseList;
113 }
114
115 /* (non-Javadoc)
116 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#setEntitiesAsLatest()
117 */
118 @Override
119 public void setEntitiesAsLatest() {
120
121 }
122
123 /* (non-Javadoc)
124 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#getRootEntities()
125 */
126 @Override
127 public <T extends CdmBase> Collection<T> getRootEntities() {
128 return null;
129 }
130
131 /* (non-Javadoc)
132 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#dispose()
133 */
134 @Override
135 public void dispose() {
136 cdmEntitySessionManager.remove(sessionOwner);
137 }
138
139 /* (non-Javadoc)
140 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#bind()
141 */
142 @Override
143 public void bind() {
144 cdmEntitySessionManager.bindNullSession();
145 }
146
147 /* (non-Javadoc)
148 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#remoteLoad(eu.etaxonomy.cdm.api.service.IService, java.util.UUID)
149 */
150 @Override
151 public <T extends CdmBase> T remoteLoad(IService<T> service, UUID uuid) {
152 T cdmBase = service.load(uuid);
153 return load(cdmBase, false);
154 }
155
156 /* (non-Javadoc)
157 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#remoteLoad(eu.etaxonomy.cdm.api.service.IService, java.util.UUID, java.util.List)
158 */
159 @Override
160 public <T extends CdmBase> T remoteLoad(IService<T> service, UUID uuid, List<String> propertyPaths) {
161 T cdmBase = service.load(uuid, propertyPaths);
162 return load(cdmBase, false);
163 }
164
165 /* (non-Javadoc)
166 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#remoteSave(eu.etaxonomy.cdm.api.service.IService, eu.etaxonomy.cdm.model.common.CdmBase)
167 */
168 @Override
169 public <T extends CdmBase> UUID remoteSave(IService<T> service, T cdmBase) {
170 UUID uuid = service.save(cdmBase).getUuid();
171 load(cdmBase,false);
172 return uuid;
173 }
174
175 /* (non-Javadoc)
176 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#remoteUpdate(eu.etaxonomy.cdm.api.service.IService, eu.etaxonomy.cdm.model.common.CdmBase)
177 */
178 @Override
179 public <T extends CdmBase> T remoteUpdate(IService<T> service, T cdmBase) {
180 T mergedCdmBase = service.merge(cdmBase, true).getMergedEntity();
181 return mergedCdmBase;
182 }
183
184 /* (non-Javadoc)
185 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#isActive()
186 */
187 @Override
188 public boolean isActive() {
189 return cdmEntitySessionManager.getActiveSession() == this;
190 }
191
192 /* (non-Javadoc)
193 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#update()
194 */
195 @Override
196 public <T extends CdmBase> void update() {
197
198 }
199
200 /* (non-Javadoc)
201 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#getPropertyPaths(java.lang.Object)
202 */
203 @Override
204 public List<String> getPropertyPaths(Object obj) {
205 Map<Object, List<String>> propertyPathsMap = sessionOwner.getPropertyPathsMap();
206 if(propertyPathsMap == null || propertyPathsMap.isEmpty()) {
207 return null;
208 }
209 return propertyPathsMap.get(obj);
210 }
211
212 /* (non-Javadoc)
213 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#addNewCdmEntity(eu.etaxonomy.cdm.model.common.CdmBase)
214 */
215 @Override
216 public void addNewCdmEntity(CdmBase newEntity) {
217 // TODO Auto-generated method stub
218
219 }
220
221 }