From 62af54aae94c38282fffe93cd12059c4a17a40e2 Mon Sep 17 00:00:00 2001
From: Mirco Nasuti <mirco.nasuti@chuv.ch>
Date: Fri, 15 Jan 2016 10:53:32 +0100
Subject: [PATCH] add minValue, maxValue and units attributes to Variable model
 + Removed null values from JSON serialization

---
 src/main/java/org/hbp/mip/data/Database.java  |  6 +--
 src/main/java/org/hbp/mip/model/Article.java  |  2 +
 src/main/java/org/hbp/mip/model/Chart.java    |  2 +
 .../org/hbp/mip/model/ChartConfigSet.java     |  2 +
 src/main/java/org/hbp/mip/model/Dataset.java  |  2 +
 src/main/java/org/hbp/mip/model/Filter.java   |  2 +
 src/main/java/org/hbp/mip/model/Group.java    |  2 +
 src/main/java/org/hbp/mip/model/Model.java    |  2 +
 src/main/java/org/hbp/mip/model/Query.java    |  2 +
 src/main/java/org/hbp/mip/model/Tag.java      |  2 +
 src/main/java/org/hbp/mip/model/User.java     |  2 +
 src/main/java/org/hbp/mip/model/Value.java    |  2 +
 src/main/java/org/hbp/mip/model/Variable.java | 48 ++++++++++++++++++-
 13 files changed, 71 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/hbp/mip/data/Database.java b/src/main/java/org/hbp/mip/data/Database.java
index 897941873..7d2cbf100 100644
--- a/src/main/java/org/hbp/mip/data/Database.java
+++ b/src/main/java/org/hbp/mip/data/Database.java
@@ -32,7 +32,7 @@ public class Database {
             e.printStackTrace();
         }
 
-        // Parse JSON
+        // Deserialize JSON
         Gson gson = new Gson();
         Group rootGroup = gson.fromJson(data, Group.class);
 
@@ -52,9 +52,9 @@ public class Database {
             e.printStackTrace();
         }
 
-        // Parse JSON
+        // Deserialize JSON
         Gson gson = new Gson();
-        Type listVariablesType = new TypeToken<LinkedList<Variable>>(){}.getType();
+        Type listVariablesType = new TypeToken<List<Variable>>(){}.getType();
         List<Variable> variables = gson.fromJson(data, listVariablesType);
 
         // Sync groups and values with DB
