150 lines
4.6 KiB
Java
150 lines
4.6 KiB
Java
package eu.eudat.commons.types.descriptiontemplate.importmodel.fields;
|
|
import eu.eudat.commons.enums.FieldType;
|
|
import eu.eudat.commons.enums.FieldValidationType;
|
|
import eu.eudat.commons.types.descriptiontemplate.fielddata.BaseFieldDataEntity;
|
|
import eu.eudat.commons.types.descriptiontemplate.fielddata.FieldDataHelper;
|
|
import eu.eudat.model.persist.descriptiontemplatedefinition.FieldPersist;
|
|
import eu.eudat.service.fielddatahelper.FieldDataHelperService;
|
|
import eu.eudat.service.fielddatahelper.FieldDataHelperServiceProvider;
|
|
import org.w3c.dom.Element;
|
|
|
|
import jakarta.xml.bind.annotation.XmlAttribute;
|
|
import jakarta.xml.bind.annotation.XmlElement;
|
|
import jakarta.xml.bind.annotation.XmlRootElement;
|
|
import java.util.LinkedList;
|
|
import java.util.List;
|
|
|
|
@XmlRootElement(name = "field")
|
|
public class FieldImportXml {
|
|
|
|
private String id;
|
|
|
|
private int ordinal;
|
|
|
|
private String numbering;
|
|
|
|
private List<ValidationsImportXml> validations;
|
|
|
|
private DefaultValueImportXml defaultValue;
|
|
|
|
private VisibleImportXml visible;
|
|
|
|
private ViewStyleImportXml viewStyle;
|
|
|
|
private Element data;
|
|
|
|
private SchematicsImportXml schematics;
|
|
|
|
@XmlAttribute(name = "id")
|
|
public String getId() {
|
|
return id;
|
|
}
|
|
|
|
public void setId(String id) {
|
|
this.id = id;
|
|
}
|
|
|
|
@XmlAttribute(name = "ordinal")
|
|
public int getOrdinal() {
|
|
return ordinal;
|
|
}
|
|
|
|
public void setOrdinal(int ordinal) {
|
|
this.ordinal = ordinal;
|
|
}
|
|
|
|
@XmlElement(name = "numbering")
|
|
public String getNumbering() {
|
|
return numbering;
|
|
}
|
|
|
|
public void setNumbering(String numbering) {
|
|
this.numbering = numbering;
|
|
}
|
|
|
|
@XmlElement(name = "validations")
|
|
public List<ValidationsImportXml> getValidations() {
|
|
return validations;
|
|
}
|
|
|
|
public void setValidations(List<ValidationsImportXml> validations) {
|
|
this.validations = validations;
|
|
}
|
|
|
|
@XmlElement(name = "defaultValue")
|
|
public DefaultValueImportXml getDefaultValue() {
|
|
return defaultValue;
|
|
}
|
|
|
|
public void setDefaultValue(DefaultValueImportXml defaultValue) {
|
|
this.defaultValue = defaultValue;
|
|
}
|
|
|
|
@XmlElement(name = "visible")
|
|
public VisibleImportXml getVisible() {
|
|
return visible;
|
|
}
|
|
|
|
public void setVisible(VisibleImportXml visible) {
|
|
this.visible = visible;
|
|
}
|
|
|
|
@XmlElement(name = "viewStyle")
|
|
public ViewStyleImportXml getViewStyle() {
|
|
return viewStyle;
|
|
}
|
|
|
|
public void setViewStyle(ViewStyleImportXml viewStyle) {
|
|
this.viewStyle = viewStyle;
|
|
}
|
|
|
|
@XmlElement(name = "data")
|
|
public Element getData() {
|
|
return this.data;
|
|
}
|
|
|
|
public void setData(Element data) {
|
|
this.data = data;
|
|
}
|
|
|
|
@XmlElement(name = "schematics")
|
|
public SchematicsImportXml getSchematics() {
|
|
return schematics;
|
|
}
|
|
|
|
public void setSchematics(SchematicsImportXml schematics) {
|
|
this.schematics = schematics;
|
|
}
|
|
|
|
public FieldPersist toPersistModel(FieldDataHelperServiceProvider fieldDataHelperServiceProvider) {
|
|
FieldPersist fieldEntity =new FieldPersist();
|
|
fieldEntity.setId(this.id);
|
|
fieldEntity.setOrdinal(this.ordinal);
|
|
List<FieldValidationType> validationList = new LinkedList<>();
|
|
for(ValidationsImportXml validation:this.validations){
|
|
if(validation.getValidation()!=null) {
|
|
validationList.add(validation.toPersistModel());
|
|
}
|
|
}
|
|
fieldEntity.setValidations(validationList);
|
|
fieldEntity.setDefaultValue(this.defaultValue.toPersistModel());
|
|
fieldEntity.setVisibilityRules(this.visible.toPersistModel());
|
|
FieldType fieldType = this.viewStyle.toPersistModel();
|
|
|
|
BaseFieldDataEntity<?> data = new FieldDataHelper().toFieldData(null, fieldType, (Element) this.data);
|
|
if (data != null) {
|
|
FieldDataHelperService fieldDataHelperService = fieldDataHelperServiceProvider.get(fieldType);
|
|
fieldEntity.setData(fieldDataHelperService.mapDataToPersist((BaseFieldDataEntity<?>)fieldDataHelperService.newDataInstance().fromXml(this.data)));
|
|
}
|
|
List<String> schematicsList = new LinkedList<>();
|
|
if (this.schematics != null && this.schematics.getSchematics() != null) {
|
|
for (SchematicImportXml schematic : this.schematics.getSchematics()) {
|
|
if (schematic != null && schematic.getSchematic() != null && !schematic.getSchematic().isEmpty())
|
|
schematicsList.add(schematic.getSchematic());
|
|
}
|
|
}
|
|
fieldEntity.setSchematics(schematicsList);
|
|
return fieldEntity;
|
|
}
|
|
}
|