merge
[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.UUID;
6
7 import net.sf.ehcache.statistics.LiveCacheStatistics;
8 import eu.etaxonomy.cdm.api.service.IService;
9 import eu.etaxonomy.cdm.api.service.UpdateResult;
10 import eu.etaxonomy.cdm.model.common.CdmBase;
11 import eu.etaxonomy.taxeditor.remoting.cache.EntityCacherDebugResult;
12
13 public interface ICdmEntitySession {
14
15 public ICdmEntitySessionEnabled getOwner();
16
17 public LiveCacheStatistics getCacheStatistics();
18
19 public <O extends Object> O load(O obj, boolean update);
20
21 public <T extends CdmBase> T load(T cdmBase, boolean update);
22
23 public UpdateResult load(UpdateResult updateResult, boolean update);
24
25 public <T extends CdmBase> EntityCacherDebugResult debug(T cdmBase);
26
27 public <T extends CdmBase> EntityCacherDebugResult debug(Collection<T> cdmBase);
28
29 public <T extends CdmBase> EntityCacherDebugResult debug();
30
31 public <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList, boolean update);
32
33 public void setEntitiesAsLatest();
34
35 public <T extends CdmBase> Collection<T> getRootEntities();
36
37 public void dispose();
38
39 public void bind();
40
41 // public void addEvent(ICdmBase cdmBase, 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 // * @param cdmBase
54 // * @param affectedObjects
55 // */
56 // public <T extends ICdmBase> void update(T cdmBase, Set<CdmBase> affectedObjects);
57 //
58 // /**
59 // * @param cdmBase
60 // * @param affectedObjects
61 // */
62 // public <T extends ICdmBase> void delete(T cdmBase, Set<CdmBase> affectedObjects);
63 //
64 // /**
65 // * @param cdmBase
66 // * @param affectedObjects
67 // */
68 // public <T extends ICdmBase> void delete(Set<T> cdmBases, Set<CdmBase> affectedObjects);
69
70
71 public boolean isActive();
72
73 // /**
74 // * @param cdmBase
75 // * @param affectedObject
76 // */
77 // public <T extends ICdmBase> void update(T cdmBase, CdmBase affectedObject);
78
79 /**
80 *
81 */
82 public <T extends CdmBase> void update();
83
84
85 /**
86 * @param obj
87 * @return
88 */
89 public List<String> getPropertyPaths(Object obj);
90
91 public void addNewCdmEntity(CdmBase newEntity);
92
93 }