diff --git a/src/main/java/org/hbp/mip/model/Article.java b/src/main/java/org/hbp/mip/model/Article.java
index 155623970..20b2ff706 100644
--- a/src/main/java/org/hbp/mip/model/Article.java
+++ b/src/main/java/org/hbp/mip/model/Article.java
@@ -6,6 +6,7 @@ package org.hbp.mip.model;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -19,6 +20,7 @@ import java.util.List;
 @ApiModel(description = "")
 @javax.annotation.Generated(value = "class io.swagger.codegen.languages.SpringMVCServerCodegen", date = "2016-01-06T09:32:22.266Z")
 @JsonIgnoreProperties(value = { "id" })
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
 public class Article {
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
diff --git a/src/main/java/org/hbp/mip/model/Chart.java b/src/main/java/org/hbp/mip/model/Chart.java
index 153ed8b54..3732c255e 100644
--- a/src/main/java/org/hbp/mip/model/Chart.java
+++ b/src/main/java/org/hbp/mip/model/Chart.java
@@ -6,6 +6,7 @@ package org.hbp.mip.model;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -18,6 +19,7 @@ import java.util.List;
 @ApiModel(description = "")
 @javax.annotation.Generated(value = "class io.swagger.codegen.languages.SpringMVCServerCodegen", date = "2016-01-06T09:32:22.266Z")
 @JsonIgnoreProperties(value = { "id" })
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
 public class Chart {
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
diff --git a/src/main/java/org/hbp/mip/model/ChartConfigSet.java b/src/main/java/org/hbp/mip/model/ChartConfigSet.java
index 9e54dbf64..f98836d49 100644
--- a/src/main/java/org/hbp/mip/model/ChartConfigSet.java
+++ b/src/main/java/org/hbp/mip/model/ChartConfigSet.java
@@ -6,6 +6,7 @@ package org.hbp.mip.model;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -16,6 +17,7 @@ import javax.persistence.*;
 @ApiModel(description = "")
 @javax.annotation.Generated(value = "class io.swagger.codegen.languages.SpringMVCServerCodegen", date = "2016-01-06T09:32:22.266Z")
 @JsonIgnoreProperties(value = { "id" })
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
 public class ChartConfigSet {
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
diff --git a/src/main/java/org/hbp/mip/model/Dataset.java b/src/main/java/org/hbp/mip/model/Dataset.java
index e023ba949..3a4591d19 100644
--- a/src/main/java/org/hbp/mip/model/Dataset.java
+++ b/src/main/java/org/hbp/mip/model/Dataset.java
@@ -6,6 +6,7 @@ package org.hbp.mip.model;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -19,6 +20,7 @@ import java.util.List;
 @ApiModel(description = "")
 @javax.annotation.Generated(value = "class io.swagger.codegen.languages.SpringMVCServerCodegen", date = "2016-01-06T09:32:22.266Z")
 @JsonIgnoreProperties(value = { "id" })
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
 public class Dataset {
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
diff --git a/src/main/java/org/hbp/mip/model/Filter.java b/src/main/java/org/hbp/mip/model/Filter.java
index 7d2ccc430..2a0068cf7 100644
--- a/src/main/java/org/hbp/mip/model/Filter.java
+++ b/src/main/java/org/hbp/mip/model/Filter.java
@@ -6,6 +6,7 @@ package org.hbp.mip.model;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -16,6 +17,7 @@ import javax.persistence.*;
 @ApiModel(description = "")
 @javax.annotation.Generated(value = "class io.swagger.codegen.languages.SpringMVCServerCodegen", date = "2016-01-06T09:32:22.266Z")
 @JsonIgnoreProperties(value = { "id" })
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
 public class Filter {
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
diff --git a/src/main/java/org/hbp/mip/model/Group.java b/src/main/java/org/hbp/mip/model/Group.java
index 4279b520d..25a783c48 100644
--- a/src/main/java/org/hbp/mip/model/Group.java
+++ b/src/main/java/org/hbp/mip/model/Group.java
@@ -6,6 +6,7 @@ package org.hbp.mip.model;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -18,6 +19,7 @@ import java.util.List;
 @ApiModel(description = "")
 @javax.annotation.Generated(value = "class io.swagger.codegen.languages.SpringMVCServerCodegen", date = "2016-01-06T09:32:22.266Z")
 @JsonIgnoreProperties(value = { "id" })
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
 public class Group {
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
diff --git a/src/main/java/org/hbp/mip/model/Model.java b/src/main/java/org/hbp/mip/model/Model.java
index c3e96b7a4..bec3eb9df 100644
--- a/src/main/java/org/hbp/mip/model/Model.java
+++ b/src/main/java/org/hbp/mip/model/Model.java
@@ -6,6 +6,7 @@ package org.hbp.mip.model;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -17,6 +18,7 @@ import java.util.Date;
 @ApiModel(description = "")
 @javax.annotation.Generated(value = "class io.swagger.codegen.languages.SpringMVCServerCodegen", date = "2016-01-06T09:32:22.266Z")
 @JsonIgnoreProperties(value = { "id" })
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
 public class Model {
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
diff --git a/src/main/java/org/hbp/mip/model/Query.java b/src/main/java/org/hbp/mip/model/Query.java
index ea4840dd9..bc29b8c57 100644
--- a/src/main/java/org/hbp/mip/model/Query.java
+++ b/src/main/java/org/hbp/mip/model/Query.java
@@ -6,6 +6,7 @@ package org.hbp.mip.model;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -18,6 +19,7 @@ import java.util.List;
 @ApiModel(description = "")
 @javax.annotation.Generated(value = "class io.swagger.codegen.languages.SpringMVCServerCodegen", date = "2016-01-06T09:32:22.266Z")
 @JsonIgnoreProperties(value = { "id" })
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
 public class Query {
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
diff --git a/src/main/java/org/hbp/mip/model/Tag.java b/src/main/java/org/hbp/mip/model/Tag.java
index 5a76c3795..14adacc21 100644
--- a/src/main/java/org/hbp/mip/model/Tag.java
+++ b/src/main/java/org/hbp/mip/model/Tag.java
@@ -6,6 +6,7 @@ package org.hbp.mip.model;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -16,6 +17,7 @@ import javax.persistence.*;
 @ApiModel(description = "")
 @javax.annotation.Generated(value = "class io.swagger.codegen.languages.SpringMVCServerCodegen", date = "2016-01-06T09:32:22.266Z")
 @JsonIgnoreProperties(value = { "id" })
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
 public class Tag {
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
diff --git a/src/main/java/org/hbp/mip/model/User.java b/src/main/java/org/hbp/mip/model/User.java
index d18a87674..e2023cc27 100644
--- a/src/main/java/org/hbp/mip/model/User.java
+++ b/src/main/java/org/hbp/mip/model/User.java
@@ -5,6 +5,7 @@
 package org.hbp.mip.model;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -18,6 +19,7 @@ import java.util.regex.Pattern;
 @Table(name = "`user`")
 @ApiModel(description = "")
 @javax.annotation.Generated(value = "class io.swagger.codegen.languages.SpringMVCServerCodegen", date = "2016-01-06T09:32:22.266Z")
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
 public class User {
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
diff --git a/src/main/java/org/hbp/mip/model/Value.java b/src/main/java/org/hbp/mip/model/Value.java
index d619c72ce..cbca0c7d9 100644
--- a/src/main/java/org/hbp/mip/model/Value.java
+++ b/src/main/java/org/hbp/mip/model/Value.java
@@ -6,6 +6,7 @@ package org.hbp.mip.model;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -16,6 +17,7 @@ import javax.persistence.*;
 @ApiModel(description = "")
 @javax.annotation.Generated(value = "class io.swagger.codegen.languages.SpringMVCServerCodegen", date = "2016-01-06T09:32:22.266Z")
 @JsonIgnoreProperties(value = { "id" })
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
 public class Value {
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
diff --git a/src/main/java/org/hbp/mip/model/Variable.java b/src/main/java/org/hbp/mip/model/Variable.java
index 044cca2f7..77c5e8d33 100644
--- a/src/main/java/org/hbp/mip/model/Variable.java
+++ b/src/main/java/org/hbp/mip/model/Variable.java
@@ -6,6 +6,7 @@ package org.hbp.mip.model;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -18,21 +19,25 @@ import java.util.List;
 @ApiModel(description = "")
 @javax.annotation.Generated(value = "class io.swagger.codegen.languages.SpringMVCServerCodegen", date = "2016-01-06T09:32:22.266Z")
 @JsonIgnoreProperties(value = { "id" })
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
 public class Variable {
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id = null;
-    @ManyToOne(fetch = FetchType.EAGER)
-    private Group group = null;
     @Column(unique = true)
     private String code = null;
     private String label = null;
     private String type = null;
     private Integer length = null;
+    private Double minValue = null;
+    private Double maxValue = null;
+    private String units = null;
     private Boolean isVariable = null;
     private Boolean isGrouping = null;
     private Boolean isCovariable = null;
     private Boolean isFilter = null;
+    @ManyToOne(fetch = FetchType.EAGER)
+    private Group group = null;
     @ManyToMany(fetch = FetchType.EAGER)
     private List<Value> values = new LinkedList<Value>();
 
@@ -181,6 +186,45 @@ public class Variable {
         this.values = values;
     }
 
+    /**
+     * Minimum value (only for numbers)
+     **/
+    @ApiModelProperty(value = "Minimum value (only for numbers)")
+    @JsonProperty("minValue")
+    public Double getMinValue() {
+        return minValue;
+    }
+
+    public void setMinValue(Double minValue) {
+        this.minValue = minValue;
+    }
+
+    /**
+     * Maximum value (only for numbers)
+     **/
+    @ApiModelProperty(value = "Maximum value (only for numbers)")
+    @JsonProperty("maxValue")
+    public Double getMaxValue() {
+        return maxValue;
+    }
+
+    public void setMaxValue(Double maxValue) {
+        this.maxValue = maxValue;
+    }
+
+    /**
+     * Units
+     **/
+    @ApiModelProperty(value = "Units")
+    @JsonProperty("units")
+    public String getUnits() {
+        return units;
+    }
+
+    public void setUnits(String units) {
+        this.units = units;
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
-- 
GitLab