no message

This commit is contained in:
annabakouli 2017-12-12 10:36:43 +02:00
parent 67007c8d3d
commit d75e83cb16
18 changed files with 223 additions and 30 deletions

View File

@ -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<entities.xmlmodels.modeldefinition.Field>,ViewStyleDefinition<entities.xmlmodels.viewstyledefinition.Field>{
public class Field implements ModelDefinition<entities.xmlmodels.modeldefinition.Field>,ViewStyleDefinition<entities.xmlmodels.viewstyledefinition.Field>,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<entities.xmlmodels.modeldefinition
}
@Override
public entities.xmlmodels.modeldefinition.Field toDatabaseDefinition(entities.xmlmodels.modeldefinition.Field field) {
if(this.id.isEmpty()||this.id == null)this.id = "field_"+RandomStringUtils.random(5, true, true);
field.setDatatype(this.datatype);
field.setDefaultValue(this.defaultValue);
field.setId(this.id);
@ -137,6 +141,8 @@ public class Field implements ModelDefinition<entities.xmlmodels.modeldefinition
}
@Override
public entities.xmlmodels.viewstyledefinition.Field toDatabaseDefinition(entities.xmlmodels.viewstyledefinition.Field field) {
if(this.id.isEmpty()||this.id == null)this.id = "field_"+RandomStringUtils.random(5, true, true);
field.setDefaultVisibility(this.defaultVisibility);
field.setDescription(this.description);
field.setExtendedDescription(this.extendedDescription);
@ -159,6 +165,10 @@ public class Field implements ModelDefinition<entities.xmlmodels.modeldefinition
this.viewStyle = item.getViewStyle();
this.data = item.getData();
this.visible = item.getVisible();
}
@Override
public int compareTo(Object o) {
return this.ordinal.compareTo(((Field)o).ordinal);
}

View File

