From d75e83cb1673e102c680b62129ece10063ecf3c1 Mon Sep 17 00:00:00 2001 From: annabakouli Date: Tue, 12 Dec 2017 10:36:43 +0200 Subject: [PATCH] no message --- .../components/datasetprofile/Field.java | 14 +++- .../components/datasetprofile/FieldSet.java | 17 ++++- .../components/datasetprofile/Group.java | 5 ++ .../components/datasetprofile/Section.java | 12 +++- .../main/java/models/properties/Field.java | 6 +- .../main/java/models/properties/FieldSet.java | 23 ++++++- .../main/java/models/properties/Group.java | 7 +- .../properties/PropertiesGenerator.java | 3 +- .../models/properties/PropertiesModel.java | 8 ++- .../main/java/models/properties/Section.java | 7 +- .../user/components/datasetprofile/Field.java | 53 ++++++++++++--- .../components/datasetprofile/FieldSet.java | 65 +++++++++++++++++-- .../user/components/datasetprofile/Group.java | 7 ++ .../components/datasetprofile/Section.java | 15 ++++- .../models/user/composite/DatasetProfile.java | 6 ++ .../composite/PropertiesModelBuilder.java | 1 + .../src/main/java/rest/entities/Admin.java | 2 +- .../entities/DatasetProfileController.java | 2 +- 18 files changed, 223 insertions(+), 30 deletions(-) diff --git a/dmp-backend/src/main/java/models/admin/components/datasetprofile/Field.java b/dmp-backend/src/main/java/models/admin/components/datasetprofile/Field.java index fe54311c2..faf7d97b3 100644 --- a/dmp-backend/src/main/java/models/admin/components/datasetprofile/Field.java +++ b/dmp-backend/src/main/java/models/admin/components/datasetprofile/Field.java @@ -1,5 +1,7 @@ package models.admin.components.datasetprofile; +import org.apache.commons.lang3.RandomStringUtils; + import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; @@ -13,9 +15,9 @@ import utilities.ModelDefinition; import utilities.ViewStyleDefinition; import utilities.builders.ModelBuilder; -public class Field implements ModelDefinition,ViewStyleDefinition{ +public class Field implements ModelDefinition,ViewStyleDefinition,Comparable{ private String id; - private int ordinal; + private Integer ordinal; private String title; private String value; private String description; @@ -122,6 +124,8 @@ public class Field implements ModelDefinition,ViewStyleDefinition{ +public class FieldSet implements Comparable,ModelDefinition,ViewStyleDefinition{ private String id; - private int ordinal; + private Integer ordinal; private Multiplicity multiplicity; private List fields; @@ -50,6 +52,8 @@ public class FieldSet implements ModelDefinition modelfields = new ModelBuilder().toModelDefinition(this.fields, entities.xmlmodels.modeldefinition.Field.class); @@ -66,7 +70,9 @@ public class FieldSet implements ModelDefinition viewStylefields = new ModelBuilder().toViewStyleDefinition(this.fields, entities.xmlmodels.viewstyledefinition.Field.class); item.setFields(viewStylefields); item.setId(this.id); @@ -80,6 +86,11 @@ public class FieldSet implements ModelDefinition{ +public class Section implements Comparable,ViewStyleDefinition{ private List
sections; private List fieldGroups; private Boolean defaultVisibility; private int page; - private int ordinal; + private Integer ordinal; private String id; private String title; private String description; @@ -66,6 +68,7 @@ public class Section implements ViewStyleDefinition fieldValues){ + public void toMap(Map fieldValues){ + fieldValues.put(this.id, this.value); + } + @Override + public void toMap(Map fieldValues, int index) { fieldValues.put(this.id, this.value); } diff --git a/dmp-backend/src/main/java/models/properties/FieldSet.java b/dmp-backend/src/main/java/models/properties/FieldSet.java index 58b78230c..9f63ee77e 100644 --- a/dmp-backend/src/main/java/models/properties/FieldSet.java +++ b/dmp-backend/src/main/java/models/properties/FieldSet.java @@ -1,5 +1,6 @@ package models.properties; +import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -13,6 +14,15 @@ import utilities.builders.ModelBuilder; public class FieldSet implements PropertiesGenerator{ private List fields; + private List
multiplicityItems; + + public List
getMultiplicityItems() { + return multiplicityItems; + } + + public void setMultiplicityItems(List
multiplicityItems) { + this.multiplicityItems = multiplicityItems; + } public List getFields() { return fields; @@ -23,8 +33,19 @@ public class FieldSet implements PropertiesGenerator{ } @Override - public void toMap(Map fieldValues) { + public void toMap(Map fieldValues) { this.fields.forEach(item->item.toMap(fieldValues)); + Map multiplicity = new HashMap(); + if(this.multiplicityItems!=null){ + this.multiplicityItems.forEach(item->item.toMap(fieldValues,this.multiplicityItems.indexOf(item))); + } + //fieldValues.put(this.id,multiplicity); + } + + @Override + public void toMap(Map fieldValues, int index) { + this.fields.forEach(item->item.toMap(fieldValues,index)); + //this.multiplicityItems.forEach(item->item.toMap(fieldValues,index)); } } diff --git a/dmp-backend/src/main/java/models/properties/Group.java b/dmp-backend/src/main/java/models/properties/Group.java index 787826a34..dcf147b0e 100644 --- a/dmp-backend/src/main/java/models/properties/Group.java +++ b/dmp-backend/src/main/java/models/properties/Group.java @@ -21,8 +21,13 @@ public class Group implements PropertiesGenerator{ this.compositeFields = compositeFields; } @Override - public void toMap(Map fieldValues) { + public void toMap(Map fieldValues) { this.compositeFields.forEach(item->item.toMap(fieldValues)); } + @Override + public void toMap(Map fieldValues, int index) { + // TODO Auto-generated method stub + + } } diff --git a/dmp-backend/src/main/java/models/properties/PropertiesGenerator.java b/dmp-backend/src/main/java/models/properties/PropertiesGenerator.java index cede0d8ee..5cd6a9900 100644 --- a/dmp-backend/src/main/java/models/properties/PropertiesGenerator.java +++ b/dmp-backend/src/main/java/models/properties/PropertiesGenerator.java @@ -3,5 +3,6 @@ package models.properties; import java.util.Map; public interface PropertiesGenerator { - void toMap(Map fieldValues); + void toMap(Map fieldValues); + void toMap(Map fieldValues,int index); } diff --git a/dmp-backend/src/main/java/models/properties/PropertiesModel.java b/dmp-backend/src/main/java/models/properties/PropertiesModel.java index 527ed3553..fd56cc7b0 100644 --- a/dmp-backend/src/main/java/models/properties/PropertiesModel.java +++ b/dmp-backend/src/main/java/models/properties/PropertiesModel.java @@ -16,9 +16,15 @@ public class PropertiesModel implements PropertiesGenerator{ } @Override - public void toMap(Map fieldValues) { + public void toMap(Map fieldValues) { this.sections.forEach(item->item.toMap(fieldValues)); } + + @Override + public void toMap(Map fieldValues, int index) { + // TODO Auto-generated method stub + + } } diff --git a/dmp-backend/src/main/java/models/properties/Section.java b/dmp-backend/src/main/java/models/properties/Section.java index 514dba2bd..eacd7332e 100644 --- a/dmp-backend/src/main/java/models/properties/Section.java +++ b/dmp-backend/src/main/java/models/properties/Section.java @@ -25,8 +25,13 @@ public class Section implements PropertiesGenerator{ this.fieldGroups = fieldGroups; } @Override - public void toMap(Map fieldValues) { + public void toMap(Map fieldValues) { this.sections.forEach(item->item.toMap(fieldValues)); this.fieldGroups.forEach(item->item.toMap(fieldValues)); + } + @Override + public void toMap(Map fieldValues, int index) { + // TODO Auto-generated method stub + } } diff --git a/dmp-backend/src/main/java/models/user/components/datasetprofile/Field.java b/dmp-backend/src/main/java/models/user/components/datasetprofile/Field.java index 997359dc5..d4fc7afbf 100644 --- a/dmp-backend/src/main/java/models/user/components/datasetprofile/Field.java +++ b/dmp-backend/src/main/java/models/user/components/datasetprofile/Field.java @@ -1,24 +1,21 @@ package models.user.components.datasetprofile; +import java.util.LinkedList; +import java.util.List; import java.util.Map; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; +import java.util.stream.Collectors; import models.components.commons.DefaultValue; import models.components.commons.Multiplicity; import models.components.commons.ViewStyle; -import models.components.commons.Visibility; import models.user.composite.PropertiesModelBuilder; import utilities.ModelDefinition; import utilities.ViewStyleDefinition; import utilities.builders.ModelBuilder; -public class Field implements PropertiesModelBuilder, ModelDefinition,ViewStyleDefinition{ +public class Field implements Comparable,PropertiesModelBuilder, ModelDefinition,ViewStyleDefinition{ private String id; - private int ordinal; + private Integer ordinal; private String title; private String value; private String description; @@ -30,7 +27,17 @@ public class Field implements PropertiesModelBuilder, ModelDefinition multiplicityItems; + public List getMultiplicityItems() { + return multiplicityItems; + } + public void setMultiplicityItems(List multiplicityItems) { + this.multiplicityItems = multiplicityItems; + } + public void setOrdinal(Integer ordinal) { + this.ordinal = ordinal; + } public String getId() { return id; } @@ -115,6 +122,23 @@ public class Field implements PropertiesModelBuilder, ModelDefinition properties){ + Field newField = new Field(); + newField.id = id; + newField.ordinal = this.ordinal; + newField.title = this.title; + newField.value = (String)properties.get(id); + newField.description = this.description; + newField.extendedDescription = this.extendedDescription; + newField.viewStyle = this.viewStyle; + newField.datatype = this.datatype; + newField.defaultVisibility = this.defaultVisibility; + newField.page = this.page; + newField.defaultValue = this.defaultValue; + newField.data = this.data; + + return newField; + } @Override public entities.xmlmodels.modeldefinition.Field toDatabaseDefinition(entities.xmlmodels.modeldefinition.Field field) { @@ -157,7 +181,20 @@ public class Field implements PropertiesModelBuilder, ModelDefinition properties) { this.value = (String)properties.get(this.id); + this.multiplicityItems = new LinkedList(); + List compositeKeys = properties.keySet().stream().filter(keys->keys.startsWith("multiple_"+this.getId())).collect(Collectors.toList()); + for (String key : compositeKeys) { + this.multiplicityItems.add(this.cloneForMultiplicity(key, properties)); + } + } + @Override + public int compareTo(Object o) { + return this.ordinal.compareTo(((Field)o).getOrdinal()); + } + @Override + public void fromJsonObject(Map properties, int index) { + this.value = (String)properties.get("multiple_"+this.id+"_"+index); } } \ No newline at end of file diff --git a/dmp-backend/src/main/java/models/user/components/datasetprofile/FieldSet.java b/dmp-backend/src/main/java/models/user/components/datasetprofile/FieldSet.java index 894956608..07974eee1 100644 --- a/dmp-backend/src/main/java/models/user/components/datasetprofile/FieldSet.java +++ b/dmp-backend/src/main/java/models/user/components/datasetprofile/FieldSet.java @@ -1,9 +1,12 @@ package models.user.components.datasetprofile; +import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; +import com.fasterxml.classmate.util.ResolvedTypeCache.Key; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper; import models.components.commons.Multiplicity; @@ -12,13 +15,14 @@ import utilities.ModelDefinition; import utilities.ViewStyleDefinition; import utilities.builders.ModelBuilder; -public class FieldSet implements PropertiesModelBuilder, ModelDefinition,ViewStyleDefinition{ +public class FieldSet implements Comparable,PropertiesModelBuilder, ModelDefinition,ViewStyleDefinition{ private String id; - private int ordinal; + private Integer ordinal; private Multiplicity multiplicity; private List fields; - + private List
multiplicityItems; public List getFields() { + Collections.sort(this.fields); return fields; } @@ -49,6 +53,20 @@ public class FieldSet implements PropertiesModelBuilder, ModelDefinition getMultiplicityItems() { + return multiplicityItems; + } + + public void setMultiplicityItems(List
multiplicityItems) { + this.multiplicityItems = multiplicityItems; + } + + public void setOrdinal(Integer ordinal) { + this.ordinal = ordinal; + } @Override public entities.xmlmodels.modeldefinition.FieldSet toDatabaseDefinition(entities.xmlmodels.modeldefinition.FieldSet fieldSet) { @@ -84,8 +102,45 @@ public class FieldSet implements PropertiesModelBuilder, ModelDefinition properties) { - this.fields.forEach(item->item.fromJsonObject(properties)); + public void fromJsonObject(Map properties) { + this.multiplicityItems = new LinkedList
(); + this.fields.forEach(item->{ + item.fromJsonObject(properties); + }); + + List compositeKeys = properties.keySet().stream().filter(keys->keys.startsWith("multiple_"+this.getId())).collect(Collectors.toList()); + for (String key : compositeKeys) { + this.multiplicityItems.add(this.cloneForMultiplicity(key, properties)); + } + } + + private FieldSet cloneForMultiplicity(String id, Map properties){ + FieldSet newFieldSet = new FieldSet(); + newFieldSet.id = id; + newFieldSet.ordinal = this.ordinal; + newFieldSet.fields = new LinkedList(); + this.fields.forEach(item->{ + newFieldSet.fields.add(item.cloneForMultiplicity("multiple_"+item.getId()+"_"+this.fields.indexOf(item), properties)); + }); + + return newFieldSet; + } + + private void createMultiplicityFields(List
fieldSet,Field field){ + FieldSet newFieldSet = new FieldSet(); + newFieldSet.fields = new LinkedList(); + newFieldSet.fields.add(field); + fieldSet.add(newFieldSet); + } + + @Override + public int compareTo(Object o) { + return this.ordinal.compareTo(((FieldSet)o).getOrdinal()); + } + + @Override + public void fromJsonObject(Map properties, int index) { + // TODO Auto-generated method stub } diff --git a/dmp-backend/src/main/java/models/user/components/datasetprofile/Group.java b/dmp-backend/src/main/java/models/user/components/datasetprofile/Group.java index 02ba4b23f..9fd78126c 100644 --- a/dmp-backend/src/main/java/models/user/components/datasetprofile/Group.java +++ b/dmp-backend/src/main/java/models/user/components/datasetprofile/Group.java @@ -1,5 +1,6 @@ package models.user.components.datasetprofile; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -72,6 +73,7 @@ public class Group implements PropertiesModelBuilder, ModelDefinition getCompositeFields() { + Collections.sort(this.compositeFields); return compositeFields; } public void setCompositeFields(List
compositeFields) { @@ -122,4 +124,9 @@ public class Group implements PropertiesModelBuilder, ModelDefinitionitem.fromJsonObject(properties)); } + @Override + public void fromJsonObject(Map properties, int index) { + // TODO Auto-generated method stub + + } } diff --git a/dmp-backend/src/main/java/models/user/components/datasetprofile/Section.java b/dmp-backend/src/main/java/models/user/components/datasetprofile/Section.java index 7ddc7ca95..128c576ca 100644 --- a/dmp-backend/src/main/java/models/user/components/datasetprofile/Section.java +++ b/dmp-backend/src/main/java/models/user/components/datasetprofile/Section.java @@ -1,5 +1,6 @@ package models.user.components.datasetprofile; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -8,16 +9,17 @@ import utilities.ModelDefinition; import utilities.ViewStyleDefinition; import utilities.builders.ModelBuilder; -public class Section implements ViewStyleDefinition,PropertiesModelBuilder{ +public class Section implements Comparable,ViewStyleDefinition,PropertiesModelBuilder{ private List
sections; private List fieldGroups; private Boolean defaultVisibility; private int page; - private int ordinal; + private Integer ordinal; private String id; private String title; private String description; public List
getSections() { + Collections.sort(sections); return sections; } public void setSections(List
sections) { @@ -94,6 +96,15 @@ public class Section implements ViewStyleDefinitionitem.fromJsonObject(properties)); this.fieldGroups.forEach(item->item.fromJsonObject(properties)); } + @Override + public int compareTo(Object o) { + return this.ordinal.compareTo(((Section)o).getOrdinal()); + } + @Override + public void fromJsonObject(Map properties, int index) { + // TODO Auto-generated method stub + + } } diff --git a/dmp-backend/src/main/java/models/user/composite/DatasetProfile.java b/dmp-backend/src/main/java/models/user/composite/DatasetProfile.java index 32fc87ef2..80fafa9c8 100644 --- a/dmp-backend/src/main/java/models/user/composite/DatasetProfile.java +++ b/dmp-backend/src/main/java/models/user/composite/DatasetProfile.java @@ -45,5 +45,11 @@ public class DatasetProfile implements PropertiesModelBuilder{ this.sections.forEach(item->item.fromJsonObject(properties)); } + + @Override + public void fromJsonObject(Map properties, int index) { + // TODO Auto-generated method stub + + } } diff --git a/dmp-backend/src/main/java/models/user/composite/PropertiesModelBuilder.java b/dmp-backend/src/main/java/models/user/composite/PropertiesModelBuilder.java index 6d72c2c1b..b82f55277 100644 --- a/dmp-backend/src/main/java/models/user/composite/PropertiesModelBuilder.java +++ b/dmp-backend/src/main/java/models/user/composite/PropertiesModelBuilder.java @@ -4,4 +4,5 @@ import java.util.Map; public interface PropertiesModelBuilder { void fromJsonObject(Map properties); + void fromJsonObject(Map properties,int index); } diff --git a/dmp-backend/src/main/java/rest/entities/Admin.java b/dmp-backend/src/main/java/rest/entities/Admin.java index 38ea376ba..8e8385ef0 100644 --- a/dmp-backend/src/main/java/rest/entities/Admin.java +++ b/dmp-backend/src/main/java/rest/entities/Admin.java @@ -54,7 +54,7 @@ public class Admin { modelDefinition.setViewstyle(viewStyleDefinition); datasetProfileDao.create(modelDefinition); - return ResponseEntity.status(HttpStatus.OK).body(profile); + return ResponseEntity.status(HttpStatus.OK).body(""); }catch(Exception ex){ ex.printStackTrace(); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("{\"reason\":\""+ex.getMessage()+"\"}"); diff --git a/dmp-backend/src/main/java/rest/entities/DatasetProfileController.java b/dmp-backend/src/main/java/rest/entities/DatasetProfileController.java index cdae0581d..a0e74378f 100644 --- a/dmp-backend/src/main/java/rest/entities/DatasetProfileController.java +++ b/dmp-backend/src/main/java/rest/entities/DatasetProfileController.java @@ -57,7 +57,7 @@ public class DatasetProfileController { public ResponseEntity postDataset(@PathVariable String id,@RequestBody PropertiesModel properties){ try { entities.Dataset dataset = datasetDao.read(UUID.fromString(id)); - Map values = new HashMap(); + Map values = new HashMap(); properties.toMap(values); JSONObject jobject = new JSONObject(values); dataset.setProperties(jobject.toString());