CdmModelCacher : added recursive search in super classes
[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 eu.etaxonomy.cdm.api.service.IService;
9 import eu.etaxonomy.cdm.model.common.CdmBase;
10 import eu.etaxonomy.cdm.model.common.ICdmBase;
11 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent.EventType;
12 import eu.etaxonomy.taxeditor.remoting.cache.EntityCacherDebugResult;
13
14 public interface ICdmEntitySession {
15
16 public <O extends Object> O load(O obj);
17
18 public <T extends CdmBase> T load(T cdmBase);
19
20 public <T extends CdmBase> EntityCacherDebugResult debug(T cdmBase);
21
22 public <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList);
23
24 public void setEntitiesAsLatest();
25
26 public void dispose();
27
28 public void bind();
29
30 public void registerForDataStoreChanges(ICdmEntitySessionEnabled observer);
31
32 public void unregisterForDataStoreChanges(ICdmEntitySessionEnabled observer);
33
34 public void addEvent(ICdmBase cdmBase, Set<CdmBase> affectedObjects, EventType eventType);
35
36 public <T extends ICdmBase> void addEvent(Collection <T> cdmBases, Set<CdmBase> affectedObjects, EventType eventType);
37
38 public <T extends CdmBase> T remoteLoad(IService<T> service, UUID uuid);
39
40 public <T extends CdmBase> T remoteLoad(IService<T> service, UUID uuid, List<String> propertyPaths);
41
42 public <T extends CdmBase> UUID remoteSave(IService<T> service, T cdmBase);
43
44 public <T extends CdmBase> void remoteUpdate(IService<T> service, T cdmBase);
45
46
47
48
49 /**
50 * @param cdmBase
51 * @param affectedObjects
52 */
53 public void update(CdmBase cdmBase, Set<CdmBase> affectedObjects);
54
55 /**
56 * @param cdmBase
57 * @param affectedObjects
58 */
59 public void delete(ICdmBase cdmBase, Set<CdmBase> affectedObjects);
60
61 /**
62 *
63 */
64 public void fireNotifications();
65
66
67
68
69 }