package eu.eudat.models.user.components.datasetprofile; import eu.eudat.models.properties.PropertiesGenerator; import eu.eudat.models.user.composite.PropertiesModelBuilder; import eu.eudat.utilities.interfaces.ViewStyleDefinition; import eu.eudat.utilities.builders.ModelBuilder; import java.util.Collections; import java.util.List; import java.util.Map; public class Section implements Comparable, ViewStyleDefinition, PropertiesModelBuilder, PropertiesGenerator { private List
sections; private List
compositeFields; private Boolean defaultVisibility; private String page; 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) { this.sections = sections; } public List
getCompositeFields() { return compositeFields; } public void setCompositeFields(List
compositeFields) { this.compositeFields = compositeFields; } public Boolean getDefaultVisibility() { return defaultVisibility; } public void setDefaultVisibility(Boolean defaultVisibility) { this.defaultVisibility = defaultVisibility; } public String getPage() { return page; } public void setPage(String 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 eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section toDatabaseDefinition(eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section item) { item.setDefaultVisibility(this.defaultVisibility); item.setDescription(this.description); if (this.compositeFields != null) item.setFieldSets(new ModelBuilder().toViewStyleDefinition(this.compositeFields, eu.eudat.entities.xmlmodels.datasetprofiledefinition.FieldSet.class)); item.setId(this.id); item.setOrdinal(this.ordinal); item.setPage(this.page); if (this.sections != null) item.setSections(new ModelBuilder().toViewStyleDefinition(this.sections, eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section.class)); item.setTitle(this.title); return item; } @Override public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section item) { this.defaultVisibility = item.isDefaultVisibility(); this.description = item.getDescription(); this.compositeFields = new ModelBuilder().fromViewStyleDefinition(item.getFieldSets(), FieldSet.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(); } @Override public void fromJsonObject(Map properties) { this.sections.forEach(item -> item.fromJsonObject(properties)); this.compositeFields.forEach(item -> item.fromJsonObject(properties)); } @Override public int compareTo(Object o) { return this.ordinal.compareTo(((Section) o).getOrdinal()); } @Override public void fromJsonObject(Map properties, String index) { // TODO Auto-generated method stub } @Override public void toMap(Map fieldValues) { this.sections.forEach(item -> item.toMap(fieldValues)); this.compositeFields.forEach(item -> item.toMap(fieldValues)); } @Override public void toMap(Map fieldValues, int index) { } }