Project

General

Profile

« Previous | Next » 

Revision 108ef8d8

Added by Katja Luther over 2 years ago

ref #9843: fix taxonnode dto creation and add parent uuid - continue

View differences:

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