diff --git a/src/main/java/org/hbp/mip/controllers/ExperimentApi.java b/src/main/java/org/hbp/mip/controllers/ExperimentApi.java index 0768b77d24b4f74fc57a4b41687169139da0f7b8..4c80015b04ad7b69da6e824356d5d66ddbaf2c50 100644 --- a/src/main/java/org/hbp/mip/controllers/ExperimentApi.java +++ b/src/main/java/org/hbp/mip/controllers/ExperimentApi.java @@ -1,14 +1,9 @@ package org.hbp.mip.controllers; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; +import com.google.gson.*; import io.swagger.annotations.*; import org.hbp.mip.MIPApplication; -import org.hbp.mip.model.Experiment; -import org.hbp.mip.model.Model; -import org.hbp.mip.model.User; +import org.hbp.mip.model.*; import org.hbp.mip.utils.HTTPUtil; import org.hbp.mip.utils.HibernateUtil; import org.hibernate.Query; @@ -22,10 +17,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.io.*; -import java.net.HttpURLConnection; -import java.net.MalformedURLException; -import java.net.ProtocolException; -import java.net.URL; +import java.net.*; import java.util.Date; import java.util.LinkedList; import java.util.List; @@ -53,10 +45,12 @@ public class ExperimentApi { @Value("#{'${workflow.experimentUrl:http://dockerhost:8087/experiment}'}") private String experimentUrl; - @Value("#{'${workflow.listMethodsUrl:http://dockerhost:8087/list-methods}'}") private String listMethodsUrl; + @Value("#{'${workflow.miningExaremeUrl:http://hbps2.chuv.ch:9090/mining/query}'}") + private String miningExaremeQueryUrl; + @Autowired MIPApplication mipApplication; @@ -162,12 +156,129 @@ public class ExperimentApi { } try { - sendPost(experiment); + if(isExaremeAlgo(experiment)) + { + sendExaremePost(experiment); + } + else + { + sendPost(experiment); + } } catch (MalformedURLException mue) {} // ignore return new ResponseEntity<>(gson.toJson(experiment), HttpStatus.OK); } + private void sendExaremePost(Experiment experiment) { + + Model model = experiment.getModel(); + String algoCode = "WP_LINEAR_REGRESSION"; + + 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); + + new Thread() { + public void run() { + try { + + /* Launch computation */ + + String url = miningExaremeQueryUrl + "/" + algoCode + "/?format=true"; + StringBuilder results = new StringBuilder(); + int code = HTTPUtil.sendPost(url, jsonQuery, results); + if (code < 200 || code > 299) { + experiment.setHasError(true); + experiment.setHasServerError(true); + experiment.setResult("Exareme returned code : " + code); + } + + JsonParser parser = new JsonParser(); + String key = parser.parse(results.toString()).getAsJsonObject().get("queryKey").getAsString(); + + /* Wait for result */ + + url = miningExaremeQueryUrl + "/" + key + "/status"; + double progress = 0; + + while (progress < 100) { + Thread.sleep(200); + results = new StringBuilder(); + code = HTTPUtil.sendPost(url, jsonQuery, results); + if (code < 200 || code > 299) { + experiment.setHasError(true); + experiment.setHasServerError(true); + experiment.setResult("Exareme returned code : " + code); + } + progress = parser.parse(results.toString()).getAsJsonObject().get("status").getAsDouble(); + } + + /* Get result */ + + url = miningExaremeQueryUrl + "/" + key + "/result"; + results = new StringBuilder(); + code = HTTPUtil.sendPost(url, jsonQuery, results); + + experiment.setResult(results.toString().replace("\0", "")); + experiment.setHasError(code >= 400); + experiment.setHasServerError(code >= 500); + + } catch (UnknownHostException uhe) { + uhe.printStackTrace(); + experiment.setHasError(true); + experiment.setHasServerError(true); + experiment.setResult(uhe.getMessage()); + } catch (InterruptedException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + } + }.start(); + } + + private boolean isExaremeAlgo(Experiment experiment) { + JsonArray algorithms = new JsonParser().parse(experiment.getAlgorithms()).getAsJsonArray(); + String algoCode = algorithms.get(0).getAsJsonObject().get("code").getAsString(); + return algoCode.equals("glm_exareme"); + } + @ApiOperation(value = "get an experiment", response = Experiment.class) @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") }) @RequestMapping(value = "/{uuid}", method = RequestMethod.GET) @@ -387,7 +498,7 @@ public class ExperimentApi { JsonObject catalog = new JsonParser().parse(response.toString()).getAsJsonObject(); - InputStream is = MiningApi.class.getClassLoader().getResourceAsStream(EXAREME_ALGO_JSON_FILE); + InputStream is = ExperimentApi.class.getClassLoader().getResourceAsStream(EXAREME_ALGO_JSON_FILE); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); JsonObject exaremeAlgo = new JsonParser().parse(br).getAsJsonObject(); diff --git a/src/main/java/org/hbp/mip/controllers/MiningApi.java b/src/main/java/org/hbp/mip/controllers/MiningApi.java deleted file mode 100644 index 15addb9e1983b16e0a75e75f9b02fb7668b67384..0000000000000000000000000000000000000000 --- a/src/main/java/org/hbp/mip/controllers/MiningApi.java +++ /dev/null @@ -1,269 +0,0 @@ -/** - * Created by mirco on 02.03.16. - */ - -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; -import org.hbp.mip.model.algorithm.Algorithm; -import org.hbp.mip.model.algorithm.Catalog; -import org.hbp.mip.utils.HTTPUtil; -import org.hbp.mip.utils.HibernateUtil; -import org.hibernate.Session; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.net.UnknownHostException; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.Map; - -@RestController -@RequestMapping(value = "/mining") -@Api(value = "/mining", description = "Forward mining API") -public class MiningApi { - - private static final String EXAREME_ALGO_JSON_FILE="data/exareme_algorithms.json"; - - private static final String ML_SOURCE = "ML"; - - private static final String EXAREME_SOURCE = "exareme"; - - @Value("#{'${workflow.listMethodsUrl:http://hbps1.chuv.ch:8087/list-methods}'}") - private String listMethodsUrl; - - @Value("#{'${workflow.miningMipUrl:http://hbps1.chuv.ch:8087/mining}'}") - private String miningMipUrl; - - @Value("#{'${workflow.miningExaremeUrl:http://hbps2.chuv.ch:9090/mining/query}'}") - private String miningExaremeQueryUrl; - - @ApiOperation(value = "Send a request to the workflow for data mining", response = String.class) - @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") }) - @RequestMapping(method = RequestMethod.POST) - public ResponseEntity<String> postMining( - @RequestBody @ApiParam(value = "Query for the data mining", required = true) String query - ) throws Exception { - - StringBuilder response = new StringBuilder(); - - int code = HTTPUtil.sendGet(listMethodsUrl, response); - if (code < 200 || code > 299) { - return new ResponseEntity<>(response.toString(), HttpStatus.valueOf(code)); - } - - Catalog catalog = new Gson().fromJson(response.toString(), Catalog.class); - for (Algorithm algo: catalog.getAlgorithms()) { - algo.setSource(ML_SOURCE); - } - - InputStream is = MiningApi.class.getClassLoader().getResourceAsStream(EXAREME_ALGO_JSON_FILE); - InputStreamReader isr = new InputStreamReader(is); - BufferedReader br = new BufferedReader(isr); - Algorithm exaremeGLR = new Gson().fromJson(br, Algorithm.class); - exaremeGLR.setSource(EXAREME_SOURCE); - catalog.getAlgorithms().add(exaremeGLR); - - String algoCode = new JsonParser().parse(query).getAsJsonObject() - .get("algorithm").getAsJsonObject() - .get("code").getAsString(); - - String modelSlug = new JsonParser().parse(query).getAsJsonObject() - .get("model").getAsString(); - - 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; - } - } - - for(Algorithm algo : catalog.getAlgorithms()) - { - if (algo.getCode().equals(algoCode)) - { - if(algo.getSource().equals(ML_SOURCE)) { - Algorithm algorithm = new Gson().fromJson(new JsonParser().parse(query).getAsJsonObject() - .get("algorithm").getAsJsonObject(), Algorithm.class); - return postMipMining(algorithm, model); - } - else if(algo.getSource().equals(EXAREME_SOURCE)) - { - return postExaremeMining("WP_LINEAR_REGRESSION", model); - } - } - } - - return new ResponseEntity<>(HttpStatus.BAD_REQUEST); - } - - private ResponseEntity<String> postMipMining(Algorithm algorithm, Model model) throws Exception { - - SimpleMiningQuery smq = new SimpleMiningQuery(); - smq.setAlgorithm(algorithm); - - LinkedList<Map<String,String>> vars = new LinkedList<>(); - for(Variable var : model.getQuery().getVariables()) - { - Map<String,String> m = new HashMap<>(); - m.put("code", var.getCode()); - vars.add(m); - } - smq.setVariables(vars); - - LinkedList<Map<String,String>> covars = new LinkedList<>(); - for(Variable var : model.getQuery().getCovariables()) - { - Map<String,String> m = new HashMap<>(); - m.put("code", var.getCode()); - covars.add(m); - } - smq.setCovariables(covars); - - LinkedList<Map<String,String>> grps = new LinkedList<>(); - for(Variable var : model.getQuery().getGrouping()) - { - Map<String,String> m = new HashMap<>(); - m.put("code", var.getCode()); - grps.add(m); - } - smq.setGrouping(grps); - - smq.setFilters(new LinkedList<>()); - - try { - StringBuilder results = new StringBuilder(); - String jsonQuery = new Gson().toJson(smq); - - System.out.println("****************************************"); - System.out.println("SimpleMining content : " + jsonQuery); - System.out.println("****************************************"); - - int code = HTTPUtil.sendPost(miningMipUrl, jsonQuery, results); - - return new ResponseEntity<>(results.toString(), HttpStatus.valueOf(code)); - } - catch(UnknownHostException uhe) { - uhe.printStackTrace(); - return new ResponseEntity<>(HttpStatus.BAD_GATEWAY); - } - } - - - private ResponseEntity<String> postExaremeMining(String algoCode, Model model) throws Exception { - - 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); - - System.out.println("****************************************"); - System.out.println("ExaremeMining content : " + jsonQuery); - System.out.println("****************************************"); - - try { - - /* Launch computation */ - - String url = miningExaremeQueryUrl +"/"+algoCode+"/?format=true"; - StringBuilder results = new StringBuilder(); - int code = HTTPUtil.sendPost(url, jsonQuery, results); - if (code < 200 || code > 299) - { - return new ResponseEntity<>(results.toString(), HttpStatus.valueOf(code)); - } - - JsonParser parser = new JsonParser(); - String key = parser.parse(results.toString()).getAsJsonObject().get("queryKey").getAsString(); - - /* Wait for result */ - - url = miningExaremeQueryUrl +"/"+key+"/status"; - double progress = 0; - - while (progress < 100) { - Thread.sleep(200); - results = new StringBuilder(); - code = HTTPUtil.sendPost(url, jsonQuery, results); - if (code < 200 || code > 299) - { - return new ResponseEntity<>(results.toString(), HttpStatus.valueOf(code)); - } - progress = parser.parse(results.toString()).getAsJsonObject().get("status").getAsDouble(); - } - - /* Get result */ - - url = miningExaremeQueryUrl +"/"+key+"/result"; - results = new StringBuilder(); - code = HTTPUtil.sendPost(url, jsonQuery, results); - - return new ResponseEntity<>(results.toString(), HttpStatus.valueOf(code)); - } - catch(UnknownHostException uhe) { - uhe.printStackTrace(); - return new ResponseEntity<>(HttpStatus.BAD_GATEWAY); - } - } - -} diff --git a/src/main/java/org/hbp/mip/model/SimpleMiningQuery.java b/src/main/java/org/hbp/mip/model/SimpleMiningQuery.java deleted file mode 100644 index 7f4dc9c34c5139c92cbd8f7027f7a0625eb9eeb8..0000000000000000000000000000000000000000 --- a/src/main/java/org/hbp/mip/model/SimpleMiningQuery.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.hbp.mip.model; - -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.annotations.ApiModel; -import org.hbp.mip.model.algorithm.Algorithm; - -import java.util.List; -import java.util.Map; - -/** - * Created by mirco on 20.06.16. - */ - -@ApiModel -@JsonInclude(JsonInclude.Include.NON_NULL) -public class SimpleMiningQuery { - - private Algorithm algorithm; - - private List<Map<String,String>> variables; - - private List<Map<String,String>> covariables; - - private List<Map<String,String>> grouping; - - private List<Map<String,String>> filters; - - - public Algorithm getAlgorithm() { - return algorithm; - } - - public void setAlgorithm(Algorithm algorithm) { - this.algorithm = algorithm; - } - - public List<Map<String, String>> getVariables() { - return variables; - } - - public void setVariables(List<Map<String, String>> variables) { - this.variables = variables; - } - - public List<Map<String, String>> getCovariables() { - return covariables; - } - - public void setCovariables(List<Map<String, String>> covariables) { - this.covariables = covariables; - } - - public List<Map<String, String>> getGrouping() { - return grouping; - } - - public void setGrouping(List<Map<String, String>> grouping) { - this.grouping = grouping; - } - - public List<Map<String, String>> getFilters() { - return filters; - } - - public void setFilters(List<Map<String, String>> filters) { - this.filters = filters; - } -} diff --git a/src/main/java/org/hbp/mip/model/algorithm/AlgoConstraint.java b/src/main/java/org/hbp/mip/model/algorithm/AlgoConstraint.java deleted file mode 100644 index af90d4291cd2d2c8fa849542f9fd3930e062a10e..0000000000000000000000000000000000000000 --- a/src/main/java/org/hbp/mip/model/algorithm/AlgoConstraint.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.hbp.mip.model.algorithm; - -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.annotations.ApiModel; - -/** - * Created by mirco on 17.06.16. - */ - -@ApiModel -@JsonInclude(JsonInclude.Include.NON_NULL) -public class AlgoConstraint { - - private ConstrVariable variable; - - private ConstrMinMax groupings; - - private ConstrMinMax covariables; - - private Boolean mixed; - - - public ConstrVariable getVariable() { - return variable; - } - - public void setVariable(ConstrVariable variable) { - this.variable = variable; - } - - public ConstrMinMax getGroupings() { - return groupings; - } - - public void setGroupings(ConstrMinMax groupings) { - this.groupings = groupings; - } - - public ConstrMinMax getCovariables() { - return covariables; - } - - public void setCovariables(ConstrMinMax covariables) { - this.covariables = covariables; - } - - public Boolean getMixed() { - return mixed; - } - - public void setMixed(Boolean mixed) { - this.mixed = mixed; - } -} diff --git a/src/main/java/org/hbp/mip/model/algorithm/AlgoParameter.java b/src/main/java/org/hbp/mip/model/algorithm/AlgoParameter.java deleted file mode 100644 index 2b23d14fd89549fa5cf5d69f111ddd6c2c7839e0..0000000000000000000000000000000000000000 --- a/src/main/java/org/hbp/mip/model/algorithm/AlgoParameter.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.hbp.mip.model.algorithm; - -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.annotations.ApiModel; - -/** - * Created by mirco on 17.06.16. - */ - -@ApiModel -@JsonInclude(JsonInclude.Include.NON_NULL) -public class AlgoParameter { - - private String code; - - private String label; - - private Integer defaultValue; - - private String type; - - private ParamConstraint constraints; - - private String description; - - - public String getCode() { - return code; - } - - public void setCode(String code) { - this.code = code; - } - - public String getLabel() { - return label; - } - - public void setLabel(String label) { - this.label = label; - } - - public Integer getDefaultValue() { - return defaultValue; - } - - public void setDefaultValue(Integer defaultValue) { - this.defaultValue = defaultValue; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public ParamConstraint getConstraints() { - return constraints; - } - - public void setConstraints(ParamConstraint constraints) { - this.constraints = constraints; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } -} diff --git a/src/main/java/org/hbp/mip/model/algorithm/Algorithm.java b/src/main/java/org/hbp/mip/model/algorithm/Algorithm.java deleted file mode 100644 index 653f67c1146ce95c8a3a346dcabd7c926da98dd0..0000000000000000000000000000000000000000 --- a/src/main/java/org/hbp/mip/model/algorithm/Algorithm.java +++ /dev/null @@ -1,128 +0,0 @@ -package org.hbp.mip.model.algorithm; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; - -import java.util.List; - -/** - * Created by mirco on 17.06.16. - */ - -@ApiModel -@JsonInclude(JsonInclude.Include.NON_NULL) -public class Algorithm { - - private String code; - - private String label; - - private String name; - - private List type; - - private String environment; - - private String description; - - private List<AlgoParameter> parameters; - - @JsonProperty("docker_image") - private String dockerImage; - - private AlgoConstraint constraints; - - private Boolean disable; - - private String source; - - - public String getCode() { - return code; - } - - public void setCode(String code) { - this.code = code; - } - - public String getLabel() { - return label; - } - - public void setLabel(String label) { - this.label = label; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public List getType() { - return type; - } - - public void setType(List type) { - this.type = type; - } - - public String getEnvironment() { - return environment; - } - - public void setEnvironment(String environment) { - this.environment = environment; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public List<AlgoParameter> getParameters() { - return parameters; - } - - public void setParameters(List<AlgoParameter> parameters) { - this.parameters = parameters; - } - - public String getDockerImage() { - return dockerImage; - } - - public void setDockerImage(String dockerImage) { - this.dockerImage = dockerImage; - } - - public AlgoConstraint getConstraints() { - return constraints; - } - - public void setConstraints(AlgoConstraint constraints) { - this.constraints = constraints; - } - - public Boolean getDisable() { - return disable; - } - - public void setDisable(Boolean disable) { - this.disable = disable; - } - - public String getSource() { - return source; - } - - public void setSource(String source) { - this.source = source; - } -} diff --git a/src/main/java/org/hbp/mip/model/algorithm/Catalog.java b/src/main/java/org/hbp/mip/model/algorithm/Catalog.java deleted file mode 100644 index ed2576a318c1b5de6268f49f03a4cbd353fe65f4..0000000000000000000000000000000000000000 --- a/src/main/java/org/hbp/mip/model/algorithm/Catalog.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.hbp.mip.model.algorithm; - -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.annotations.ApiModel; - -import java.util.List; - -/** - * Created by mirco on 17.06.16. - */ - -@ApiModel -@JsonInclude(JsonInclude.Include.NON_NULL) -public class Catalog { - - private List<Algorithm> algorithms; - - private List<Algorithm> validations; - - - public List<Algorithm> getAlgorithms() { - return algorithms; - } - - public void setAlgorithms(List<Algorithm> algorithms) { - this.algorithms = algorithms; - } - - public List<Algorithm> getValidations() { - return validations; - } - - public void setValidations(List<Algorithm> validations) { - this.validations = validations; - } -} diff --git a/src/main/java/org/hbp/mip/model/algorithm/ConstrMinMax.java b/src/main/java/org/hbp/mip/model/algorithm/ConstrMinMax.java deleted file mode 100644 index 6532175bbae98c583722dbf4050362901ecc2bd7..0000000000000000000000000000000000000000 --- a/src/main/java/org/hbp/mip/model/algorithm/ConstrMinMax.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.hbp.mip.model.algorithm; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; - -/** - * Created by mirco on 17.06.16. - */ - -@ApiModel -@JsonInclude(JsonInclude.Include.NON_NULL) -public class ConstrMinMax { - - @JsonProperty("min_count") - private Integer minCount; - - @JsonProperty("max_count") - private Integer maxCount; - - - public Integer getMinCount() { - return minCount; - } - - public void setMinCount(Integer minCount) { - this.minCount = minCount; - } - - public Integer getMaxCount() { - return maxCount; - } - - public void setMaxCount(Integer maxCount) { - this.maxCount = maxCount; - } -} diff --git a/src/main/java/org/hbp/mip/model/algorithm/ConstrVariable.java b/src/main/java/org/hbp/mip/model/algorithm/ConstrVariable.java deleted file mode 100644 index b4246b51ae68397564b6543cf76359734bbefc0a..0000000000000000000000000000000000000000 --- a/src/main/java/org/hbp/mip/model/algorithm/ConstrVariable.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.hbp.mip.model.algorithm; - -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.annotations.ApiModel; - -/** - * Created by mirco on 17.06.16. - */ - -@ApiModel -@JsonInclude(JsonInclude.Include.NON_NULL) -public class ConstrVariable { - - private Boolean real; - - private Boolean binominal; - - private Boolean polynominal; - - - public Boolean getReal() { - return real; - } - - public void setReal(Boolean real) { - this.real = real; - } - - public Boolean getBinominal() { - return binominal; - } - - public void setBinominal(Boolean binominal) { - this.binominal = binominal; - } - - public Boolean getPolynominal() { - return polynominal; - } - - public void setPolynominal(Boolean polynominal) { - this.polynominal = polynominal; - } -} diff --git a/src/main/java/org/hbp/mip/model/algorithm/ParamConstraint.java b/src/main/java/org/hbp/mip/model/algorithm/ParamConstraint.java deleted file mode 100644 index 0cc94d30a86c3d09fc1d7abec78b4d016b77d801..0000000000000000000000000000000000000000 --- a/src/main/java/org/hbp/mip/model/algorithm/ParamConstraint.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.hbp.mip.model.algorithm; - -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.annotations.ApiModel; - -/** - * Created by mirco on 17.06.16. - */ - -@ApiModel -@JsonInclude(JsonInclude.Include.NON_NULL) -public class ParamConstraint { - - private Integer min; - - private Integer max; - - - public Integer getMin() { - return min; - } - - public void setMin(Integer min) { - this.min = min; - } - - public Integer getMax() { - return max; - } - - public void setMax(Integer max) { - this.max = max; - } -}