From cfe3fcfd275f7b5cb3aae9289cf32f814af9a9bb Mon Sep 17 00:00:00 2001
From: Mirco Nasuti <mirco.nasuti@chuv.ch>
Date: Mon, 4 Dec 2017 15:22:38 +0100
Subject: [PATCH] bugfix: adding groups to query

---
 .../java/eu/hbp/mip/controllers/VariablesApi.java     |  6 ++++--
 src/main/java/eu/hbp/mip/model/MiningQuery.java       | 11 +++++++++++
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/main/java/eu/hbp/mip/controllers/VariablesApi.java b/src/main/java/eu/hbp/mip/controllers/VariablesApi.java
index 99a462667..a08f7986c 100644
--- a/src/main/java/eu/hbp/mip/controllers/VariablesApi.java
+++ b/src/main/java/eu/hbp/mip/controllers/VariablesApi.java
@@ -156,8 +156,10 @@ public class VariablesApi {
 
         MiningQuery query = new MiningQuery();
         query.addVariable(new Variable(code));
-        List<String> groupings = Arrays.asList(histogramGroupings.split(","));
-        query.getGrouping().addAll(groupings.stream().map(Variable::new).collect(Collectors.toList()));
+        List<String> newGroups = Arrays.asList(histogramGroupings.split(","));
+        List<Variable> groupings = query.getGrouping();
+        groupings.addAll(newGroups.stream().map(Variable::new).collect(Collectors.toList()));
+        query.setGrouping(groupings);
         query.setAlgorithm(new Algorithm("histograms", "Histograms", false));
 
         return ResponseEntity.ok(histogramGroupings);
diff --git a/src/main/java/eu/hbp/mip/model/MiningQuery.java b/src/main/java/eu/hbp/mip/model/MiningQuery.java
index 3cec28ac8..139652a12 100644
--- a/src/main/java/eu/hbp/mip/model/MiningQuery.java
+++ b/src/main/java/eu/hbp/mip/model/MiningQuery.java
@@ -6,6 +6,7 @@ import eu.hbp.mip.utils.TypesConvert;
 import scala.collection.JavaConverters;
 import scala.collection.Seq;
 
+import java.util.LinkedList;
 import java.util.List;
 
 /**
@@ -19,6 +20,12 @@ public class MiningQuery {
     private String filters;
     private Algorithm algorithm;
 
+    public MiningQuery() {
+        this.variables = new LinkedList<>();
+        this.covariables = new LinkedList<>();
+        this.grouping = new LinkedList<>();
+    }
+
     public List<Variable> getVariables() {
         return variables;
     }
@@ -37,6 +44,8 @@ public class MiningQuery {
         this.covariables = covariables;
     }
 
+    public  void addCovariable(Variable variable) { this.covariables.add(variable); }
+
     public List<Variable> getGrouping() {
         return grouping;
     }
@@ -45,6 +54,8 @@ public class MiningQuery {
         this.grouping = grouping;
     }
 
+    public  void addGrouping(Variable variable) { this.grouping.add(variable); }
+
     public String getFilters() {
         return filters;
     }
-- 
GitLab