Revision 0ddb8392
Added by Cherian Mathew about 9 years ago
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySession.java | ||
---|---|---|
10 | 10 |
package eu.etaxonomy.taxeditor.session; |
11 | 11 |
|
12 | 12 |
import java.util.ArrayList; |
13 |
import java.util.Arrays; |
|
13 | 14 |
import java.util.Collection; |
14 | 15 |
import java.util.List; |
15 | 16 |
import java.util.Set; |
... | ... | |
18 | 19 |
import net.sf.ehcache.statistics.LiveCacheStatistics; |
19 | 20 |
|
20 | 21 |
import org.apache.log4j.Logger; |
21 |
import org.apache.poi.ss.formula.functions.T; |
|
22 | 22 |
|
23 | 23 |
import eu.etaxonomy.cdm.api.service.IService; |
24 | 24 |
import eu.etaxonomy.cdm.model.common.CdmBase; |
... | ... | |
52 | 52 |
|
53 | 53 |
private final List<ICdmEntitySessionEnabled> changeObservers; |
54 | 54 |
|
55 |
private final List<T> rootEntities; |
|
55 |
|
|
56 | 56 |
|
57 | 57 |
public CdmEntitySession(ICdmEntitySessionEnabled sessionOwner, CdmEntitySessionManager cdmEntitySessionManager) { |
58 | 58 |
this.sessionOwner = sessionOwner; |
59 | 59 |
this.cdmTransientEntityCacher = new CdmTransientEntityCacher(sessionOwner, cdmEntitySessionManager); |
60 |
this.rootEntities = new ArrayList<T>(); |
|
61 | 60 |
this.cdmEntitySessionManager = cdmEntitySessionManager; |
62 | 61 |
this.changeObservers = new ArrayList<ICdmEntitySessionEnabled>(); |
63 | 62 |
cdmEntitySessionManager.addToOwnerSessionMap(sessionOwner, this); |
... | ... | |
110 | 109 |
*/ |
111 | 110 |
@Override |
112 | 111 |
public <T extends CdmBase> EntityCacherDebugResult debug(T cdmBase) { |
113 |
EntityCacherDebugResult entityCacherDebugResult = cdmTransientEntityCacher.debug(cdmBase, true); |
|
114 |
entityCacherDebugResult.print(); |
|
112 |
return debug(Arrays.asList(cdmBase)); |
|
113 |
} |
|
114 |
|
|
115 |
|
|
116 |
|
|
117 |
/* (non-Javadoc) |
|
118 |
* @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#debug(java.util.List) |
|
119 |
*/ |
|
120 |
@Override |
|
121 |
public <T extends CdmBase> EntityCacherDebugResult debug(List<T> cdmBases) { |
|
122 |
EntityCacherDebugResult entityCacherDebugResult = |
|
123 |
new EntityCacherDebugResult(cdmTransientEntityCacher, cdmBases); |
|
115 | 124 |
return entityCacherDebugResult; |
116 | 125 |
} |
117 | 126 |
|
127 |
|
|
128 |
/* (non-Javadoc) |
|
129 |
* @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#debug() |
|
130 |
*/ |
|
131 |
@Override |
|
132 |
public <T extends CdmBase> EntityCacherDebugResult debug() { |
|
133 |
return debug(getRootEntities()); |
|
134 |
} |
|
135 |
|
|
118 | 136 |
/* (non-Javadoc) |
119 | 137 |
* @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(java.util.Collection) |
120 | 138 |
*/ |
... | ... | |
165 | 183 |
*/ |
166 | 184 |
@Override |
167 | 185 |
public void dispose() { |
168 |
rootEntities.clear(); |
|
186 |
|
|
169 | 187 |
cdmTransientEntityCacher.dispose(); |
170 | 188 |
for(ICdmEntitySessionEnabled observer : changeObservers) { |
171 | 189 |
CdmPostDataChangeObservableListener.getDefault().unregister(observer); |
... | ... | |
280 | 298 |
} |
281 | 299 |
|
282 | 300 |
|
301 |
/* (non-Javadoc) |
|
302 |
* @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#getRootEntities() |
|
303 |
*/ |
|
304 |
@Override |
|
305 |
public <T extends CdmBase> List<T> getRootEntities() { |
|
306 |
return sessionOwner.getRootEntities(); |
|
307 |
} |
|
308 |
|
|
309 |
|
|
310 |
|
|
283 | 311 |
|
284 | 312 |
|
285 | 313 |
|
Also available in: Unified diff
CdmTransientEntityCacher, EntityCacherDebugResult : moved debug methods to debug result class
ProxyUtils : new class for util methods to do with hibernate proxy objects
ICdmEntitySessionEnabled, CdmEntitySessionInput, PolytomousKeyEditorInput, TaxonNameEditor, PolytomousKeyViewPart, TaxonNavigator, AbstractCdmViewPart, MultiPageTaxonEditor : Added getRootEntities method
CdmEntitySession, ICdmEntitySession : added new debug methods
InspectSessionsDialog : new dialog to inspect session entities