diff --git a/src/main/java/org/hbp/mip/model/Dataset.java b/src/main/java/org/hbp/mip/model/Dataset.java index 2fb7f6f8ca368b41866105f3a69073db7ed693d3..de3fde2589defe803e32f08974f314d335ce8289 100644 --- a/src/main/java/org/hbp/mip/model/Dataset.java +++ b/src/main/java/org/hbp/mip/model/Dataset.java @@ -25,6 +25,10 @@ public class Dataset { @CollectionTable(name = "dataset_header", joinColumns = @JoinColumn(name = "dataset_code")) private List<String> header = new LinkedList<>(); + @ElementCollection(fetch = FetchType.EAGER) + @CollectionTable(name = "dataset_grouping", joinColumns = @JoinColumn(name = "dataset_code")) + private List<String> grouping = new LinkedList<>(); + @ElementCollection(fetch=FetchType.EAGER) @CollectionTable(name = "dataset_data", joinColumns = @JoinColumn(name = "dataset_code")) private Map<String, LinkedList<Object>> data = new HashMap<>(); @@ -61,6 +65,15 @@ public class Dataset { } + public List<String> getGrouping() { + return grouping; + } + + public void setGrouping(List<String> grouping) { + this.grouping = grouping; + } + + public Map<String, LinkedList<Object>> getData() { return data; } diff --git a/src/main/java/org/hbp/mip/utils/CSVUtil.java b/src/main/java/org/hbp/mip/utils/CSVUtil.java index a1e5d9e80797e515bad8cc869a57b6339eaf72bf..2812325c080b1168372a6377434461bdfe559215 100644 --- a/src/main/java/org/hbp/mip/utils/CSVUtil.java +++ b/src/main/java/org/hbp/mip/utils/CSVUtil.java @@ -29,14 +29,19 @@ public class CSVUtil { String code = GenerateDSCode(query); Date date = new Date(); List<String> header = new LinkedList<>(); + List<String> grouping = new LinkedList<>(); Map<String, LinkedList<Object>> data = new HashMap<>(); - List<Variable> variables = new LinkedList<>(); - //variables.addAll(query.getVariables()); // TODO : check that - variables.addAll(query.getCovariables()); - //variables.addAll(query.getGrouping()); // TODO : check that + List<Variable> covs = new LinkedList<>(); + List<Variable> grps = new LinkedList<>(); + List<Variable> all = new LinkedList<>(); + covs.addAll(query.getCovariables()); + grps.addAll(query.getGrouping()); + all.addAll(query.getCovariables()); + all.addAll(query.getGrouping()); - header.addAll(variables.stream().map(Variable::getCode).collect(Collectors.toList())); + header.addAll(covs.stream().map(Variable::getCode).collect(Collectors.toList())); + grouping.addAll(grps.stream().map(Variable::getCode).collect(Collectors.toList())); try { InputStream is = Dataset.class.getClassLoader().getResourceAsStream(filename); @@ -47,7 +52,7 @@ public class CSVUtil { isr.close(); is.close(); - for (Variable v : variables) { + for (Variable v : all) { String type = getTypeFromDB(v); String c = v.getCode(); int idx = find(c, firstRow); @@ -135,6 +140,7 @@ public class CSVUtil { result.setCode(code); result.setDate(date); result.setHeader(header); + result.setGrouping(grouping); result.setData(data); return result; diff --git a/src/test/db b/src/test/db index 368949009f0dd1895eac947aa86822e5fb0f39f2..862cdf17ea38cc4abf934450447045e37e5f89a9 160000 --- a/src/test/db +++ b/src/test/db @@ -1 +1 @@ -Subproject commit 368949009f0dd1895eac947aa86822e5fb0f39f2 +Subproject commit 862cdf17ea38cc4abf934450447045e37e5f89a9