Project

General

Profile

« Previous | Next » 

Revision 3baf1767

Added by Andreas Kohlbecker about 6 years ago

fix #7353 SpecimenTypedesignationsWorkingsetEditor: adapting to changes in DerivedUnitConverter and blockig kindOfUnit changes in case of multiple typeDesignations per specimen

View differences:

src/main/java/eu/etaxonomy/cdm/vaadin/model/registration/SpecimenTypeDesignationDTO.java
15 15

  
16 16
import eu.etaxonomy.cdm.api.utility.DerivedUnitConversionException;
17 17
import eu.etaxonomy.cdm.api.utility.DerivedUnitConverter;
18
import eu.etaxonomy.cdm.api.utility.DerivedUnitConverterFactory;
19 18
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
20 19
import eu.etaxonomy.cdm.model.common.DefinedTerm;
21 20
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
......
53 52
public class SpecimenTypeDesignationDTO {
54 53

  
55 54
    SpecimenTypeDesignation std;
55
    private DerivedUnit replacedTypeSpecimen;
56 56

  
57 57
    /**
58 58
     * @return the std
......
61 61
        return std;
62 62
    }
63 63

  
64
    public DerivedUnit replacedTypeSpecimen(){
65
        return replacedTypeSpecimen;
66
    }
67

  
64 68
    /**
65 69
     * Creates an new new instance of SpecimenTypeDesignationDTO which is backed up
66 70
     * by an newly instantiated <code>SpecimenTypeDesignation.typeSpecimen.derivedFrom.type</code> object graph.
......
103 107
        Class<? extends DerivedUnit> currentType = typeSpecimen.getClass();
104 108

  
105 109
        if(!requiredSpecimenType.equals(currentType)){
106

  
107
            DerivedUnit convertedSpecimen;
108

  
109 110
            SpecimenOrObservationType convertToType = specimenOrObservationTypeFor(kindOfUnit);
110 111
            if(requiredSpecimenType.equals(MediaSpecimen.class)){
111
                DerivedUnitConverter<MediaSpecimen> converter = DerivedUnitConverterFactory.createDerivedUnitConverter(typeSpecimen, MediaSpecimen.class);
112
                convertedSpecimen = converter.convertTo((Class<MediaSpecimen>)requiredSpecimenType, convertToType);
112
                DerivedUnitConverter<MediaSpecimen> converter = new DerivedUnitConverter<MediaSpecimen>(std);
113
                std = converter.convertTo((Class<MediaSpecimen>)requiredSpecimenType, convertToType);
113 114
            } else {
114 115
                 if(currentType == MediaSpecimen.class){
115 116
                     MediaSpecimen mediaSpecimen = (MediaSpecimen)typeSpecimen;
116 117
                     // set null to allow conversion
117 118
                     mediaSpecimen.setMediaSpecimen(null);
118 119
                 }
119
                DerivedUnitConverter<DerivedUnit> converter = DerivedUnitConverterFactory.createDerivedUnitConverter(typeSpecimen, DerivedUnit.class);
120
                convertedSpecimen = converter.convertTo((Class<DerivedUnit>)requiredSpecimenType, convertToType);
120
                DerivedUnitConverter<DerivedUnit> converter = new DerivedUnitConverter<DerivedUnit>(std);
121
                std = converter.convertTo((Class<DerivedUnit>)requiredSpecimenType, convertToType);
122
            }
123
            if(typeSpecimen.getId() != 0){
124
                replacedTypeSpecimen = typeSpecimen;
121 125
            }
122 126

  
123
            std.setTypeSpecimen(convertedSpecimen);
124 127
        }
125 128
    }
126 129

  
130
    /**
131
     *
132
     * @return the total count of typeDesignations associated with the type specimen
133
     */
134
    public int getAssociatedTypeDesignationCount() {
135
        return std.getTypeSpecimen().getSpecimenTypeDesignations().size();
136
    }
137

  
127 138

  
128 139
    /**
129 140
     * See constructor doc.

Also available in: Unified diff