Revision 3baf1767
Added by Andreas Kohlbecker about 6 years ago
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
fix #7353 SpecimenTypedesignationsWorkingsetEditor: adapting to changes in DerivedUnitConverter and blockig kindOfUnit changes in case of multiple typeDesignations per specimen