@ -3,6 +3,8 @@ package models.admin.components.datasetprofile;
import java.util.LinkedList;
import java.util.List;
import org.apache.commons.lang3.RandomStringUtils;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import models.components.commons.Multiplicity;
@ -10,9 +12,9 @@ import utilities.ModelDefinition;
import utilities.ViewStyleDefinition;
import utilities.builders.ModelBuilder;
public class FieldSet implements ModelDefinition<entities.xmlmodels.modeldefinition.FieldSet>,ViewStyleDefinition<entities.xmlmodels.viewstyledefinition.FieldSet>{
public class FieldSet implements Comparable,ModelDefinition<entities.xmlmodels.modeldefinition.FieldSet>,ViewStyleDefinition<entities.xmlmodels.viewstyledefinition.FieldSet>{
private String id;
private int ordinal;
private Integer ordinal;
private Multiplicity multiplicity;
private List<Field> fields;
@ -50,6 +52,8 @@ public class FieldSet implements ModelDefinition<entities.xmlmodels.modeldefinit
@Override
public entities.xmlmodels.modeldefinition.FieldSet toDatabaseDefinition(entities.xmlmodels.modeldefinition.FieldSet fieldSet) {
if(this.id.isEmpty()||this.id == null)this.id = "fieldSet_"+RandomStringUtils.random(5, true, true);
fieldSet.setId(this.id);
fieldSet.setOrdinal(this.ordinal);
List<entities.xmlmodels.modeldefinition.Field> modelfields = new ModelBuilder().toModelDefinition(this.fields, entities.xmlmodels.modeldefinition.Field.class);
@ -66,7 +70,9 @@ public class FieldSet implements ModelDefinition<entities.xmlmodels.modeldefinit
}
@Override
public entities.xmlmodels.viewstyledefinition.FieldSet toDatabaseDefinition(entities.xmlmodels.viewstyledefinition.FieldSet item) {
public entities.xmlmodels.viewstyledefinition.FieldSet toDatabaseDefinition(entities.xmlmodels.viewstyledefinition.FieldSet item) {
if(this.id.isEmpty()||this.id == null)this.id = "fieldSet_"+RandomStringUtils.random(5, true, true);
List<entities.xmlmodels.viewstyledefinition.Field> 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<entities.xmlmodels.modeldefinit
this.id = item.getId();
this.ordinal = item.getOrdinal();
}
@Override
public int compareTo(Object o) {
return this.ordinal.compareTo(((FieldSet)o).ordinal);
}
}

View File

@ -2,6 +2,8 @@ package models.admin.components.datasetprofile;
import java.util.List;
import org.apache.commons.lang3.RandomStringUtils;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import entities.xmlmodels.viewstyledefinition.FieldGroup;
@ -84,6 +86,8 @@ public class Group implements ModelDefinition<entities.xmlmodels.modeldefinition
}
@Override
public entities.xmlmodels.viewstyledefinition.FieldGroup toDatabaseDefinition(FieldGroup item) {
if(this.id.isEmpty()||this.id == null)this.id = "group_"+RandomStringUtils.random(5, true, true);
item.setDefaultVisibility(this.defaultVisibility);
item.setDescription(this.description);
item.setExtendedDescription(this.extendedDescription);
@ -96,6 +100,7 @@ public class Group implements ModelDefinition<entities.xmlmodels.modeldefinition
}
@Override
public void fromDatabaseDefinition(FieldGroup item) {
this.defaultVisibility = item.isDefaultVisibility();
this.description = item.getDescription();
this.extendedDescription = item.getExtendedDescription();

View File

@ -2,16 +2,18 @@ package models.admin.components.datasetprofile;
import java.util.List;
import org.apache.commons.lang3.RandomStringUtils;
import utilities.ModelDefinition;
import utilities.ViewStyleDefinition;
import utilities.builders.ModelBuilder;
public class Section implements ViewStyleDefinition<entities.xmlmodels.viewstyledefinition.Section>{
public class Section implements Comparable,ViewStyleDefinition<entities.xmlmodels.viewstyledefinition.Section>{
private List<Section> sections;
private List<Group> 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<entities.xmlmodels.viewstyle
}
@Override
public entities.xmlmodels.viewstyledefinition.Section toDatabaseDefinition(entities.xmlmodels.viewstyledefinition.Section item) {
if(this.id.isEmpty()||this.id == null)this.id = "section_"+RandomStringUtils.random(5, true, true);
item.setDefaultVisibility(this.defaultVisibility);
item.setDescription(this.description);
if(this.fieldGroups!=null)item.setFieldGroups(new ModelBuilder().toViewStyleDefinition(this.fieldGroups, entities.xmlmodels.viewstyledefinition.FieldGroup.class));
@ -78,6 +81,7 @@ public class Section implements ViewStyleDefinition<entities.xmlmodels.viewstyle
}
@Override
public void fromDatabaseDefinition(entities.xmlmodels.viewstyledefinition.Section item) {
this.defaultVisibility = item.isDefaultVisibility();
this.description = item.getDescription();
this.fieldGroups = new ModelBuilder().fromViewStyleDefinition(item.getFieldGroups(),Group.class);
@ -87,6 +91,10 @@ public class Section implements ViewStyleDefinition<entities.xmlmodels.viewstyle
this.sections = new ModelBuilder().fromViewStyleDefinition(item.getSections(),Section.class);
this.title = item.getTitle();
}
@Override
public int compareTo(Object o) {
return this.ordinal.compareTo(((Section)o).getOrdinal());
}
}

View File

@ -34,7 +34,11 @@ public class Field implements PropertiesGenerator{
this.value = value;
}
public void toMap(Map<String,String> fieldValues){
public void toMap(Map<String,Object> fieldValues){
fieldValues.put(this.id, this.value);
}
@Override
public void toMap(Map<String, Object> fieldValues, int index) {
fieldValues.put(this.id, this.value);
}

View File

@ -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<Field> fields;
private List<FieldSet> multiplicityItems;
public List<FieldSet> getMultiplicityItems() {
return multiplicityItems;
}
public void setMultiplicityItems(List<FieldSet> multiplicityItems) {
this.multiplicityItems = multiplicityItems;
}
public List<Field> getFields() {
return fields;
@ -23,8 +33,19 @@ public class FieldSet implements PropertiesGenerator{
}
@Override
public void toMap(Map<String, String> fieldValues) {
public void toMap(Map<String, Object> fieldValues) {
this.fields.forEach(item->item.toMap(fieldValues));
Map<String,Object> multiplicity = new HashMap<String,Object>();
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<String, Object> fieldValues, int index) {
this.fields.forEach(item->item.toMap(fieldValues,index));
//this.multiplicityItems.forEach(item->item.toMap(fieldValues,index));
}
}

View File

@ -21,8 +21,13 @@ public class Group implements PropertiesGenerator{
this.compositeFields = compositeFields;
}
@Override
public void toMap(Map<String, String> fieldValues) {
public void toMap(Map<String, Object> fieldValues) {
this.compositeFields.forEach(item->item.toMap(fieldValues));
}
@Override
public void toMap(Map<String, Object> fieldValues, int index) {
// TODO Auto-generated method stub
}
}

View File

@ -3,5 +3,6 @@ package models.properties;
import java.util.Map;
public interface PropertiesGenerator {
void toMap(Map<String,String> fieldValues);
void toMap(Map<String,Object> fieldValues);
void toMap(Map<String,Object> fieldValues,int index);
}

View File

@ -16,9 +16,15 @@ public class PropertiesModel implements PropertiesGenerator{
}
@Override
public void toMap(Map<String, String> fieldValues) {
public void toMap(Map<String, Object> fieldValues) {
this.sections.forEach(item->item.toMap(fieldValues));
}
@Override
public void toMap(Map<String, Object> fieldValues, int index) {
// TODO Auto-generated method stub
}
}

View File

@ -25,8 +25,13 @@ public class Section implements PropertiesGenerator{
this.fieldGroups = fieldGroups;
}
@Override
public void toMap(Map<String, String> fieldValues) {
public void toMap(Map<String, Object> fieldValues) {
this.sections.forEach(item->item.toMap(fieldValues));
this.fieldGroups.forEach(item->item.toMap(fieldValues));
}
@Override
public void toMap(Map<String, Object> fieldValues, int index) {
// TODO Auto-generated method stub
}
}

View File

@ -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<entities.xmlmodels.modeldefinition.Field>,ViewStyleDefinition<entities.xmlmodels.viewstyledefinition.Field>{
public class Field implements Comparable,PropertiesModelBuilder, ModelDefinition<entities.xmlmodels.modeldefinition.Field>,ViewStyleDefinition<entities.xmlmodels.viewstyledefinition.Field>{
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<entities.x
private DefaultValue defaultValue;
private Multiplicity multiplicity;
private Object data;
private List<Field> multiplicityItems;
public List<Field> getMultiplicityItems() {
return multiplicityItems;
}
public void setMultiplicityItems(List<Field> 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<entities.x
this.data = data;
}
public Field cloneForMultiplicity(String id, Map<String, Object> 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<entities.x
@Override
public void fromJsonObject(Map<String, Object> properties) {
this.value = (String)properties.get(this.id);
this.multiplicityItems = new LinkedList<Field>();
List<String> 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<String, Object> properties, int index) {
this.value = (String)properties.get("multiple_"+this.id+"_"+index);
}
}

View File

@ -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<entities.xmlmodels.modeldefinition.FieldSet>,ViewStyleDefinition<entities.xmlmodels.viewstyledefinition.FieldSet>{
public class FieldSet implements Comparable,PropertiesModelBuilder, ModelDefinition<entities.xmlmodels.modeldefinition.FieldSet>,ViewStyleDefinition<entities.xmlmodels.viewstyledefinition.FieldSet>{
private String id;
private int ordinal;
private Integer ordinal;
private Multiplicity multiplicity;
private List<Field> fields;
private List<FieldSet> multiplicityItems;
public List<Field> getFields() {
Collections.sort(this.fields);
return fields;
}
@ -49,6 +53,20 @@ public class FieldSet implements PropertiesModelBuilder, ModelDefinition<entitie
public void setMultiplicity(Multiplicity multiplicity) {
this.multiplicity = multiplicity;
}
public List<FieldSet> getMultiplicityItems() {
return multiplicityItems;
}
public void setMultiplicityItems(List<FieldSet> 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<entitie
}
@Override
public void fromJsonObject(Map<String, Object> properties) {
this.fields.forEach(item->item.fromJsonObject(properties));
public void fromJsonObject(Map<String, Object> properties) {
this.multiplicityItems = new LinkedList<FieldSet>();
this.fields.forEach(item->{
item.fromJsonObject(properties);
});
List<String> 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<String, Object> 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> fieldSet,Field field){
FieldSet newFieldSet = new FieldSet();
newFieldSet.fields = new LinkedList<Field>();
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<String, Object> properties, int index) {
// TODO Auto-generated method stub
}

View File

@ -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<entities.x
this.page = page;
}
public List<FieldSet> getCompositeFields() {
Collections.sort(this.compositeFields);
return compositeFields;
}
public void setCompositeFields(List<FieldSet> compositeFields) {
@ -122,4 +124,9 @@ public class Group implements PropertiesModelBuilder, ModelDefinition<entities.x
this.compositeFields.forEach(item->item.fromJsonObject(properties));
}
@Override
public void fromJsonObject(Map<String, Object> properties, int index) {
// TODO Auto-generated method stub
}
}

View File

@ -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<entities.xmlmodels.viewstyledefinition.Section>,PropertiesModelBuilder{
public class Section implements Comparable,ViewStyleDefinition<entities.xmlmodels.viewstyledefinition.Section>,PropertiesModelBuilder{
private List<Section> sections;
private List<Group> fieldGroups;
private Boolean defaultVisibility;
private int page;
private int ordinal;
private Integer ordinal;
private String id;
private String title;
private String description;
public List<Section> getSections() {
Collections.sort(sections);
return sections;
}
public void setSections(List<Section> sections) {
@ -94,6 +96,15 @@ public class Section implements ViewStyleDefinition<entities.xmlmodels.viewstyle
this.sections.forEach(item->item.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<String, Object> properties, int index) {
// TODO Auto-generated method stub
}
}

View File

@ -45,5 +45,11 @@ public class DatasetProfile implements PropertiesModelBuilder{
this.sections.forEach(item->item.fromJsonObject(properties));
}
@Override
public void fromJsonObject(Map<String, Object> properties, int index) {
// TODO Auto-generated method stub
}
}

View File

@ -4,4 +4,5 @@ import java.util.Map;
public interface PropertiesModelBuilder {
void fromJsonObject(Map<String,Object> properties);
void fromJsonObject(Map<String,Object> properties,int index);
}

View File

@ -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()+"\"}");

View File

@ -57,7 +57,7 @@ public class DatasetProfileController {
public ResponseEntity<Object> postDataset(@PathVariable String id,@RequestBody PropertiesModel properties){
try {
entities.Dataset dataset = datasetDao.read(UUID.fromString(id));
Map<String,String> values = new HashMap();
Map<String,Object> values = new HashMap();
properties.toMap(values);
JSONObject jobject = new JSONObject(values);
dataset.setProperties(jobject.toString());