3 * Copyright (C) 2014 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.taxeditor
.remoting
.session
;
12 import java
.util
.List
;
14 import org
.springframework
.beans
.factory
.annotation
.Autowired
;
15 import org
.springframework
.stereotype
.Component
;
17 import eu
.etaxonomy
.cdm
.api
.cache
.CdmTransientEntityCacher
;
18 import eu
.etaxonomy
.cdm
.model
.common
.CdmBase
;
27 public class CdmEntitySession
{
30 private CdmEntitySessionManager cdmEntitySessionManager
;
32 private ISessionEventListener sessionOwner
;
34 private CdmTransientEntityCacher cdmTransientEntityCacher
;
36 CdmEntitySession(ISessionEventListener sessionOwner
, CdmEntitySessionManager cdmEntitySessionManager
) {
37 this.sessionOwner
= sessionOwner
;
38 this.cdmTransientEntityCacher
= new CdmTransientEntityCacher(sessionOwner
);
39 cdmEntitySessionManager
.addToOwnerSessionMap(sessionOwner
, this);
42 public CdmTransientEntityCacher
getCdmTransientEntityCacher() {
43 return cdmTransientEntityCacher
;
46 public CdmBase
cachify(CdmBase cdmBase
) {
47 return cdmTransientEntityCacher
.load(cdmBase
,true);
50 public void setEntitiesAsLatest() {
51 List
<CdmBase
> entities
= cdmTransientEntityCacher
.getAllEntities();
52 for(CdmBase entity
: entities
) {
53 cdmEntitySessionManager
.setEntityAsLatest(entity
);