Project

General

Profile

« Previous | Next » 

Revision 5f7cb15c

Added by Katja Luther almost 8 years ago

new method removeNullValues in CdmPreDataChangeListener

View differences:

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