From 8e15c0418454d22ce0433aedb34df47f8d2e0c4e Mon Sep 17 00:00:00 2001
From: Manuel Spuhler <manuel.spuhler@chuv.ch>
Date: Fri, 27 Apr 2018 16:12:17 +0200
Subject: [PATCH] Parsing for exareme algorithm

---
 .../eu/hbp/mip/controllers/ExperimentApi.java |  4 ----
 .../java/eu/hbp/mip/model/Experiment.java     | 19 ++++++++++++++-----
 2 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/src/main/java/eu/hbp/mip/controllers/ExperimentApi.java b/src/main/java/eu/hbp/mip/controllers/ExperimentApi.java
index 43c806378..8ffd66a77 100644
--- a/src/main/java/eu/hbp/mip/controllers/ExperimentApi.java
+++ b/src/main/java/eu/hbp/mip/controllers/ExperimentApi.java
@@ -308,10 +308,6 @@ public class ExperimentApi extends WokenClientController {
                 experiment.setHasServerError(true);
                 experiment.setResult(e.getMessage());
             }
-            if(!JSONUtil.isJSONValid(experiment.getResult()))
-            {
-                experiment.setResult("Unsupported variables !");
-            }
             finishExperiment(experiment);
         }).start();
         // << Temporary
diff --git a/src/main/java/eu/hbp/mip/model/Experiment.java b/src/main/java/eu/hbp/mip/model/Experiment.java
index 727f26ddb..2ffe3196f 100644
--- a/src/main/java/eu/hbp/mip/model/Experiment.java
+++ b/src/main/java/eu/hbp/mip/model/Experiment.java
@@ -270,6 +270,7 @@ public class Experiment {
         ExaremeQueryElement datasetsEl = new ExaremeQueryElement();
         datasetsEl.setName("dataset");
         datasetsEl.setDesc("");
+        //datasetsEl.setValue("adni,ppmi,edsd,fbf,clm");
         datasetsEl.setValue(datasets.toString());
         queryElements.add(datasetsEl);
 
@@ -304,15 +305,23 @@ public class Experiment {
             } else {
                 JsonArray jsonArrayResult = new JsonArray();
                 JsonObject jsonObjectResult = new JsonObject();
-                exp.remove("result");
-
-                JsonObject jsonData = parser.parse(this.result).getAsJsonArray().get(0).getAsJsonObject();
-                jsonObjectResult.add("data", jsonData);
 
                 JsonObject algoObject = parser.parse(this.algorithms).getAsJsonArray().get(0).getAsJsonObject();
                 jsonObjectResult.add("algorithm", algoObject.get("name"));
                 jsonObjectResult.add("code", algoObject.get("code"));
 
+                exp.remove("result");
+                JsonObject tryJson;
+                try {
+                    tryJson = parser.parse(this.result).getAsJsonArray().get(0).getAsJsonObject();
+                } catch(JsonParseException e) {
+                    tryJson = new JsonObject();
+                    tryJson.add("result", new JsonPrimitive(this.result));
+                }
+
+                JsonObject jsonData = tryJson;
+                jsonObjectResult.add("data", jsonData);
+
                 // add mime-type
                 String algo = isExaremeAlgorithm._2;
                 if (jsonData.get("Error") != null) {
@@ -461,6 +470,6 @@ public class Experiment {
             algorithm = WP_MODEL_TREE;
         }
 
-        return new Tuple2(isExareme, algorithm);
+        return new Tuple2<Boolean, String>(isExareme, algorithm);
     }
 }
-- 
GitLab