Revision 108ef8d8
Added by Katja Luther over 2 years ago
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/dto/QuantitativeDataDto.java | ||
---|---|---|
9 | 9 |
package eu.etaxonomy.cdm.api.service.dto; |
10 | 10 |
|
11 | 11 |
import java.math.BigDecimal; |
12 |
import java.util.ArrayList; |
|
12 | 13 |
import java.util.HashSet; |
14 |
import java.util.List; |
|
13 | 15 |
import java.util.Set; |
14 | 16 |
import java.util.UUID; |
15 | 17 |
|
16 | 18 |
import eu.etaxonomy.cdm.model.description.QuantitativeData; |
17 | 19 |
import eu.etaxonomy.cdm.model.description.StatisticalMeasurementValue; |
20 |
import eu.etaxonomy.cdm.model.term.DefinedTermBase; |
|
18 | 21 |
import eu.etaxonomy.cdm.persistence.dto.FeatureDto; |
19 | 22 |
import eu.etaxonomy.cdm.persistence.dto.TermDto; |
20 | 23 |
|
... | ... | |
70 | 73 |
this.values = values; |
71 | 74 |
} |
72 | 75 |
|
76 |
public void addValue(StatisticalMeasurementValueDto value) { |
|
77 |
this.values.add(value); |
|
78 |
} |
|
79 |
|
|
73 | 80 |
public BigDecimal getSpecificStatisticalValue(UUID typeUUID){ |
74 | 81 |
BigDecimal result = null; |
75 | 82 |
for (StatisticalMeasurementValueDto value : values){ |
... | ... | |
85 | 92 |
return measurementUnitDto.getIdInVocabulary(); |
86 | 93 |
} |
87 | 94 |
|
95 |
public static String getQuantitativeDataDtoSelect(){ |
|
96 |
String[] result = createSqlParts(); |
|
97 |
|
|
98 |
return result[0]+result[1]+result[2] + result[3]; |
|
99 |
} |
|
100 |
|
|
101 |
private static String[] createSqlParts() { |
|
102 |
//featureDto, uuid, states |
|
103 |
|
|
104 |
String sqlSelectString = "" |
|
105 |
+ "select a.uuid, " |
|
106 |
+ "feature.uuid, " |
|
107 |
+ "statVal.uuid, " |
|
108 |
+ "statVal.value, " |
|
109 |
+ "statVal.type, " |
|
110 |
+ "unit"; |
|
111 |
|
|
112 |
String sqlFromString = " FROM QuantitativeData as a "; |
|
113 |
|
|
114 |
String sqlJoinString = "LEFT JOIN a.statisticalValues as statVal " |
|
115 |
+ "LEFT JOIN a.feature as feature " |
|
116 |
+ "LEFT JOIN a.unit as unit "; |
|
117 |
|
|
118 |
String sqlWhereString = "WHERE a.inDescription.uuid = :uuid"; |
|
119 |
|
|
120 |
String[] result = new String[4]; |
|
121 |
result[0] = sqlSelectString; |
|
122 |
result[1] = sqlFromString; |
|
123 |
result[2] = sqlJoinString; |
|
124 |
result[3] = sqlWhereString; |
|
125 |
return result; |
|
126 |
} |
|
127 |
|
|
128 |
/** |
|
129 |
* @param result |
|
130 |
* @return |
|
131 |
*/ |
|
132 |
public static List<QuantitativeDataDto> quantitativeDataDtoListFrom(List<Object[]> result) { |
|
133 |
List<QuantitativeDataDto> dtoResult = new ArrayList<>(); |
|
134 |
QuantitativeDataDto dto = null; |
|
135 |
|
|
136 |
for (Object[] o: result){ |
|
137 |
UUID uuid = (UUID)o[0]; |
|
138 |
UUID featureUuid = (UUID)o[1]; |
|
139 |
if (dto == null || !dto.getElementUuid().equals(uuid)){ |
|
140 |
dto = new QuantitativeDataDto(uuid, new FeatureDto(featureUuid, null, null, null, null, null, null, true, false, true, null, true, false, null, null, null, null)); |
|
141 |
dtoResult.add(dto); |
|
142 |
} |
|
143 |
StatisticalMeasurementValueDto statVal = new StatisticalMeasurementValueDto(TermDto.fromTerm((DefinedTermBase)o[4]),(BigDecimal)o[3], (UUID)o[2]) ; |
|
144 |
dto.addValue(statVal); |
|
145 |
} |
|
146 |
|
|
147 |
|
|
148 |
return dtoResult; |
|
149 |
|
|
150 |
} |
|
151 |
|
|
88 | 152 |
|
89 | 153 |
} |
Also available in: Unified diff
ref #9843: fix taxonnode dto creation and add parent uuid - continue