task #9252

Updated by Andreas Kohlbecker over 2 years ago

Problems with the current implementations: 

 * Naming:  
     * PreservedSpecimenDTO should be named DerivedUnitDTO 
     * DerivateDTO should be named    SpecimenOrOberservationDTO 
 * Terms:  
     * term representations need to be localized 
     * fields containing localized term representations are to be named `{fieldname}_L10n` 
 * Factory methods 
     * clear naming etc.... 
     * construction of DTO should be done in factory methods instead of having this code in service methods and utilizing setters to populate the DTO with field values , see  
         * `OccurrenceServiceImpl.assembleFieldUnitDTO(FieldUnit  
 * `OccurrenceServiceImpl.findFieldUnitDTO(SpecimenOrObservationBaseDTO, Collection<FieldUnitDTO>, HashMap<UUID, SpecimenOrObservationBaseDTO>)` 
         * `OccurrenceServiceImpl.loadFieldUnitDTO(UUID)` 
 * DTO TDO classes should extend TypeEntityReference instead of UuidAndTitleCache 

 Solving this ticket is a prerequisite for straight forward harmonization of the different specimen representations #8419     


 * DerivateDataDTO: 
     * find better class name 
     * Use List<MediaDTO> instead of List<Link> 
     * Use List<TypeEntityReference> instead of List<UUID>