merge from trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.remoting / src / main / java / eu / etaxonomy / taxeditor / remoting / session / CdmEntitySession.java
1 // $Id$
2 /**
3 * Copyright (C) 2014 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.remoting.session;
11
12 import java.util.List;
13
14 import org.springframework.beans.factory.annotation.Autowired;
15 import org.springframework.stereotype.Component;
16
17 import eu.etaxonomy.cdm.api.cache.CdmTransientEntityCacher;
18 import eu.etaxonomy.cdm.model.common.CdmBase;
19
20
21 /**
22 * @author cmathew
23 * @date 20 Oct 2014
24 *
25 */
26
27 public class CdmEntitySession {
28
29
30 private CdmEntitySessionManager cdmEntitySessionManager;
31
32 private ISessionEventListener sessionOwner;
33
34 private CdmTransientEntityCacher cdmTransientEntityCacher;
35
36 CdmEntitySession(ISessionEventListener sessionOwner, CdmEntitySessionManager cdmEntitySessionManager) {
37 this.sessionOwner = sessionOwner;
38 this.cdmTransientEntityCacher = new CdmTransientEntityCacher(sessionOwner);
39 cdmEntitySessionManager.addToOwnerSessionMap(sessionOwner, this);
40 }
41
42 public CdmTransientEntityCacher getCdmTransientEntityCacher() {
43 return cdmTransientEntityCacher;
44 }
45
46 public CdmBase cachify(CdmBase cdmBase) {
47 return cdmTransientEntityCacher.load(cdmBase,true);
48 }
49
50 public void setEntitiesAsLatest() {
51 List<CdmBase> entities = cdmTransientEntityCacher.getAllEntities();
52 for(CdmBase entity : entities) {
53 cdmEntitySessionManager.setEntityAsLatest(entity);
54 }
55 }
56
57
58
59 }