sort states in aggregated descriptions on count
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / dto / TaxonDistributionDTO.java
1 /**
2 * Copyright (C) 2018 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9 package eu.etaxonomy.cdm.api.service.dto;
10
11 import java.io.Serializable;
12 import java.util.UUID;
13
14 import eu.etaxonomy.cdm.common.CdmUtils;
15 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
16 import eu.etaxonomy.cdm.model.name.TaxonName;
17 import eu.etaxonomy.cdm.model.taxon.Taxon;
18 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
19 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
20
21 /**
22 * @author k.luther
23 * @since 27.11.2018
24 */
25 public class TaxonDistributionDTO implements Serializable{
26
27 private static final long serialVersionUID = -6565463192135410612L;
28 private TaxonNodeDto nodeDto;
29 private TaxonDescriptionDTO descriptionsWrapper;
30 private String concatenatedSynonyms = null;
31 private TaxonNodeDto parentNodeDto = null;
32
33 public TaxonDistributionDTO(TaxonNode node){
34 nodeDto = new TaxonNodeDto(node);
35 parentNodeDto = new TaxonNodeDto(node.getParent());
36
37 Taxon taxon = HibernateProxyHelper.deproxy(node.getTaxon());
38
39 this.descriptionsWrapper = new TaxonDescriptionDTO(taxon);
40 concatenateSynonyms(taxon);
41 }
42
43 /* ------ Getter / Setter -----------*/
44 public UUID getTaxonUuid() {
45 if (nodeDto != null){
46 return nodeDto.getTaxonUuid();
47 }
48 return null;
49 }
50
51 public String getNameCache() {
52 if (nodeDto != null){
53 return nodeDto.getNameCache();
54 }
55 return null;
56 }
57
58 public String getRankString() {
59 if (nodeDto != null){
60 return nodeDto.getRankLabel();
61 }
62 return null;
63 }
64
65 public Integer getRankOrderIndex() {
66 if (nodeDto != null){
67 return nodeDto.getRankOrderIndex();
68 }
69 return null;
70 }
71
72 public TaxonNodeDto getTaxonNodeDto(){
73 return nodeDto;
74 }
75
76 public TaxonDescriptionDTO getDescriptionsWrapper() {
77 return descriptionsWrapper;
78 }
79 public void setDescriptionsWrapper(TaxonDescriptionDTO descriptionsWrapper) {
80 this.descriptionsWrapper = descriptionsWrapper;
81 }
82
83 public String getConcatenatedSynonyms(){
84 return concatenatedSynonyms;
85 }
86
87 private void concatenateSynonyms(Taxon taxon) {
88 concatenatedSynonyms = null;
89 for (TaxonName synName: taxon.getSynonymNames()){
90 concatenatedSynonyms = CdmUtils.concat("; ", concatenatedSynonyms, synName.getNameCache());
91 }
92 }
93
94 public TaxonNodeDto getParentDto() {
95 return parentNodeDto;
96 }
97 }