Project

General

Profile

Download (7.02 KB) Statistics
| Branch: | Tag: | Revision:
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.cdm.persistence.dto.MergeResult;
22
import eu.etaxonomy.taxeditor.remoting.cache.EntityCacherDebugResult;
23

    
24
/**
25
 * @author cmathew
26
 * @date 30 Jul 2015
27
 *
28
 */
29
public class NullSession implements ICdmEntitySession {
30

    
31
    private ICdmEntitySessionEnabled sessionOwner;
32
    private final CdmEntitySessionManager cdmEntitySessionManager;
33

    
34
    public NullSession(ICdmEntitySessionEnabled sessionOwner, CdmEntitySessionManager cdmEntitySessionManager) {
35
        this.sessionOwner = sessionOwner;
36
        this.cdmEntitySessionManager = cdmEntitySessionManager;
37
    }
38

    
39
    public void setOwner(ICdmEntitySessionEnabled sessionOwner) {
40
        this.sessionOwner = sessionOwner;
41
    }
42

    
43
    /* (non-Javadoc)
44
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#getOwner()
45
     */
46
    @Override
47
    public ICdmEntitySessionEnabled getOwner() {
48
        return sessionOwner;
49
    }
50

    
51
    /* (non-Javadoc)
52
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#getCacheStatistics()
53
     */
54
    @Override
55
    public LiveCacheStatistics getCacheStatistics() {
56
        // TODO Auto-generated method stub
57
        return null;
58
    }
59

    
60
    /* (non-Javadoc)
61
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(java.lang.Object, boolean)
62
     */
63
    @Override
64
    public <O> O load(O obj, boolean update) {
65
        return obj;
66
    }
67

    
68
    /* (non-Javadoc)
69
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(eu.etaxonomy.cdm.model.common.CdmBase, boolean)
70
     */
71
    @Override
72
    public <T extends CdmBase> T load(T cdmBase, boolean update) {
73
        return cdmBase;
74
    }
75

    
76
    /* (non-Javadoc)
77
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(eu.etaxonomy.cdm.api.service.UpdateResult, boolean)
78
     */
79
    @Override
80
    public UpdateResult load(UpdateResult updateResult, boolean update) {
81
        return updateResult;
82
    }
83

    
84
    /* (non-Javadoc)
85
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#debug(eu.etaxonomy.cdm.model.common.CdmBase)
86
     */
87
    @Override
88
    public <T extends CdmBase> EntityCacherDebugResult debug(T cdmBase) {
89
        return null;
90
    }
91

    
92
    /* (non-Javadoc)
93
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#debug(java.util.Collection)
94
     */
95
    @Override
96
    public <T extends CdmBase> EntityCacherDebugResult debug(Collection<T> cdmBase) {
97
        return null;
98
    }
99

    
100
    /* (non-Javadoc)
101
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#debug()
102
     */
103
    @Override
104
    public <T extends CdmBase> EntityCacherDebugResult debug() {
105
        return null;
106
    }
107

    
108
    /* (non-Javadoc)
109
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(java.util.Collection, boolean)
110
     */
111
    @Override
112
    public <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList, boolean update) {
113
        return cdmBaseList;
114
    }
115

    
116
    /* (non-Javadoc)
117
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#setEntitiesAsLatest()
118
     */
119
    @Override
120
    public void setEntitiesAsLatest() {
121

    
122
    }
123

    
124
    /* (non-Javadoc)
125
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#getRootEntities()
126
     */
127
    @Override
128
    public <T extends CdmBase> Collection<T> getRootEntities() {
129
        return null;
130
    }
131

    
132
    /* (non-Javadoc)
133
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#dispose()
134
     */
135
    @Override
136
    public void dispose() {
137
        cdmEntitySessionManager.remove(sessionOwner);
138
    }
139

    
140
    /* (non-Javadoc)
141
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#bind()
142
     */
143
    @Override
144
    public void bind() {
145
        cdmEntitySessionManager.bindNullSession();
146
    }
147

    
148
    /* (non-Javadoc)
149
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#remoteLoad(eu.etaxonomy.cdm.api.service.IService, java.util.UUID)
150
     */
151
    @Override
152
    public <T extends CdmBase> T remoteLoad(IService<T> service, UUID uuid) {
153
        T cdmBase = service.load(uuid);
154
        return load(cdmBase, false);
155
    }
156

    
157
    /* (non-Javadoc)
158
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#remoteLoad(eu.etaxonomy.cdm.api.service.IService, java.util.UUID, java.util.List)
159
     */
160
    @Override
161
    public <T extends CdmBase> T remoteLoad(IService<T> service, UUID uuid, List<String> propertyPaths) {
162
        T cdmBase = service.load(uuid, propertyPaths);
163
        return load(cdmBase, false);
164
    }
165

    
166
    /* (non-Javadoc)
167
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#remoteSave(eu.etaxonomy.cdm.api.service.IService, eu.etaxonomy.cdm.model.common.CdmBase)
168
     */
169
    @Override
170
    public <T extends CdmBase> UUID remoteSave(IService<T> service, T cdmBase) {
171
        UUID uuid = service.save(cdmBase).getUuid();
172
        load(cdmBase,false);
173
        return uuid;
174
    }
175

    
176
    /* (non-Javadoc)
177
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#remoteUpdate(eu.etaxonomy.cdm.api.service.IService, eu.etaxonomy.cdm.model.common.CdmBase)
178
     */
179
    @Override
180
    public <T extends CdmBase> T remoteUpdate(IService<T> service, T cdmBase) {
181
        T mergedCdmBase = service.merge(cdmBase, true).getMergedEntity();
182
        return mergedCdmBase;
183
    }
184

    
185
    /* (non-Javadoc)
186
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#isActive()
187
     */
188
    @Override
189
    public boolean isActive() {
190
        return cdmEntitySessionManager.getActiveSession() == this;
191
    }
192

    
193
    /* (non-Javadoc)
194
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#update()
195
     */
196
    @Override
197
    public <T extends CdmBase> void update() {
198

    
199
    }
200

    
201
    /* (non-Javadoc)
202
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#getPropertyPaths(java.lang.Object)
203
     */
204
    @Override
205
    public List<String> getPropertyPaths(Object obj) {
206
        if(sessionOwner == null) {
207
            return null;
208
        }
209
        Map<Object, List<String>> propertyPathsMap = sessionOwner.getPropertyPathsMap();
210
        if(propertyPathsMap == null || propertyPathsMap.isEmpty()) {
211
            return null;
212
        }
213
        return propertyPathsMap.get(obj);
214
    }
215

    
216
    /* (non-Javadoc)
217
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#addNewCdmEntity(eu.etaxonomy.cdm.model.common.CdmBase)
218
     */
219
    @Override
220
    public void addNewCdmEntity(CdmBase newEntity) {
221
        // TODO Auto-generated method stub
222

    
223
    }
224

    
225
    /* (non-Javadoc)
226
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(eu.etaxonomy.cdm.persistence.dto.MergeResult, boolean)
227
     */
228
    @Override
229
    public <T extends CdmBase> MergeResult<T> load(MergeResult<T> mergeResult, boolean update) {
230
        return mergeResult;
231
    }
232

    
233
}
(9-9/9)