Project

General

Profile

« Previous | Next » 

Revision 0eaa0762

Added by Patrick Plitzner about 5 years ago

ref #8011 Add service method to find term DTOs by label

View differences:

cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dto/TermDto.java
41 41
    private String idInVocabulary = null;
42 42
    private Collection<TermDto> includes;
43 43
    private Collection<TermDto> generalizationOf;
44
    private Set<Representation> vocRepresentations = null;
45
    private String vocRepresentation_L10n = null;
46
    private String vocRepresentation_L10n_abbreviatedLabel = null;
44 47

  
45
    private TermDto(UUID uuid, Set<Representation> representations, UUID partOfUuid, UUID kindOfUuid, UUID vocabularyUuid, Integer orderIndex, String idInVocabulary) {
48
    private TermDto(UUID uuid, Set<Representation> representations, UUID partOfUuid, UUID kindOfUuid,
49
            UUID vocabularyUuid, Integer orderIndex, String idInVocabulary) {
50
        this(uuid, representations, partOfUuid, kindOfUuid, vocabularyUuid, orderIndex, idInVocabulary, null);
51
    }
52

  
53
    private TermDto(UUID uuid, Set<Representation> representations, UUID partOfUuid, UUID kindOfUuid,
54
            UUID vocabularyUuid, Integer orderIndex, String idInVocabulary, Set<Representation> vocRepresentations) {
46 55
        super(uuid, representations);
47 56
        this.partOfUuid = partOfUuid;
48 57
        this.kindOfUuid = kindOfUuid;
49 58
        this.vocabularyUuid = vocabularyUuid;
50 59
        this.orderIndex = orderIndex;
51 60
        this.idInVocabulary = idInVocabulary;
61
        this.vocRepresentations = vocRepresentations;
52 62
    }
53 63

  
54 64
    static public TermDto fromTerm(DefinedTermBase term) {
......
87 97
        return dto;
88 98
    }
89 99

  
100
    @Override
101
    public void localize(ITermRepresentation_L10n representation_L10n) {
102
        if(vocRepresentations!=null){
103
            representation_L10n.localize(vocRepresentations);
104
            if (representation_L10n.getLabel() != null) {
105
                setVocRepresentation_L10n(representation_L10n.getLabel());
106
            }
107
            if (representation_L10n.getAbbreviatedLabel() != null) {
108
                setVocRepresentation_L10n_abbreviatedLabel(representation_L10n.getAbbreviatedLabel());
109
            }
110
        }
111
        super.localize(representation_L10n);
112
    }
113

  
114
    public void setVocRepresentation_L10n(String vocRepresentation_L10n) {
115
        this.vocRepresentation_L10n = vocRepresentation_L10n;
116
    }
117

  
118
    public String getVocRepresentation_L10n() {
119
        return vocRepresentation_L10n;
120
    }
121

  
122
    public void setVocRepresentation_L10n_abbreviatedLabel(String vocRepresentation_L10n_abbreviatedLabel) {
123
        this.vocRepresentation_L10n_abbreviatedLabel = vocRepresentation_L10n_abbreviatedLabel;
124
    }
125

  
126
    public String getVocRepresentation_L10n_abbreviatedLabel() {
127
        return vocRepresentation_L10n_abbreviatedLabel;
128
    }
129

  
90 130
    public void setPartOfDto(TermDto partOfDto) {
91 131
        this.partOfDto = partOfDto;
92 132
    }
......
165 205

  
166 206
    public static String getTermDtoSelect(String fromTable){
167 207
        return ""
168
                + "select a.uuid, r, p.uuid, k.uuid, v.uuid, a.orderIndex, a.idInVocabulary "
208
                + "select a.uuid, r, p.uuid, k.uuid, v.uuid, a.orderIndex, a.idInVocabulary, voc_rep "
169 209
                + "from "+fromTable+" as a "
170 210
                + "LEFT JOIN a.partOf as p "
171 211
                + "LEFT JOIN a.kindOf as k "
172 212
                + "LEFT JOIN a.representations AS r "
173
                + "LEFT JOIN a.vocabulary as v ";
213
                + "LEFT JOIN a.vocabulary as v "
214
                + "LEFT JOIN v.representations as voc_rep ";
174 215
    }
175 216

  
176 217
    public static List<TermDto> termDtoListFrom(List<Object[]> results) {
......
187 228
                } else {
188 229
                    representations = (Set<Representation>)elements[1];
189 230
                }
190
                dtoMap.put(uuid, new TermDto(uuid, representations, (UUID)elements[2], (UUID)elements[3], (UUID)elements[4], (Integer)elements[5], (String)elements[6]));
231
                Set<Representation> vocRepresentations = new HashSet<>();
232
                if(elements[7] instanceof Representation) {
233
                    vocRepresentations = new HashSet<Representation>(7);
234
                    vocRepresentations.add((Representation)elements[7]);
235
                } else {
236
                    vocRepresentations = (Set<Representation>)elements[7];
237
                }
238
                dtoMap.put(uuid, new TermDto(uuid, representations, (UUID)elements[2], (UUID)elements[3], (UUID)elements[4], (Integer)elements[5], (String)elements[6], vocRepresentations));
191 239
            }
192 240
        }
193 241
        return new ArrayList<>(dtoMap.values());

Also available in: Unified diff