Project

General

Profile

Download (6.61 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.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
}
(9-9/9)