Revision 5f7cb15c
Added by Katja Luther almost 8 years ago
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/CdmPreDataChangeListener.java | ||
---|---|---|
25 | 25 |
import eu.etaxonomy.cdm.model.common.IdentifiableEntity; |
26 | 26 |
import eu.etaxonomy.cdm.model.common.User; |
27 | 27 |
import eu.etaxonomy.cdm.model.common.VersionableEntity; |
28 |
import eu.etaxonomy.cdm.model.description.FeatureNode; |
|
29 |
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode; |
|
28 | 30 |
import eu.etaxonomy.cdm.model.molecular.Amplification; |
29 | 31 |
import eu.etaxonomy.cdm.model.name.NonViralName; |
30 | 32 |
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent; |
31 | 33 |
import eu.etaxonomy.cdm.model.reference.Reference; |
34 |
import eu.etaxonomy.cdm.model.taxon.TaxonNode; |
|
32 | 35 |
|
33 | 36 |
/** |
34 | 37 |
* @author cmathew |
... | ... | |
91 | 94 |
if(entity != null && CdmBase.class.isAssignableFrom(entity.getClass())){ |
92 | 95 |
cacheDeterminationNames(entity); |
93 | 96 |
generateCaches(entity); |
97 |
removeNullFromCollections(entity); |
|
94 | 98 |
} |
95 | 99 |
} |
96 | 100 |
|
101 |
/** |
|
102 |
* @param entity |
|
103 |
*/ |
|
104 |
private static void removeNullFromCollections(Object entity) { |
|
105 |
if (entity != null){ |
|
106 |
Class<?> entityClazz = entity.getClass(); |
|
107 |
|
|
108 |
if (TaxonNode.class.isAssignableFrom(entityClazz)){ |
|
109 |
TaxonNode node = (TaxonNode)entity; |
|
110 |
node.removeNullValueFromChildren(); |
|
111 |
}else if(PolytomousKeyNode.class.isAssignableFrom(entityClazz)){ |
|
112 |
PolytomousKeyNode node = (PolytomousKeyNode)entity; |
|
113 |
node.removeNullValueFromChildren(); |
|
114 |
}else if(FeatureNode.class.isAssignableFrom(entityClazz)){ |
|
115 |
FeatureNode node = (FeatureNode)entity; |
|
116 |
node.removeNullValueFromChildren(); |
|
117 |
} |
|
118 |
|
|
119 |
} |
|
120 |
|
|
121 |
} |
|
122 |
|
|
97 | 123 |
private static void cacheDeterminationNames(Object entity) { |
98 | 124 |
if (entity instanceof DeterminationEvent) { |
99 | 125 |
DeterminationEvent detEv = (DeterminationEvent)entity; |
Also available in: Unified diff
new method removeNullValues in CdmPreDataChangeListener