sort states in aggregated descriptions on count
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / dto / IncludedTaxaDTO.java
1 /**
2 * Copyright (C) 2014 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.util.ArrayList;
12 import java.util.List;
13 import java.util.UUID;
14
15 import org.joda.time.DateTime;
16
17 /**
18 * @author a.mueller
19 * @since 2014-05-20
20 */
21 public class IncludedTaxaDTO {
22
23 public class IncludedTaxon{
24 private UUID taxonUuid;
25 private List<UUID> pathToTaxon = new ArrayList<>();
26 private boolean doubtful = false;
27
28
29 public IncludedTaxon(UUID taxonUuid, List<UUID> pathToTaxon, boolean doubtful) {
30 this.taxonUuid = taxonUuid;
31 this.pathToTaxon = pathToTaxon;
32 this.doubtful = doubtful;
33 }
34
35
36 public UUID getTaxonUuid() {
37 return taxonUuid;
38 }
39 public void setTaxonUuid(UUID taxonUuid) {
40 this.taxonUuid = taxonUuid;
41 }
42 public List<UUID> getPathToTaxon() {
43 return pathToTaxon;
44 }
45 public void setPathToTaxon(List<UUID> pathToTaxon) {
46 this.pathToTaxon = pathToTaxon;
47 }
48 public boolean isDoubtful() {
49 return doubtful;
50 }
51 public void setDoubtful(boolean doubtful) {
52 this.doubtful = doubtful;
53 }
54
55
56 @Override
57 public String toString(){
58 return taxonUuid == null? super.toString() : taxonUuid.toString();
59 }
60
61 }
62
63 private List<IncludedTaxon> includedTaxa = new ArrayList<>();
64
65 private DateTime date = DateTime.now();
66
67 //** ******************* CONSTRUCTOR **************************/
68
69 public IncludedTaxaDTO() {}
70
71 public IncludedTaxaDTO(UUID taxonUuid) {
72 IncludedTaxon originalTaxon = new IncludedTaxon(taxonUuid, new ArrayList<>(), false);
73 includedTaxa.add(originalTaxon);
74 }
75
76 // ************************** GETTER / SETTER ***********************/
77
78 public List<IncludedTaxon> getIncludedTaxa() {
79 return includedTaxa;
80 }
81
82 public void setIncludedTaxa(List<IncludedTaxon> includedTaxa) {
83 this.includedTaxa = includedTaxa;
84 }
85
86 public void addIncludedTaxon(IncludedTaxon includedTaxon){
87 includedTaxa.add(includedTaxon);
88 }
89
90 public void addIncludedTaxon(UUID taxonUuid, List<UUID> uuidPath, boolean doubtful){
91 includedTaxa.add(new IncludedTaxon(taxonUuid, uuidPath, doubtful));
92 }
93
94 public DateTime getDate() {
95 return date;
96 }
97 public void setDate(DateTime date) {
98 this.date = date;
99 }
100
101 public int getSize(){
102 return includedTaxa.size();
103 }
104
105 public boolean contains(UUID taxonUuid) {
106 for (IncludedTaxon taxon: includedTaxa){
107 if (taxon.taxonUuid.equals(taxonUuid)){
108 return true;
109 }
110 }
111 return false;
112 }
113
114 @Override
115 public String toString(){
116 String result = "";
117 for (IncludedTaxon taxon : includedTaxa){
118 result += taxon.toString() + ",";
119 }
120 if (result.length() > 0){
121 result = result.substring(0, result.length() - 1);
122 }
123
124 result = "[" + result + "]";
125 return result;
126 }
127
128 }