Project

General

Profile

« Previous | Next » 

Revision 4d68581f

Added by Katja Luther over 3 years ago

ref #8774: further implementations for using term dtos in editor

View differences:

cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dto/CharacterDto.java
8 8
*/
9 9
package eu.etaxonomy.cdm.persistence.dto;
10 10

  
11
import java.util.HashSet;
11 12
import java.util.Set;
12 13
import java.util.UUID;
13 14

  
14 15
import eu.etaxonomy.cdm.model.description.Character;
16
import eu.etaxonomy.cdm.model.description.MeasurementUnit;
17
import eu.etaxonomy.cdm.model.description.State;
18
import eu.etaxonomy.cdm.model.description.StatisticalMeasure;
19
import eu.etaxonomy.cdm.model.term.DefinedTerm;
15 20
import eu.etaxonomy.cdm.model.term.Representation;
21
import eu.etaxonomy.cdm.model.term.TermVocabulary;
16 22
/**
17 23
 * @author k.luther
18 24
 * @since Oct 6, 2020
......
48 54
            UUID vocabularyUuid, Integer orderIndex, String idInVocabulary, Set<Representation> vocRepresentations,
49 55
            boolean isAvailableForTaxon, boolean isAvailableForTaxonName, boolean isAvailableForOccurrence,
50 56
            String titleCache, TermNodeDto structure, TermDto structureModifier, TermNodeDto property,
51
            TermDto propertyModifier) {
57
            TermDto propertyModifier, boolean isSupportCategoricalData, boolean isSupportsQuantitativeData, Set<TermVocabularyDto> supportedCategoricalEnumerations, Set<TermVocabularyDto> recommendedModifierEnumeration,  Set<TermDto> recommendedMeasurementUnits,  Set<TermDto> recommendedStatisticalMeasures) {
52 58
        super(uuid, representations, partOfUuid, kindOfUuid, vocabularyUuid, orderIndex, idInVocabulary,
53
                vocRepresentations, isAvailableForTaxon, isAvailableForTaxonName, isAvailableForOccurrence, titleCache);
59
                vocRepresentations, isAvailableForTaxon, isAvailableForTaxonName, isAvailableForOccurrence, titleCache, isSupportCategoricalData, isSupportsQuantitativeData, supportedCategoricalEnumerations, recommendedModifierEnumeration, recommendedMeasurementUnits, recommendedStatisticalMeasures);
54 60
        this.structure = structure;
55 61
        this.structureModifier = structureModifier;
56 62
        this.property = property;
......
60 66
    /**
61 67
     * @param character
62 68
     */
63
    public CharacterDto(Character character) {
64
       super(character.getUuid(), character.getRepresentations(), character.getPartOf().getUuid(), character.getKindOf().getUuid(), character.getVocabulary().getUuid(), null, character.getIdInVocabulary(), character.getVocabulary().getRepresentations(),
65
                character.isAvailableForTaxon(), character.isAvailableForTaxonName(), character.isAvailableForOccurrence(), character.getTitleCache());
66
       this.property = new TermNodeDto(character.getProperty());
67
       this.propertyModifier = TermDto.fromTerm(character.getPropertyModifier());
68
       this.structure = new TermNodeDto(character.getStructure());
69
       this.structureModifier = TermDto.fromTerm(character.getStructureModifier());
69
    public static CharacterDto fromCharacter(Character character) {
70
       TermVocabulary voc = character.getVocabulary();
71

  
72
       Set<TermVocabularyDto> recommendedModifierDtos = new HashSet<>();
73
       for (TermVocabulary<DefinedTerm> modVoc: character.getRecommendedModifierEnumeration()){
74
           recommendedModifierDtos.add(TermVocabularyDto.fromVocabulary(modVoc));
75
       }
76

  
77

  
78
       Set<TermDto> recommendedStatisticalMeasuresDtos = new HashSet<>();
79
       for (StatisticalMeasure term: character.getRecommendedStatisticalMeasures()){
80
           recommendedStatisticalMeasuresDtos.add(TermDto.fromTerm(term));
81
       }
82

  
83

  
84
       Set<TermVocabularyDto> supportedCategoricalDtos = new HashSet<>();
85
       for (TermVocabulary<State> catVoc: character.getSupportedCategoricalEnumerations()){
86
           supportedCategoricalDtos.add(TermVocabularyDto.fromVocabulary(catVoc));
87
       }
88

  
89

  
90
       Set<TermDto> recommendedMeasurementUnitsDtos = new HashSet<>();
91
       for (MeasurementUnit term: character.getRecommendedMeasurementUnits()){
92
           recommendedMeasurementUnitsDtos.add(TermDto.fromTerm(term));
93
       }
94
       CharacterDto dto = new CharacterDto(character.getUuid(), character.getRepresentations(), character.getPartOf() != null? character.getPartOf().getUuid(): null, character.getKindOf() != null? character.getKindOf().getUuid(): null, voc != null? voc.getUuid(): null,
95
               null, character.getIdInVocabulary(), voc != null? voc.getRepresentations(): null, character.isAvailableForTaxon(), character.isAvailableForTaxonName(), character.isAvailableForOccurrence(), character.getTitleCache(),
96
                       character.getStructure() !=null? TermNodeDto.fromNode(character.getStructure()): null, character.getStructureModifier() != null? TermDto.fromTerm(character.getStructureModifier()): null, character.getProperty() != null? TermNodeDto.fromNode(character.getProperty()): null,
97
                        character.getPropertyModifier() != null? TermDto.fromTerm(character.getPropertyModifier()): null, character.isSupportsCategoricalData(), character.isSupportsQuantitativeData(),supportedCategoricalDtos, recommendedModifierDtos, recommendedMeasurementUnitsDtos, recommendedStatisticalMeasuresDtos);
98

  
99
       return dto;
70 100
    }
71 101

  
72 102

  

Also available in: Unified diff