Project

General

Profile

« Previous | Next » 

Revision 128317f4

Added by Katja Luther over 2 years ago

code cleaning

View differences:

cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonNodeDaoHibernateImpl.java
1149 1149

  
1150 1150
    @Override
1151 1151
    public List<TaxonNodeDto> getTaxonNodeDto(Integer limit, String pattern, UUID classificationUuid) {
1152
        String queryString = "SELECT new " + SortableTaxonNodeQueryResult.class.getName() + "("
1153
                + "tn.uuid, tn.id, t.titleCache, rank "
1154
                + ") "
1155
                + " FROM TaxonNode tn "
1156
                + "   INNER JOIN tn.taxon AS t "
1157
                + "   INNER JOIN tn.classification AS cls "
1158
                + "   INNER JOIN t.name AS name "
1159
                + "   LEFT OUTER JOIN name.rank AS rank "
1160
                + " WHERE t.titleCache LIKE :pattern ";
1152
        String queryString = getTaxonNodeDtoQuery();
1153
        queryString += "   INNER JOIN tn.classification AS cls " + " WHERE t.titleCache LIKE :pattern ";
1154

  
1161 1155
        if(classificationUuid != null){
1162 1156
            queryString += "AND cls.uuid = :classificationUuid";
1163 1157
        }
......
1171 1165

  
1172 1166
        @SuppressWarnings("unchecked")
1173 1167
        List<SortableTaxonNodeQueryResult> result = query.list();
1174
        Collections.sort(result, new SortableTaxonNodeQueryResultComparator());
1168
        List<TaxonNodeDto> list = createNodeDtos(result);
1175 1169

  
1176
        List<TaxonNodeDto> list = new ArrayList<>();
1177
        for(SortableTaxonNodeQueryResult queryDTO : result){
1178
            list.add(new TaxonNodeDto(queryDTO.getTaxonNodeUuid(), queryDTO.getTaxonNodeId(), queryDTO.getTaxonTitleCache()));
1179
        }
1180 1170
        return list;
1181 1171
    }
1182 1172

  
1183 1173
    @Override
1184 1174
    public TaxonNodeDto getTaxonNodeDto(UUID nodeUuid) {
1185
        String queryString = "SELECT new " + SortableTaxonNodeQueryResult.class.getName() + "("
1186
                + "tn.uuid, tn.id, t.titleCache, name.titleCache, rank "
1187
                + ") "
1188
                + " FROM TaxonNode tn "
1189
                + "   INNER JOIN tn.taxon AS t "
1190
                + "   INNER JOIN t.name AS name "
1191
                + "   LEFT OUTER JOIN name.rank AS rank "
1192
                + " WHERE t.uuid LIKE :uuid ";
1193

  
1194

  
1175
        @SuppressWarnings("unchecked")
1176
        String queryString = getTaxonNodeDtoQuery();
1177
        queryString += " WHERE t.uuid LIKE :uuid ";
1195 1178
        Query query =  getSession().createQuery(queryString);
1196 1179

  
1197 1180
        query.setParameter("uuid", nodeUuid.toString());
......
1199 1182

  
1200 1183
        @SuppressWarnings("unchecked")
1201 1184
        List<SortableTaxonNodeQueryResult> result = query.list();
1202
        Collections.sort(result, new SortableTaxonNodeQueryResultComparator());
1203 1185

  
1204
        List<TaxonNodeDto> list = new ArrayList<>();
1205
        for(SortableTaxonNodeQueryResult queryDTO : result){
1206
            list.add(new TaxonNodeDto(queryDTO.getTaxonNodeUuid(), queryDTO.getTaxonNodeId(), queryDTO.getNameTitleCache(), queryDTO.getTaxonTitleCache()));
1207
        }
1186

  
1187

  
1188
        List<TaxonNodeDto> list = createNodeDtos(result);
1208 1189
        return list.get(0);
1209 1190
    }
1210 1191

  
1211
    @Override
