From db9d1a401cf3de634acbc4b2aa853bd9c2490880 Mon Sep 17 00:00:00 2001 From: Mirco Nasuti <mirco.nasuti@chuv.ch> Date: Thu, 22 Dec 2016 12:36:59 +0100 Subject: [PATCH] refactoring : try to reduce NPath complexity --- .../eu/hbp/mip/controllers/RequestsApi.java | 50 +++++++------------ 1 file changed, 18 insertions(+), 32 deletions(-) diff --git a/src/main/java/eu/hbp/mip/controllers/RequestsApi.java b/src/main/java/eu/hbp/mip/controllers/RequestsApi.java index bbb864112..5477047d4 100644 --- a/src/main/java/eu/hbp/mip/controllers/RequestsApi.java +++ b/src/main/java/eu/hbp/mip/controllers/RequestsApi.java @@ -56,43 +56,19 @@ public class RequestsApi { String code = generateDSCode(query); Date date = new Date(); - List<String> variables = new LinkedList<>(); - List<String> groupings = new LinkedList<>(); - List<String> covariables = new LinkedList<>(); - List<String> filters = new LinkedList<>(); JsonObject q = gson.fromJson(gson.toJson(query, Query.class), JsonObject.class); - JsonArray queryVars = q.getAsJsonArray("variables") != null ? q.getAsJsonArray("variables") : new JsonArray(); - JsonArray queryGrps = q.getAsJsonArray("grouping") != null ? q.getAsJsonArray("grouping") : new JsonArray(); - JsonArray queryCoVars = q.getAsJsonArray("covariables") != null ? q.getAsJsonArray("covariables") : new JsonArray(); - JsonArray queryfltrs = q.getAsJsonArray("filter") != null ? q.getAsJsonArray("filter") : new JsonArray(); + List<String> variables = extractVarCodes(q, "variables"); + List<String> groupings = extractVarCodes(q, "grouping"); + List<String> covariables = extractVarCodes(q, "covariables"); + List<String> filters = extractVarCodes(q, "filter"); List<String> allVars = new LinkedList<>(); - - for (JsonElement var : queryVars) { - String varCode = var.getAsJsonObject().get("code").getAsString(); - variables.add(varCode); - allVars.add(varCode); - } - - for (JsonElement var : queryGrps) { - String varCode = var.getAsJsonObject().get("code").getAsString(); - groupings.add(varCode); - allVars.add(varCode); - } - - for (JsonElement var : queryCoVars) { - String varCode = var.getAsJsonObject().get("code").getAsString(); - covariables.add(varCode); - allVars.add(varCode); - } - - for (JsonElement var : queryfltrs) { - String fltCode = var.getAsJsonObject().get("code").getAsString(); - filters.add(fltCode); - allVars.add(fltCode); - } + allVars.addAll(variables); + allVars.addAll(groupings); + allVars.addAll(covariables); + allVars.addAll(filters); dataset.addProperty("code", code); dataset.addProperty("date", date.getTime()); @@ -105,6 +81,16 @@ public class RequestsApi { return ResponseEntity.ok(gson.fromJson(dataset, Object.class)); } + private List<String> extractVarCodes(JsonObject q, String field) { + List<String> codes = new LinkedList<>(); + JsonArray elements = q.getAsJsonArray(field) != null ? q.getAsJsonArray(field) : new JsonArray(); + for (JsonElement var : elements) { + String varCode = var.getAsJsonObject().get("code").getAsString(); + codes.add(varCode); + } + return codes; + } + private String generateDSCode(Query query) { String prefix = "DS"; -- GitLab