d6cc021cacfd29ff2916c4b6e5ceb8621abe5693
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / dto / TaxonDescriptionDTO.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.HashSet;
13 import java.util.Set;
14 import java.util.UUID;
15
16 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
17 import eu.etaxonomy.cdm.model.description.Distribution;
18 import eu.etaxonomy.cdm.model.description.TaxonDescription;
19 import eu.etaxonomy.cdm.model.taxon.Taxon;
20
21 /**
22 * @author k.luther
23 * @since 30.11.2018
24 *
25 */
26 public class TaxonDescriptionDTO implements Serializable{
27
28 private static final long serialVersionUID = -4440059497898077690L;
29 UUID taxonUUID;
30 Set<TaxonDescription> descriptions = new HashSet();
31
32 public TaxonDescriptionDTO(Taxon taxon, boolean onlyUseDefault){
33 this.taxonUUID = taxon.getUuid();
34
35 for (TaxonDescription desc: taxon.getDescriptions()){
36 if (desc.isDefault()) {
37 descriptions.add(desc);
38 if (onlyUseDefault) {
39 break;
40 }
41 }
42 }
43 if (descriptions.isEmpty() || !onlyUseDefault) {
44 for (TaxonDescription desc: taxon.getDescriptions()){
45 if (desc.isComputed()) {
46 continue;
47 }
48 for (DescriptionElementBase element: desc.getElements()){
49 if (element instanceof Distribution){
50 descriptions.add(desc);
51 }
52
53 }
54 }
55 }
56 }
57
58
59
60
61 /**
62 * @return the descriptions
63 */
64 public Set<TaxonDescription> getDescriptions() {
65 return descriptions;
66 }
67
68 /**
69 * @param descriptions the descriptions to set
70 */
71 public void setDescriptions(Set<TaxonDescription> descriptions) {
72 this.descriptions = descriptions;
73 }
74
75 /**
76 * @return the taxonUUID
77 */
78 public UUID getTaxonUUID() {
79 return taxonUUID;
80 }
81
82 /**
83 * @param taxonUUID the taxonUUID to set
84 */
85 public void setTaxonUUID(UUID taxonUUID) {
86 this.taxonUUID = taxonUUID;
87 }
88
89
90
91
92
93
94 }