1212
    public List<TaxonNodeDto> getTaxonNodeDtos(List<UUID> nodeUuids) {
1192
    /**
1193
     * @param nodeUuid
1194
     * @return
1195
     */
1196
    private String getTaxonNodeDtoQuery() {
1213 1197
        String queryString = "SELECT new " + SortableTaxonNodeQueryResult.class.getName() + "("
1214 1198
                + "tn.uuid, tn.id, t.titleCache, name.titleCache, rank "
1215 1199
                + ") "
1216 1200
                + " FROM TaxonNode tn "
1217 1201
                + "   INNER JOIN tn.taxon AS t "
1218 1202
                + "   INNER JOIN t.name AS name "
1219
                + "   LEFT OUTER JOIN name.rank AS rank "
1220
                + " WHERE t.uuid IN (:uuid) ";
1203
                + "   LEFT OUTER JOIN name.rank AS rank ";
1204

  
1205
        return queryString;
1206
    }
1207

  
1208

  
1209

  
1210
    @Override
1211
    public List<TaxonNodeDto> getTaxonNodeDtos(List<UUID> nodeUuids) {
1212
        String queryString = getTaxonNodeDtoQuery();
1213
        queryString = queryString + " WHERE t.uuid IN (:uuid) ";
1221 1214

  
1222 1215

  
1223 1216
        Query query =  getSession().createQuery(queryString);
1224
//        List<String> uuidStrings = nodeUuids.stream().map(e -> e.toString()).collect(Collectors.toList());
1225 1217

  
1226 1218
        query.setParameterList("uuid", nodeUuids);
1227 1219

  
......
1230 1222
        List<SortableTaxonNodeQueryResult> result = query.list();
1231 1223
        Collections.sort(result, new SortableTaxonNodeQueryResultComparator());
1232 1224

  
1233
        List<TaxonNodeDto> list = new ArrayList<>();
1225
        List<TaxonNodeDto> list = createNodeDtos(result);
1226

  
1227
        return list;
1228
    }
1229

  
1230
    /**
1231
     * @param result
1232
     * @param list
1233
     */
1234
    private List<TaxonNodeDto> createNodeDtos(List<SortableTaxonNodeQueryResult> result) {
1235
        List<TaxonNodeDto> nodeDtos = new ArrayList<>();
1236
        Collections.sort(result, new SortableTaxonNodeQueryResultComparator());
1234 1237
        for(SortableTaxonNodeQueryResult queryDTO : result){
1235 1238
            TaxonNodeDto nodeDto = new TaxonNodeDto(queryDTO.getTaxonNodeUuid(), queryDTO.getTaxonNodeId(), queryDTO.getNameTitleCache(), queryDTO.getTaxonTitleCache(), queryDTO.getNameRank().getOrderIndex());
1236

  
1237
            list.add(nodeDto);
1239
            nodeDtos.add(nodeDto);
1238 1240
        }
1239
        return list;
1241
        return nodeDtos;
1240 1242
    }
1241 1243

  
1242 1244
    @Override
1243 1245
    public List<TaxonNodeDto> getTaxonNodeForTaxonInClassificationDto(UUID taxonUUID, UUID classificationUuid) {
1244
        String queryString = "SELECT new " + SortableTaxonNodeQueryResult.class.getName() + "("
1245
                + "tn.uuid, tn.id, t.titleCache, name.titleCache, rank "
1246
                + ") "
1247
                + " FROM TaxonNode tn "
1248
                + "   INNER JOIN tn.taxon AS t "
1249
                + "   INNER JOIN tn.classification AS cls "
1250
                + "   INNER JOIN tn.taxon AS t "
1251
                + "   INNER JOIN t.name AS name "
1252
                + "   LEFT OUTER JOIN name.rank AS rank "
1253
//                + "   LEFT OUTER JOIN tn.taxon.name.rank AS rank "
1254
                + " WHERE t.uuid = :uuid ";
1246
        String queryString = getTaxonNodeDtoQuery();
1247
        queryString = queryString + "   INNER JOIN tn.classification AS cls "  + " WHERE t.uuid = :uuid ";
1248

  
1255 1249
        if(classificationUuid != null){
1256 1250
            queryString += "AND cls.uuid = :classificationUuid";
1257 1251
        }
1258 1252

  
1259 1253
        Query query =  getSession().createQuery(queryString);
1260

  
1261 1254
        query.setParameter("uuid", taxonUUID);
1255

  
1262 1256
        if(classificationUuid != null){
1263 1257
            query.setParameter("classificationUuid", classificationUuid);
1264 1258
        }
1265 1259

  
1266 1260
        @SuppressWarnings("unchecked")
1267 1261
        List<SortableTaxonNodeQueryResult> result = query.list();
1268
        Collections.sort(result, new SortableTaxonNodeQueryResultComparator());
1269 1262

  
1270
        List<TaxonNodeDto> list = new ArrayList<>();
1271
        for(SortableTaxonNodeQueryResult queryDTO : result){
1272
            list.add(new TaxonNodeDto(queryDTO.getTaxonNodeUuid(), queryDTO.getTaxonNodeId(), queryDTO.getNameTitleCache(),queryDTO.getTaxonTitleCache(), queryDTO.getNameRank().getOrderIndex()));
1273
        }
1263
        List<TaxonNodeDto> list = createNodeDtos(result);
1264

  
1274 1265
        return list;
1275 1266
    }
1276 1267

  

Also available in: Unified diff