diff --git a/src/main/java/org/hbp/mip/controllers/MiningApi.java b/src/main/java/org/hbp/mip/controllers/MiningApi.java index d89008594716c235c7f878935d4eb8e2e8ec3bb2..e4b7429e6445f4cf4da0b447186fa70d86afed96 100644 --- a/src/main/java/org/hbp/mip/controllers/MiningApi.java +++ b/src/main/java/org/hbp/mip/controllers/MiningApi.java @@ -7,6 +7,7 @@ package org.hbp.mip.controllers; import com.google.gson.Gson; import com.google.gson.JsonParser; import io.swagger.annotations.*; +import org.hbp.mip.model.ExaremeQueryElement; import org.hbp.mip.model.Model; import org.hbp.mip.model.SimpleMiningQuery; import org.hbp.mip.model.Variable; @@ -167,13 +168,72 @@ public class MiningApi { private ResponseEntity<String> postExaremeMining(String algoCode, String modelSlug) throws Exception { + + Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + Model model = null; + + try { + session.beginTransaction(); + model = (Model) session.createQuery("FROM Model WHERE slug= :slug") + .setString("slug", modelSlug) + .uniqueResult(); + session.getTransaction().commit(); + } catch (Exception e) + { + if(session.getTransaction() != null) + { + session.getTransaction().rollback(); + throw e; + } + } + + LinkedList<ExaremeQueryElement> queryElements = new LinkedList<>(); + for (Variable var : model.getQuery().getVariables()) + { + ExaremeQueryElement el = new ExaremeQueryElement(); + el.setName("variable"); + el.setDesc(""); + el.setValue(var.getCode()); + queryElements.add(el); + } + for (Variable var : model.getQuery().getCovariables()) + { + ExaremeQueryElement el = new ExaremeQueryElement(); + el.setName("covariables"); + el.setDesc(""); + el.setValue(var.getCode()); + queryElements.add(el); + } + for (Variable var : model.getQuery().getGrouping()) + { + ExaremeQueryElement el = new ExaremeQueryElement(); + el.setName("groupings"); + el.setDesc(""); + el.setValue(var.getCode()); + queryElements.add(el); + } + + ExaremeQueryElement tableEl = new ExaremeQueryElement(); + tableEl.setName("showtable"); + tableEl.setDesc(""); + tableEl.setValue("TotalResults"); + queryElements.add(tableEl); + + ExaremeQueryElement formatEl = new ExaremeQueryElement(); + formatEl.setName("format"); + formatEl.setDesc(""); + formatEl.setValue("True"); + queryElements.add(formatEl); + + String jsonQuery = new Gson().toJson(queryElements); + try { /* Launch computation */ String url = miningExaremeQueryUrl +"/"+algoCode+"/?format=true"; StringBuilder results = new StringBuilder(); - int code = HTTPUtil.sendPost(url, modelSlug, results); + int code = HTTPUtil.sendPost(url, jsonQuery, results); if (code < 200 || code > 299) { return new ResponseEntity<>(results.toString(), HttpStatus.valueOf(code)); @@ -190,7 +250,7 @@ public class MiningApi { while (progress < 100) { Thread.sleep(200); results = new StringBuilder(); - code = HTTPUtil.sendPost(url, modelSlug, results); + code = HTTPUtil.sendPost(url, jsonQuery, results); if (code < 200 || code > 299) { return new ResponseEntity<>(results.toString(), HttpStatus.valueOf(code)); @@ -202,7 +262,7 @@ public class MiningApi { url = miningExaremeQueryUrl +"/"+key+"/result"; results = new StringBuilder(); - code = HTTPUtil.sendPost(url, modelSlug, results); + code = HTTPUtil.sendPost(url, jsonQuery, results); return new ResponseEntity<>(results.toString(), HttpStatus.valueOf(code)); } diff --git a/src/main/java/org/hbp/mip/model/ExaremeQuery.java b/src/main/java/org/hbp/mip/model/ExaremeQuery.java deleted file mode 100644 index 269c7880475b6836b1d52e06e94e458ab798dcdc..0000000000000000000000000000000000000000 --- a/src/main/java/org/hbp/mip/model/ExaremeQuery.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.hbp.mip.model; - -/** - * Created by mirco on 20.06.16. - */ -public class ExaremeQuery { -} diff --git a/src/main/java/org/hbp/mip/model/ExaremeQueryElement.java b/src/main/java/org/hbp/mip/model/ExaremeQueryElement.java new file mode 100644 index 0000000000000000000000000000000000000000..dba6d6269da25986a0d39028d927f61563b39ae8 --- /dev/null +++ b/src/main/java/org/hbp/mip/model/ExaremeQueryElement.java @@ -0,0 +1,43 @@ +package org.hbp.mip.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; + +/** + * Created by mirco on 20.06.16. + */ + +@ApiModel +@JsonInclude(JsonInclude.Include.NON_NULL) +public class ExaremeQueryElement { + + private String name; + + private String desc; + + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +}