CdmRemoteCacheManager : added cache getter methods
[taxeditor.git] / eu.etaxonomy.taxeditor.cdmlib / src / main / java / eu / etaxonomy / taxeditor / session / ICdmEntitySession.java
1 package eu.etaxonomy.taxeditor.session;
2
3 import java.util.Collection;
4 import java.util.List;
5 import java.util.Set;
6 import java.util.UUID;
7
8 import net.sf.ehcache.statistics.LiveCacheStatistics;
9 import eu.etaxonomy.cdm.api.service.IService;
10 import eu.etaxonomy.cdm.model.common.CdmBase;
11 import eu.etaxonomy.cdm.model.common.ICdmBase;
12 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent.EventType;
13 import eu.etaxonomy.taxeditor.remoting.cache.EntityCacherDebugResult;
14
15 public interface ICdmEntitySession {
16
17 public ICdmEntitySessionEnabled getOwner();
18
19 public LiveCacheStatistics getCacheStatistics();
20
21 public <O extends Object> O load(O obj);
22
23 public <T extends CdmBase> T load(T cdmBase);
24
25 public <T extends CdmBase> EntityCacherDebugResult debug(T cdmBase);
26
27 public <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList);
28
29 public void setEntitiesAsLatest();
30
31 public void dispose();
32
33 public void bind();
34
35 public void registerForDataStoreChanges(ICdmEntitySessionEnabled observer);
36
37 public void unregisterForDataStoreChanges(ICdmEntitySessionEnabled observer);
38
39 public void addEvent(ICdmBase cdmBase, Set<CdmBase> affectedObjects, EventType eventType);
40
41 public <T extends ICdmBase> void addEvent(Collection <T> cdmBases, Set<CdmBase> affectedObjects, EventType eventType);
42
43 public <T extends CdmBase> T remoteLoad(IService<T> service, UUID uuid);
44
45 public <T extends CdmBase> T remoteLoad(IService<T> service, UUID uuid, List<String> propertyPaths);
46
47 public <T extends CdmBase> UUID remoteSave(IService<T> service, T cdmBase);
48
49 public <T extends CdmBase> T remoteUpdate(IService<T> service, T cdmBase);
50
51
52
53
54 /**
55 * @param cdmBase
56 * @param affectedObjects
57 */
58 public <T extends ICdmBase> void update(T cdmBase, Set<CdmBase> affectedObjects);
59
60 /**
61 * @param cdmBase
62 * @param affectedObjects
63 */
64 public <T extends ICdmBase> void delete(T cdmBase, Set<CdmBase> affectedObjects);
65
66 /**
67 * @param cdmBase
68 * @param affectedObjects
69 */
70 public <T extends ICdmBase> void delete(Set<T> cdmBases, Set<CdmBase> affectedObjects);
71
72 /**
73 *
74 */
75 public void fireNotifications();
76
77 public boolean isActive();
78
79
80
81
82 }