Revision 80de230c
Added by Cherian Mathew over 9 years ago
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySession.java | ||
---|---|---|
29 | 29 |
* |
30 | 30 |
*/ |
31 | 31 |
|
32 |
public class CdmEntitySession<T extends CdmBase> { |
|
32 |
public class CdmEntitySession<T extends CdmBase> implements ICdmEntitySession<T> {
|
|
33 | 33 |
|
34 | 34 |
|
35 | 35 |
private CdmEntitySessionManager cdmEntitySessionManager; |
36 | 36 |
|
37 | 37 |
private ISessionEventListener sessionOwner; |
38 | 38 |
|
39 |
private CdmTransientEntityCacher cdmTransientEntityCacher; |
|
40 |
|
|
41 |
private IService<T> service; |
|
39 |
private CdmTransientEntityCacher cdmTransientEntityCacher; |
|
42 | 40 |
|
43 | 41 |
private List<T> rootEntities; |
44 | 42 |
|
... | ... | |
49 | 47 |
|
50 | 48 |
cdmEntitySessionManager.addToOwnerSessionMap(sessionOwner, this); |
51 | 49 |
} |
50 |
|
|
52 | 51 |
|
53 |
CdmEntitySession(ISessionEventListener sessionOwner, IService<T> service, CdmEntitySessionManager cdmEntitySessionManager) { |
|
54 |
this.sessionOwner = sessionOwner; |
|
55 |
this.cdmTransientEntityCacher = new CdmTransientEntityCacher(sessionOwner, cdmEntitySessionManager); |
|
56 |
this.rootEntities = new ArrayList<T>(); |
|
57 |
this.service = service; |
|
58 |
cdmEntitySessionManager.addToOwnerSessionMap(sessionOwner, this); |
|
59 |
} |
|
60 |
// |
|
61 |
// public CdmTransientEntityCacher getCdmTransientEntityCacher() { |
|
62 |
// return cdmTransientEntityCacher; |
|
63 |
// } |
|
64 |
|
|
52 |
/* (non-Javadoc) |
|
53 |
* @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(T) |
|
54 |
*/ |
|
55 |
@Override |
|
65 | 56 |
public <T extends Object> T load(T obj) { |
66 | 57 |
return (T) cdmTransientEntityCacher.load(obj,true); |
67 | 58 |
} |
68 | 59 |
|
69 | 60 |
|
61 |
/* (non-Javadoc) |
|
62 |
* @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(T) |
|
63 |
*/ |
|
64 |
@Override |
|
70 | 65 |
public <T extends CdmBase> T load(T cdmBase) { |
71 | 66 |
return (T)cdmTransientEntityCacher.load(cdmBase,true); |
72 | 67 |
} |
73 | 68 |
|
69 |
/* (non-Javadoc) |
|
70 |
* @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(java.util.Collection) |
|
71 |
*/ |
|
72 |
@Override |
|
74 | 73 |
public <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList) { |
75 | 74 |
|
76 | 75 |
return cdmTransientEntityCacher.load(cdmBaseList,true); |
77 | 76 |
} |
78 | 77 |
|
78 |
/* (non-Javadoc) |
|
79 |
* @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#setEntitiesAsLatest() |
|
80 |
*/ |
|
81 |
@Override |
|
79 | 82 |
public void setEntitiesAsLatest() { |
80 | 83 |
List<CdmBase> entities = cdmTransientEntityCacher.getAllEntities(); |
81 | 84 |
for(CdmBase entity : entities) { |
... | ... | |
83 | 86 |
} |
84 | 87 |
} |
85 | 88 |
|
86 |
public void addRootEntity(T cdmBase) { |
|
87 |
rootEntities.add(cdmBase); |
|
88 |
} |
|
89 |
|
|
90 |
public void addRootEntities(Collection<T> objectList) { |
|
91 |
for(T obj : objectList) { |
|
92 |
addRootEntity(obj); |
|
93 |
} |
|
94 |
} |
|
95 |
|
|
96 |
public void commit() { |
|
97 |
for(T rootEntity : rootEntities) { |
|
98 |
service.merge( rootEntity); |
|
99 |
} |
|
100 |
} |
|
101 |
|
|
102 |
public void commit(IService<T> service,T cdmBase) { |
|
103 |
service.merge(cdmBase); |
|
104 |
} |
|
105 | 89 |
|
90 |
/* (non-Javadoc) |
|
91 |
* @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#dispose() |
|
92 |
*/ |
|
93 |
@Override |
|
106 | 94 |
public void dispose() { |
107 | 95 |
rootEntities.clear(); |
108 | 96 |
cdmTransientEntityCacher.dispose(); |
Also available in: Unified diff
updated manifest for deleted test dir
removed unnecessary commit root entity methods in session and session manager