package eu.eudat.models.admin.components.datasetprofile; import java.util.List; import eu.eudat.utilities.ModelDefinition; import org.apache.commons.lang3.RandomStringUtils; import eu.eudat.models.components.commons.Multiplicity; import eu.eudat.utilities.ViewStyleDefinition; import eu.eudat.utilities.builders.ModelBuilder; public class FieldSet implements Comparable,ModelDefinition, ViewStyleDefinition{ private String id; private Integer ordinal; private Multiplicity multiplicity; private List fields; public List getFields() { return fields; } public void setFields(List 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 eu.eudat.entities.xmlmodels.modeldefinition.FieldSet toDatabaseDefinition(eu.eudat.entities.xmlmodels.modeldefinition.FieldSet fieldSet) { if(this.id == null||this.id.isEmpty())this.id = "fieldSet_"+RandomStringUtils.random(5, true, true); fieldSet.setId(this.id); fieldSet.setOrdinal(this.ordinal); List modelfields = new ModelBuilder().toModelDefinition(this.fields, eu.eudat.entities.xmlmodels.modeldefinition.Field.class); fieldSet.setFields(modelfields); fieldSet.setMultiplicity(this.multiplicity); return fieldSet; } @Override public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.modeldefinition.FieldSet item) { this.id = item.getId(); this.ordinal = item.getOrdinal(); this.multiplicity = item.getMultiplicity(); } @Override public eu.eudat.entities.xmlmodels.viewstyledefinition.FieldSet toDatabaseDefinition(eu.eudat.entities.xmlmodels.viewstyledefinition.FieldSet item) { if(this.id == null||this.id.isEmpty())this.id = "fieldSet_"+RandomStringUtils.random(5, true, true); List viewStylefields = new ModelBuilder().toViewStyleDefinition(this.fields, eu.eudat.entities.xmlmodels.viewstyledefinition.Field.class); item.setFields(viewStylefields); item.setId(this.id); item.setOrdinal(this.ordinal); return item; } @Override public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.viewstyledefinition.FieldSet item) { this.fields = new ModelBuilder().fromViewStyleDefinition(item.getFields(), Field.class); this.id = item.getId(); this.ordinal = item.getOrdinal(); } @Override public int compareTo(Object o) { return this.ordinal.compareTo(((FieldSet)o).ordinal); } }