model serialization workflow between admin and user
This commit is contained in:
parent
c12fd1f1be
commit
cdfa350e82
|
@ -0,0 +1,6 @@
|
|||
import { FormGenerator } from '../interfaces/FormGenerator';
|
||||
import { Serializable } from '../interfaces/Serializable';
|
||||
import { FormGroup } from '@angular/forms'
|
||||
export abstract class DataField<T> implements Serializable<T>,FormGenerator<FormGroup>{
|
||||
|
||||
}
|
|
@ -18,7 +18,7 @@ export class RestBase {
|
|||
/*
|
||||
*/
|
||||
protocol: string = "http";
|
||||
hostname: string = "dionysus.di.uoa.gr";
|
||||
hostname: string = "localhost";
|
||||
port: number = 8080;
|
||||
webappname: string = "dmp-backend";
|
||||
restpath: string = "rest";
|
||||
|
|
|
@ -13,8 +13,8 @@ import entities.DatasetProfileViewstyle;
|
|||
import entities.xmlmodels.modeldefinition.FieldGroup;
|
||||
import entities.xmlmodels.viewstyledefinition.Section;
|
||||
import entities.xmlmodels.viewstyledefinition.ViewStyleModel;
|
||||
import models.components.datasetprofile.FieldSet;
|
||||
import models.composite.DatasetProfile;
|
||||
import models.admin.components.datasetprofile.FieldSet;
|
||||
import models.admin.composite.DatasetProfile;
|
||||
import utilities.builders.ModelBuilder;
|
||||
import utilities.builders.XmlBuilder;
|
||||
import utilities.helpers.ModelBuilderCollector;
|
||||
|
@ -52,7 +52,7 @@ public class AdminManager {
|
|||
return datasetProfileViewstyle;
|
||||
}
|
||||
|
||||
public static models.composite.DatasetProfile generateDatasetProfileModel(entities.DatasetProfile profile){
|
||||
public static models.admin.composite.DatasetProfile generateDatasetProfileModel(entities.DatasetProfile profile){
|
||||
Document viewStyleDoc = XmlBuilder.fromXml(profile.getViewstyle().getDefinition());
|
||||
Element root = (Element)viewStyleDoc.getDocumentElement();
|
||||
entities.xmlmodels.viewstyledefinition.ViewStyleModel viewstyle= new entities.xmlmodels.viewstyledefinition.ViewStyleModel().fromXml(root);
|
||||
|
@ -61,7 +61,7 @@ public class AdminManager {
|
|||
root = (Element)profileDoc.getDocumentElement();
|
||||
entities.xmlmodels.modeldefinition.FieldGroup fieldGroup = new entities.xmlmodels.modeldefinition.FieldGroup().fromXml(root);
|
||||
|
||||
models.composite.DatasetProfile datasetprofile = new models.composite.DatasetProfile();
|
||||
models.admin.composite.DatasetProfile datasetprofile = new models.admin.composite.DatasetProfile();
|
||||
datasetprofile.buildProfile(fieldGroup, viewstyle);
|
||||
|
||||
return datasetprofile;
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
package managers;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
import utilities.builders.XmlBuilder;
|
||||
|
||||
public class UserManager {
|
||||
public static models.user.composite.DatasetProfile generateDatasetProfileModel(entities.DatasetProfile profile){
|
||||
Document viewStyleDoc = XmlBuilder.fromXml(profile.getViewstyle().getDefinition());
|
||||
Element root = (Element)viewStyleDoc.getDocumentElement();
|
||||
entities.xmlmodels.viewstyledefinition.ViewStyleModel viewstyle= new entities.xmlmodels.viewstyledefinition.ViewStyleModel().fromXml(root);
|
||||
|
||||
Document profileDoc = XmlBuilder.fromXml(profile.getDefinition());
|
||||
root = (Element)profileDoc.getDocumentElement();
|
||||
entities.xmlmodels.modeldefinition.FieldGroup fieldGroup = new entities.xmlmodels.modeldefinition.FieldGroup().fromXml(root);
|
||||
|
||||
models.user.composite.DatasetProfile datasetprofile = new models.user.composite.DatasetProfile();
|
||||
datasetprofile.buildProfile(fieldGroup, viewstyle);
|
||||
|
||||
return datasetprofile;
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package models.components.datasetprofile;
|
||||
package models.admin.components.datasetprofile;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
@ -0,0 +1,85 @@
|
|||
package models.admin.components.datasetprofile;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
|
||||
|
||||
import models.components.commons.Multiplicity;
|
||||
import utilities.ModelDefinition;
|
||||
import utilities.ViewStyleDefinition;
|
||||
import utilities.builders.ModelBuilder;
|
||||
|
||||
public class FieldSet implements ModelDefinition<entities.xmlmodels.modeldefinition.FieldSet>,ViewStyleDefinition<entities.xmlmodels.viewstyledefinition.FieldSet>{
|
||||
private String id;
|
||||
private int ordinal;
|
||||
private Multiplicity multiplicity;
|
||||
private List<Field> fields;
|
||||
|
||||
public List<Field> getFields() {
|
||||
return fields;
|
||||
}
|
||||
|
||||
public void setFields(List<Field> fields) {
|
||||
this.fields = fields;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public int getOrdinal() {
|
||||
return ordinal;
|
||||
}
|
||||
|
||||
public void setOrdinal(int ordinal) {
|
||||
this.ordinal = ordinal;
|
||||
}
|
||||
|
||||
public Multiplicity getMultiplicity() {
|
||||
return multiplicity;
|
||||
}
|
||||
|
||||
public void setMultiplicity(Multiplicity multiplicity) {
|
||||
this.multiplicity = multiplicity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public entities.xmlmodels.modeldefinition.FieldSet toDatabaseDefinition(entities.xmlmodels.modeldefinition.FieldSet fieldSet) {
|
||||
fieldSet.setId(this.id);
|
||||
fieldSet.setOrdinal(this.ordinal);
|
||||
List<entities.xmlmodels.modeldefinition.Field> modelfields = new ModelBuilder().toModelDefinition(this.fields, entities.xmlmodels.modeldefinition.Field.class);
|
||||
fieldSet.setFields(modelfields);
|
||||
fieldSet.setMultiplicity(this.multiplicity);
|
||||
return fieldSet;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromDatabaseDefinition(entities.xmlmodels.modeldefinition.FieldSet item) {
|
||||
this.id = item.getId();
|
||||
this.ordinal = item.getOrdinal();
|
||||
this.multiplicity = item.getMultiplicity();
|
||||
}
|
||||
|
||||
@Override
|
||||
public entities.xmlmodels.viewstyledefinition.FieldSet toDatabaseDefinition(entities.xmlmodels.viewstyledefinition.FieldSet item) {
|
||||
List<entities.xmlmodels.viewstyledefinition.Field> viewStylefields = new ModelBuilder().toViewStyleDefinition(this.fields, entities.xmlmodels.viewstyledefinition.Field.class);
|
||||
item.setFields(viewStylefields);
|
||||
item.setId(this.id);
|
||||
item.setOrdinal(this.ordinal);
|
||||
return item;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromDatabaseDefinition(entities.xmlmodels.viewstyledefinition.FieldSet item) {
|
||||
this.fields = new ModelBuilder().fromViewStyleDefinition(item.getFields(), Field.class);
|
||||
this.id = item.getId();
|
||||
this.ordinal = item.getOrdinal();
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,118 @@
|
|||
package models.admin.components.datasetprofile;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
|
||||
|
||||
import entities.xmlmodels.viewstyledefinition.FieldGroup;
|
||||
import utilities.ModelDefinition;
|
||||
import utilities.ViewStyleDefinition;
|
||||
import utilities.builders.ModelBuilder;
|
||||
|
||||
public class Group implements ModelDefinition<entities.xmlmodels.modeldefinition.FieldGroup>,ViewStyleDefinition<entities.xmlmodels.viewstyledefinition.FieldGroup>{
|
||||
private String id;
|
||||
private String title;
|
||||
private String section;
|
||||
private String value;
|
||||
private int ordinal;
|
||||
private String description;
|
||||
private String extendedDescription;
|
||||
private boolean defaultVisibility;
|
||||
private int page;
|
||||
private List<FieldSet> compositeFields;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
public String getSection() {
|
||||
return section;
|
||||
}
|
||||
public void setSection(String section) {
|
||||
this.section = section;
|
||||
}
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
public String getExtendedDescription() {
|
||||
return extendedDescription;
|
||||
}
|
||||
public void setExtendedDescription(String extendedDescription) {
|
||||
this.extendedDescription = extendedDescription;
|
||||
}
|
||||
public boolean isDefaultVisibility() {
|
||||
return defaultVisibility;
|
||||
}
|
||||
public void setDefaultVisibility(boolean defaultVisibility) {
|
||||
this.defaultVisibility = defaultVisibility;
|
||||
}
|
||||
public int getPage() {
|
||||
return page;
|
||||
}
|
||||
public void setPage(int page) {
|
||||
this.page = page;
|
||||
}
|
||||
public List<FieldSet> getCompositeFields() {
|
||||
return compositeFields;
|
||||
}
|
||||
public void setCompositeFields(List<FieldSet> compositeFields) {
|
||||
this.compositeFields = compositeFields;
|
||||
}
|
||||
|
||||
public int getOrdinal() {
|
||||
return ordinal;
|
||||
}
|
||||
public void setOrdinal(int ordinal) {
|
||||
this.ordinal = ordinal;
|
||||
}
|
||||
@Override
|
||||
public entities.xmlmodels.viewstyledefinition.FieldGroup toDatabaseDefinition(FieldGroup item) {
|
||||
item.setDefaultVisibility(this.defaultVisibility);
|
||||
item.setDescription(this.description);
|
||||
item.setExtendedDescription(this.extendedDescription);
|
||||
item.setFieldSets(new ModelBuilder().toViewStyleDefinition(this.compositeFields, entities.xmlmodels.viewstyledefinition.FieldSet.class));
|
||||
item.setId(this.id);
|
||||
item.setOrdinal(this.ordinal);
|
||||
item.setPage(this.page);
|
||||
item.setTitle(this.title);
|
||||
return item;
|
||||
}
|
||||
@Override
|
||||
public void fromDatabaseDefinition(FieldGroup item) {
|
||||
this.defaultVisibility = item.isDefaultVisibility();
|
||||
this.description = item.getDescription();
|
||||
this.extendedDescription = item.getExtendedDescription();
|
||||
this.compositeFields = new ModelBuilder().fromViewStyleDefinition(item.getFieldSets(), FieldSet.class);
|
||||
this.id = item.getId();
|
||||
this.ordinal = item.getOrdinal();
|
||||
this.page = item.getPage();
|
||||
this.title = item.getTitle();
|
||||
}
|
||||
@Override
|
||||
public entities.xmlmodels.modeldefinition.FieldGroup toDatabaseDefinition(entities.xmlmodels.modeldefinition.FieldGroup item) {
|
||||
item.setFieldSets(new ModelBuilder().toModelDefinition(this.compositeFields, entities.xmlmodels.modeldefinition.FieldSet.class));
|
||||
return item;
|
||||
}
|
||||
@Override
|
||||
public void fromDatabaseDefinition(entities.xmlmodels.modeldefinition.FieldGroup item) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
package models.admin.components.datasetprofile;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import utilities.ModelDefinition;
|
||||
import utilities.ViewStyleDefinition;
|
||||
import utilities.builders.ModelBuilder;
|
||||
|
||||
public class Section implements ViewStyleDefinition<entities.xmlmodels.viewstyledefinition.Section>{
|
||||
private List<Section> sections;
|
||||
private List<Group> fieldGroups;
|
||||
private Boolean defaultVisibility;
|
||||
private int page;
|
||||
private int ordinal;
|
||||
private String id;
|
||||
private String title;
|
||||
private String description;
|
||||
public List<Section> getSections() {
|
||||
return sections;
|
||||
}
|
||||
public void setSections(List<Section> sections) {
|
||||
this.sections = sections;
|
||||
}
|
||||
public List<Group> getFieldGroups() {
|
||||
return fieldGroups;
|
||||
}
|
||||
public void setFieldGroups(List<Group> fieldGroups) {
|
||||
this.fieldGroups = fieldGroups;
|
||||
}
|
||||
public Boolean getDefaultVisibility() {
|
||||
return defaultVisibility;
|
||||
}
|
||||
public void setDefaultVisibility(Boolean defaultVisibility) {
|
||||
this.defaultVisibility = defaultVisibility;
|
||||
}
|
||||
public int getPage() {
|
||||
return page;
|
||||
}
|
||||
public void setPage(int page) {
|
||||
this.page = page;
|
||||
}
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public int getOrdinal() {
|
||||
return ordinal;
|
||||
}
|
||||
public void setOrdinal(int ordinal) {
|
||||
this.ordinal = ordinal;
|
||||
}
|
||||
@Override
|
||||
public entities.xmlmodels.viewstyledefinition.Section toDatabaseDefinition(entities.xmlmodels.viewstyledefinition.Section item) {
|
||||
item.setDefaultVisibility(this.defaultVisibility);
|
||||
item.setDescription(this.description);
|
||||
if(this.fieldGroups!=null)item.setFieldGroups(new ModelBuilder().toViewStyleDefinition(this.fieldGroups, entities.xmlmodels.viewstyledefinition.FieldGroup.class));
|
||||
item.setId(this.id);
|
||||
item.setOrdinal(this.ordinal);
|
||||
item.setPage(this.page);
|
||||
if(this.sections!=null)item.setSections(new ModelBuilder().toViewStyleDefinition(this.sections, entities.xmlmodels.viewstyledefinition.Section.class));
|
||||
item.setTitle(this.title);
|
||||
return item;
|
||||
}
|
||||
@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);
|
||||
this.id = item.getId();
|
||||
this.ordinal = item.getOrdinal();
|
||||
this.page = item.getPage();
|
||||
this.sections = new ModelBuilder().fromViewStyleDefinition(item.getSections(),Section.class);
|
||||
this.title = item.getTitle();
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -1,11 +1,12 @@
|
|||
package models.composite;
|
||||
package models.admin.composite;
|
||||
|
||||
import models.components.datasetprofile.*;
|
||||
import utilities.builders.ModelBuilder;
|
||||
import utilities.helpers.ModelBuilderCollector;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import models.admin.components.datasetprofile.*;
|
||||
|
||||
public class DatasetProfile {
|
||||
private List<Section> sections;
|
||||
|
|
@ -3,9 +3,10 @@ package models.components.commons;
|
|||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
import entities.xmlmodels.modeldefinition.DatabaseModelDefinition;
|
||||
import utilities.XmlSerializable;
|
||||
|
||||
public class Rule implements XmlSerializable<Rule>{
|
||||
public class Rule implements XmlSerializable<Rule>,DatabaseModelDefinition{
|
||||
private String ruleType;
|
||||
private String target;
|
||||
private String ruleStyle;
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
package models.user.components.commons;
|
||||
|
||||
import utilities.ModelDefinition;
|
||||
|
||||
public class Rule {
|
||||
private String sourceField;
|
||||
private String targetField;
|
||||
private String requiredValue;
|
||||
private String type;
|
||||
|
||||
public String getSourceField() {
|
||||
return sourceField;
|
||||
}
|
||||
public void setSourceField(String sourceField) {
|
||||
this.sourceField = sourceField;
|
||||
}
|
||||
public String getTargetField() {
|
||||
return targetField;
|
||||
}
|
||||
public void setTargetField(String targetField) {
|
||||
this.targetField = targetField;
|
||||
}
|
||||
public String getRequiredValue() {
|
||||
return requiredValue;
|
||||
}
|
||||
public void setRequiredValue(String requiredValue) {
|
||||
this.requiredValue = requiredValue;
|
||||
}
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public Rule fromDefinitionRule(models.components.commons.Rule rule){
|
||||
this.targetField = rule.getTarget();
|
||||
this.requiredValue = rule.getValue();
|
||||
this.type = rule.getRuleStyle();
|
||||
return this;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,155 @@
|
|||
package models.user.components.datasetprofile;
|
||||
|
||||
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 models.components.commons.DefaultValue;
|
||||
import models.components.commons.Multiplicity;
|
||||
import models.components.commons.ViewStyle;
|
||||
import models.components.commons.Visibility;
|
||||
import utilities.ModelDefinition;
|
||||
import utilities.ViewStyleDefinition;
|
||||
import utilities.builders.ModelBuilder;
|
||||
|
||||
public class Field implements ModelDefinition<entities.xmlmodels.modeldefinition.Field>,ViewStyleDefinition<entities.xmlmodels.viewstyledefinition.Field>{
|
||||
private String id;
|
||||
private int ordinal;
|
||||
private String title;
|
||||
private String value;
|
||||
private String description;
|
||||
private String extendedDescription;
|
||||
private ViewStyle viewStyle;
|
||||
private String datatype;
|
||||
private boolean defaultVisibility;
|
||||
private int page;
|
||||
private DefaultValue defaultValue;
|
||||
private Multiplicity multiplicity;
|
||||
private Object data;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public int getOrdinal(){
|
||||
return ordinal;
|
||||
}
|
||||
|
||||
public void setOrdinal(int ordinal){
|
||||
this.ordinal = ordinal;
|
||||
}
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
public String getExtendedDescription() {
|
||||
return extendedDescription;
|
||||
}
|
||||
public void setExtendedDescription(String extendedDescription) {
|
||||
this.extendedDescription = extendedDescription;
|
||||
}
|
||||
public ViewStyle getViewStyle() {
|
||||
return viewStyle;
|
||||
}
|
||||
public void setViewStyle(ViewStyle viewStyle) {
|
||||
this.viewStyle = viewStyle;
|
||||
}
|
||||
public boolean isDefaultVisibility() {
|
||||
return defaultVisibility;
|
||||
}
|
||||
public void setDefaultVisibility(boolean defaultVisibility) {
|
||||
this.defaultVisibility = defaultVisibility;
|
||||
}
|
||||
public int getPage() {
|
||||
return page;
|
||||
}
|
||||
public void setPage(int page) {
|
||||
this.page = page;
|
||||
}
|
||||
|
||||
public DefaultValue getDefaultValue() {
|
||||
return defaultValue;
|
||||
}
|
||||
public void setDefaultValue(DefaultValue defaultValue) {
|
||||
this.defaultValue = defaultValue;
|
||||
}
|
||||
public String getDatatype() {
|
||||
return datatype;
|
||||
}
|
||||
public void setDatatype(String datatype) {
|
||||
this.datatype = datatype;
|
||||
}
|
||||
|
||||
public Multiplicity getMultiplicity() {
|
||||
return multiplicity;
|
||||
}
|
||||
public void setMultiplicity(Multiplicity multiplicity) {
|
||||
this.multiplicity = multiplicity;
|
||||
}
|
||||
|
||||
public Object getData() {
|
||||
return data;
|
||||
}
|
||||
public void setData(Object data) {
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public entities.xmlmodels.modeldefinition.Field toDatabaseDefinition(entities.xmlmodels.modeldefinition.Field field) {
|
||||
field.setDatatype(this.datatype);
|
||||
field.setDefaultValue(this.defaultValue);
|
||||
field.setId(this.id);
|
||||
field.setMultiplicity(this.multiplicity);
|
||||
field.setOrdinal(this.ordinal);
|
||||
return field;
|
||||
}
|
||||
@Override
|
||||
public void fromDatabaseDefinition(entities.xmlmodels.modeldefinition.Field item) {
|
||||
this.datatype = item.getDatatype();
|
||||
this.defaultValue = item.getDefaultValue();
|
||||
this.multiplicity = item.getMultiplicity();
|
||||
}
|
||||
@Override
|
||||
public entities.xmlmodels.viewstyledefinition.Field toDatabaseDefinition(entities.xmlmodels.viewstyledefinition.Field field) {
|
||||
field.setDefaultVisibility(this.defaultVisibility);
|
||||
field.setDescription(this.description);
|
||||
field.setExtendedDescription(this.extendedDescription);
|
||||
field.setId(this.id);
|
||||
field.setOrdinal(this.ordinal);
|
||||
field.setTitle(this.title);
|
||||
field.setViewStyle(this.viewStyle);
|
||||
field.setData(new ModelBuilder().toFieldData(data, this.viewStyle.getRenderStyle()));
|
||||
return field;
|
||||
}
|
||||
@Override
|
||||
public void fromDatabaseDefinition(entities.xmlmodels.viewstyledefinition.Field item) {
|
||||
this.defaultVisibility = item.isDefaultVisibility();
|
||||
this.description = item.getDescription();
|
||||
this.extendedDescription = item.getExtendedDescription();
|
||||
this.id = item.getId();
|
||||
this.ordinal = item.getOrdinal();
|
||||
this.title = item.getTitle();
|
||||
this.viewStyle = item.getViewStyle();
|
||||
this.data = item.getData();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package models.components.datasetprofile;
|
||||
package models.user.components.datasetprofile;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
|
@ -1,4 +1,4 @@
|
|||
package models.components.datasetprofile;
|
||||
package models.user.components.datasetprofile;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package models.components.datasetprofile;
|
||||
package models.user.components.datasetprofile;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
package models.user.composite;
|
||||
|
||||
import utilities.builders.ModelBuilder;
|
||||
import utilities.helpers.ModelBuilderCollector;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import models.user.components.datasetprofile.*;
|
||||
import models.user.components.commons.Rule;
|
||||
|
||||
public class DatasetProfile {
|
||||
private List<Section> sections;
|
||||
private List<Rule> rules;
|
||||
public List<Section> getSections() {
|
||||
return sections;
|
||||
}
|
||||
|
||||
public void setSections(List<Section> sections) {
|
||||
this.sections = sections;
|
||||
}
|
||||
|
||||
|
||||
public List<Rule> getRules() {
|
||||
return rules;
|
||||
}
|
||||
|
||||
public void setRules(List<Rule> rules) {
|
||||
this.rules = rules;
|
||||
}
|
||||
|
||||
public void buildProfile(entities.xmlmodels.modeldefinition.FieldGroup fieldGroup,entities.xmlmodels.viewstyledefinition.ViewStyleModel viewStyle){
|
||||
this.sections = new ModelBuilder().fromViewStyleDefinition(viewStyle.getSections(), Section.class);
|
||||
updateProfile(fieldGroup,viewStyle);
|
||||
}
|
||||
|
||||
private void updateProfile(entities.xmlmodels.modeldefinition.FieldGroup fieldGroup,entities.xmlmodels.viewstyledefinition.ViewStyleModel viewStyle){
|
||||
ModelBuilderCollector.mapUserSections(sections, fieldGroup.getFieldSets());
|
||||
this.rules = ModelBuilderCollector.collectRules(viewStyle.getSections());
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -30,8 +30,8 @@ import entities.DatasetProfileViewstyle;
|
|||
import entities.xmlmodels.modeldefinition.FieldGroup;
|
||||
import entities.xmlmodels.viewstyledefinition.Section;
|
||||
import managers.AdminManager;
|
||||
import models.components.datasetprofile.FieldSet;
|
||||
import models.composite.DatasetProfile;
|
||||
import models.admin.components.datasetprofile.FieldSet;
|
||||
import models.admin.composite.DatasetProfile;
|
||||
import utilities.builders.ModelBuilder;
|
||||
import utilities.builders.XmlBuilder;
|
||||
import utilities.helpers.ModelBuilderCollector;
|
||||
|
@ -66,7 +66,7 @@ public class Admin {
|
|||
public ResponseEntity<Object> get(@PathVariable String id){
|
||||
try{
|
||||
entities.DatasetProfile profile = datasetProfileDao.read(UUID.fromString(id));
|
||||
models.composite.DatasetProfile datasetprofile = AdminManager.generateDatasetProfileModel(profile);
|
||||
models.admin.composite.DatasetProfile datasetprofile = AdminManager.generateDatasetProfileModel(profile);
|
||||
return ResponseEntity.status(HttpStatus.OK).body(datasetprofile);
|
||||
}catch(Exception ex){
|
||||
ex.printStackTrace();
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
package rest.entities;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import dao.entities.DatasetProfileDao;
|
||||
import dao.entities.DatasetProfileRulesetDao;
|
||||
import dao.entities.DatasetProfileViewstyleDao;
|
||||
import helpers.SerializerProvider;
|
||||
import managers.AdminManager;
|
||||
import managers.UserManager;
|
||||
|
||||
@RestController
|
||||
@CrossOrigin
|
||||
public class DatasetProfileController {
|
||||
|
||||
@Autowired private DatasetProfileDao datasetProfileDao;
|
||||
@Autowired private DatasetProfileRulesetDao datasetProfileRulesetDao;
|
||||
@Autowired private DatasetProfileViewstyleDao datasetProfileViewstyleDao;
|
||||
|
||||
@RequestMapping(method = RequestMethod.GET, value = { "/datasetprofile/get/{id}" }, produces="application/json")
|
||||
public ResponseEntity<Object> get(@PathVariable String id){
|
||||
try {
|
||||
entities.DatasetProfile profile = datasetProfileDao.read(UUID.fromString(id));
|
||||
models.user.composite.DatasetProfile datasetprofile = UserManager.generateDatasetProfileModel(profile);
|
||||
|
||||
return ResponseEntity.status(HttpStatus.OK).body(datasetprofile);
|
||||
}
|
||||
catch(Exception ex) {
|
||||
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Serialization issue: "+ex.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -70,4 +70,7 @@ public class ModelBuilder {
|
|||
if(type.equals("freetext"))return null;
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -10,10 +10,11 @@ import com.fasterxml.jackson.core.JsonProcessingException;
|
|||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
||||
|
||||
import models.components.datasetprofile.FieldSet;
|
||||
import models.components.datasetprofile.Group;
|
||||
import models.components.datasetprofile.Section;
|
||||
import models.composite.DatasetProfile;
|
||||
import models.admin.components.datasetprofile.FieldSet;
|
||||
import models.admin.components.datasetprofile.Group;
|
||||
import models.admin.components.datasetprofile.Section;
|
||||
import models.admin.composite.DatasetProfile;
|
||||
import models.user.components.commons.Rule;
|
||||
|
||||
public class ModelBuilderCollector {
|
||||
|
||||
|
@ -36,7 +37,7 @@ public class ModelBuilderCollector {
|
|||
return fieldGroups;
|
||||
}
|
||||
|
||||
public static void mapSections(List<models.components.datasetprofile.Section> sections,List<entities.xmlmodels.modeldefinition.FieldSet> fieldGroups){
|
||||
public static void mapSections(List<models.admin.components.datasetprofile.Section> sections,List<entities.xmlmodels.modeldefinition.FieldSet> fieldGroups){
|
||||
for(Section section: sections){
|
||||
if(!section.getSections().isEmpty()){
|
||||
mapSections(section.getSections(),fieldGroups);
|
||||
|
@ -50,7 +51,7 @@ public class ModelBuilderCollector {
|
|||
return;
|
||||
}
|
||||
|
||||
private static void mapCompositeFields(List<models.components.datasetprofile.FieldSet> fieldSets,List<entities.xmlmodels.modeldefinition.FieldSet> fieldGroups){
|
||||
private static void mapCompositeFields(List<models.admin.components.datasetprofile.FieldSet> fieldSets,List<entities.xmlmodels.modeldefinition.FieldSet> fieldGroups){
|
||||
for(FieldSet fieldSet: fieldSets){
|
||||
if(!fieldSet.getFields().isEmpty()){
|
||||
mapFields(fieldSet.getFields(),fieldGroups);
|
||||
|
@ -64,9 +65,9 @@ public class ModelBuilderCollector {
|
|||
return;
|
||||
}
|
||||
|
||||
private static void mapFields(List<models.components.datasetprofile.Field> fields,List<entities.xmlmodels.modeldefinition.FieldSet> fieldGroups){
|
||||
private static void mapFields(List<models.admin.components.datasetprofile.Field> fields,List<entities.xmlmodels.modeldefinition.FieldSet> fieldGroups){
|
||||
|
||||
for(models.components.datasetprofile.Field fielditem: fields){
|
||||
for(models.admin.components.datasetprofile.Field fielditem: fields){
|
||||
for(entities.xmlmodels.modeldefinition.FieldSet fieldSet:fieldGroups){
|
||||
for(entities.xmlmodels.modeldefinition.Field fieldmodelitem : fieldSet.getFields()){
|
||||
if(fielditem.getId()!=null&&fielditem.getId().equals(fieldmodelitem.getId())){
|
||||
|
@ -78,4 +79,76 @@ public class ModelBuilderCollector {
|
|||
}
|
||||
return;
|
||||
}
|
||||
|
||||
public static void mapUserSections(List<models.user.components.datasetprofile.Section> sections,List<entities.xmlmodels.modeldefinition.FieldSet> fieldGroups){
|
||||
for(models.user.components.datasetprofile.Section section: sections){
|
||||
if(!section.getSections().isEmpty()){
|
||||
mapUserSections(section.getSections(),fieldGroups);
|
||||
}
|
||||
for(models.user.components.datasetprofile.Group group: section.getFieldGroups()){
|
||||
if(!group.getCompositeFields().isEmpty()){
|
||||
mapUserCompositeFields(group.getCompositeFields(),fieldGroups);
|
||||
}
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
private static void mapUserCompositeFields(List<models.user.components.datasetprofile.FieldSet> fieldSets,List<entities.xmlmodels.modeldefinition.FieldSet> fieldGroups){
|
||||
for(models.user.components.datasetprofile.FieldSet fieldSet: fieldSets){
|
||||
if(!fieldSet.getFields().isEmpty()){
|
||||
mapUserFields(fieldSet.getFields(),fieldGroups);
|
||||
}
|
||||
for(entities.xmlmodels.modeldefinition.FieldSet fieldModelSet :fieldGroups){
|
||||
if(fieldSet.getId()!=null&&fieldSet.getId().equals(fieldModelSet.getId())){
|
||||
fieldSet.fromDatabaseDefinition(fieldModelSet);
|
||||
}
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
private static void mapUserFields(List<models.user.components.datasetprofile.Field> fields,List<entities.xmlmodels.modeldefinition.FieldSet> fieldGroups){
|
||||
|
||||
for(models.user.components.datasetprofile.Field fielditem: fields){
|
||||
for(entities.xmlmodels.modeldefinition.FieldSet fieldSet:fieldGroups){
|
||||
for(entities.xmlmodels.modeldefinition.Field fieldmodelitem : fieldSet.getFields()){
|
||||
if(fielditem.getId()!=null&&fielditem.getId().equals(fieldmodelitem.getId())){
|
||||
fielditem.fromDatabaseDefinition(fieldmodelitem);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
public static List<Rule> collectRules(List<entities.xmlmodels.viewstyledefinition.Section> sections){
|
||||
List<Rule> rules = new LinkedList();
|
||||
rules.addAll(
|
||||
sections
|
||||
.stream()
|
||||
.map(section->section.getFieldGroups())
|
||||
.flatMap(List::stream)
|
||||
.map(group->group.getFieldSets())
|
||||
.flatMap(List::stream)
|
||||
.map(fieldset->fieldset.getFields())
|
||||
.flatMap(List::stream)
|
||||
.map(field->getRulesFromField(field.getId(),field.getVisible()
|
||||
.getRules()))
|
||||
.flatMap(List::stream)
|
||||
.collect(Collectors.toList()));
|
||||
return rules;
|
||||
}
|
||||
|
||||
private static List<Rule> getRulesFromField(String id,List<models.components.commons.Rule> rules){
|
||||
List<Rule> modelRules = new LinkedList();
|
||||
for(models.components.commons.Rule rule : rules){
|
||||
Rule modelRule = new Rule().fromDefinitionRule(rule);
|
||||
modelRule.setSourceField(id);
|
||||
modelRules.add(modelRule);
|
||||
}
|
||||
return modelRules;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
|
||||
<div [formGroup]="textFormGroup">
|
||||
<label >{{field.title}}</label>
|
||||
<input auto-complete class="form-control autocomplete" formControlName="text" [source]="values" >
|
||||
</div>
|
||||
<label>{{field.description}}</label>
|
||||
<div>{{field.extendedDescription}}</div>
|
||||
<label>{{field.title}}</label>
|
||||
<input auto-complete class="form-control autocomplete" formControlName="text" [source]="values">
|
||||
</div>
|
|
@ -1,4 +1,6 @@
|
|||
<div [formGroup]="form">
|
||||
<label>{{field.description}}</label>
|
||||
<div>{{field.extendedDescription}}</div>
|
||||
<input type="radio" formControlName="value" value="true">Yes<br>
|
||||
<input type="radio" formControlName="value" value="false">No
|
||||
</div>
|
|
@ -1,5 +1,6 @@
|
|||
|
||||
<div [formGroup]="form" class="form-group" >
|
||||
<label>{{field.title}}</label>
|
||||
<label>{{field.description}}</label>
|
||||
<div>{{field.extendedDescription}}</div>
|
||||
<input formControlName="value" type = "checkbox">
|
||||
</div>
|
|
@ -1,4 +1,6 @@
|
|||
<div [formGroup]="form">
|
||||
<label>{{field.description}}</label>
|
||||
<div>{{field.extendedDescription}}</div>
|
||||
<select class="form-control" formControlName="value">
|
||||
<option *ngFor="let opt of field.data.values" [value]="opt.value">{{opt.label}}</option>
|
||||
</select>
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
<div [formGroup]="form">
|
||||
<label>{{field.description}}</label>
|
||||
<div>{{field.extendedDescription}}</div>
|
||||
<div *ngFor="let option of this.field.data.options">
|
||||
<input type="radio" formControlName="value" value="option.value">{{option.label}}<br>
|
||||
</div>
|
||||
|
|
|
@ -1 +1,3 @@
|
|||
<label>{{field.description}}</label>
|
||||
<div>{{field.extendedDescription}}</div>
|
||||
<input class ="form-control" [formControlName]="field.key" [id]="field.key" [type]="field.type" required ="field.required">
|
|
@ -29,10 +29,12 @@
|
|||
<div *ngIf="this.visibilityRulesService.isElementVisible(pathName,field.id)" [formGroup]="form" class="form-group" [ngSwitch]="field.viewStyle.renderStyle">
|
||||
<div [ngClass]="{true:'show', false:'hide'}[field.visible]">
|
||||
|
||||
<label>{{field.description}}</label>
|
||||
<div>{{field.extendedDescription}}</div>
|
||||
|
||||
<label>{{field.title}}</label>
|
||||
|
||||
<div *ngSwitchCase="'freetext'">
|
||||
<label>{{field.description}}</label>
|
||||
<div>{{field.extendedDescription}}</div>
|
||||
<input class="form-control" formControlName="value">
|
||||
</div>
|
||||
|
||||
|
|
Loading…
Reference in New Issue