159 lines
4.9 KiB
Java
159 lines
4.9 KiB
Java
package eu.eudat.models.data.admin.components.datasetprofile;
|
|
|
|
import eu.eudat.commons.enums.FieldValidationType;
|
|
import eu.eudat.commons.types.common.DatabaseViewStyleDefinition;
|
|
import eu.eudat.model.publicapi.datasetwizard.DefaultValueEntity;
|
|
import eu.eudat.model.publicapi.datasetwizard.FieldDescriptionEntity;
|
|
import eu.eudat.model.publicapi.datasetwizard.VisibilityEntity;
|
|
import eu.eudat.commons.types.descriptiontemplate.FieldEntity;
|
|
import eu.eudat.logic.utilities.interfaces.ViewStyleDefinition;
|
|
import org.apache.commons.lang3.NotImplementedException;
|
|
import org.apache.commons.lang3.RandomStringUtils;
|
|
|
|
import java.util.List;
|
|
import java.util.stream.Collectors;
|
|
|
|
public class Field implements DatabaseViewStyleDefinition, ViewStyleDefinition<FieldEntity>, Comparable {
|
|
|
|
private String id;
|
|
private Integer ordinal;
|
|
private List<String> schematics;
|
|
private String value;
|
|
private FieldDescriptionEntity viewStyle;
|
|
private String datatype;
|
|
private int page;
|
|
private DefaultValueEntity defaultValue;
|
|
private Object data;
|
|
private VisibilityEntity visible;
|
|
private List<FieldValidationType> validations;
|
|
private Boolean export;
|
|
|
|
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 List<String> getSchematics() {
|
|
return schematics;
|
|
}
|
|
public void setSchematics(List<String> schematics) {
|
|
this.schematics = schematics;
|
|
}
|
|
|
|
public String getValue() {
|
|
return value;
|
|
}
|
|
public void setValue(String value) {
|
|
this.value = value;
|
|
}
|
|
|
|
public FieldDescriptionEntity getViewStyle() {
|
|
return viewStyle;
|
|
}
|
|
public void setViewStyle(FieldDescriptionEntity viewStyle) {
|
|
this.viewStyle = viewStyle;
|
|
}
|
|
|
|
public int getPage() {
|
|
return page;
|
|
}
|
|
public void setPage(int page) {
|
|
this.page = page;
|
|
}
|
|
|
|
public DefaultValueEntity getDefaultValue() {
|
|
return defaultValue;
|
|
}
|
|
public void setDefaultValue(DefaultValueEntity defaultValue) {
|
|
this.defaultValue = defaultValue;
|
|
}
|
|
|
|
public String getDatatype() {
|
|
return datatype;
|
|
}
|
|
public void setDatatype(String datatype) {
|
|
this.datatype = datatype;
|
|
}
|
|
|
|
public Object getData() {
|
|
return data;
|
|
}
|
|
public void setData(Object data) {
|
|
this.data = data;
|
|
}
|
|
|
|
public VisibilityEntity getVisible() {
|
|
return visible;
|
|
}
|
|
public void setVisible(VisibilityEntity visible) {
|
|
this.visible = visible;
|
|
}
|
|
|
|
public List<Integer> getValidations() {
|
|
return this.validations.stream().map(item -> (int) item.getValue()).collect(Collectors.toList());
|
|
}
|
|
public void setValidations(List<Integer> validations) {
|
|
this.validations = validations.stream().map(x-> FieldValidationType.of(x.shortValue())).collect(Collectors.toList());
|
|
}
|
|
|
|
public Boolean getExport() {
|
|
return export;
|
|
}
|
|
|
|
public void setExport(Boolean export) {
|
|
this.export = export;
|
|
}
|
|
|
|
@Override
|
|
public FieldEntity toDatabaseDefinition(FieldEntity fieldEntity) {
|
|
if (this.id == null || this.id.isEmpty()) this.id = "field_" + RandomStringUtils.random(5, true, true);
|
|
|
|
fieldEntity.setId(this.id);
|
|
fieldEntity.setOrdinal(this.ordinal);
|
|
throw new NotImplementedException(" Use new logic");
|
|
//TODO: Use new logic
|
|
// fieldEntity.setData(new FieldDataHelper().toFieldData(data, this.viewStyle.getFieldType()));
|
|
// fieldEntity.setVisibilityRules(this.visible.getRules());
|
|
// fieldEntity.setDefaultValue(this.defaultValue.getValue());
|
|
// fieldEntity.setValidations(this.validations);
|
|
// fieldEntity.setSchematics(this.schematics);
|
|
// fieldEntity.setIncludeInExport(this.export);
|
|
// return fieldEntity;
|
|
}
|
|
|
|
@Override
|
|
public void fromDatabaseDefinition(FieldEntity item) {
|
|
this.id = item.getId();
|
|
this.ordinal = item.getOrdinal();
|
|
FieldDescriptionEntity fieldDescription = new FieldDescriptionEntity();
|
|
fieldDescription.setFieldType(item.getData().getFieldType());
|
|
this.viewStyle = fieldDescription;
|
|
this.data = item.getData();
|
|
VisibilityEntity visibilityEntity = new VisibilityEntity();
|
|
visibilityEntity.setRules(item.getVisibilityRules());
|
|
this.visible = visibilityEntity;
|
|
DefaultValueEntity defaultValueEntity = new DefaultValueEntity();
|
|
defaultValueEntity.setValue(item.getDefaultValue());
|
|
this.defaultValue = defaultValueEntity;
|
|
this.validations = item.getValidations();
|
|
this.schematics = item.getSchematics();
|
|
this.export = item.getIncludeInExport();
|
|
}
|
|
|
|
@Override
|
|
public int compareTo(Object o) {
|
|
return this.ordinal.compareTo(((Field) o).ordinal);
|
|
}
|
|
|
|
}
|