argos/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/DescriptionTemplateImportXm...

113 lines
4.3 KiB
Java

package eu.eudat.commons.types.descriptiontemplate.importmodel;
import eu.eudat.commons.enums.DescriptionTemplateStatus;
import eu.eudat.model.persist.DescriptionTemplatePersist;
import eu.eudat.model.persist.NewVersionDescriptionTemplatePersist;
import eu.eudat.model.persist.descriptiontemplatedefinition.DefinitionPersist;
import eu.eudat.model.persist.descriptiontemplatedefinition.PagePersist;
import eu.eudat.model.persist.descriptiontemplatedefinition.SectionPersist;
import eu.eudat.service.fielddatahelper.FieldDataHelperServiceProvider;
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;
import java.util.UUID;
@XmlRootElement(name = "pages")
public class DescriptionTemplateImportXml {
private String description;
private String language;
private String type;
private List<PageImportXml> page;
@XmlElement(name = "page")
public List<PageImportXml> getPage() {
return page;
}
public void setPage(List<PageImportXml> page) {
this.page = page;
}
@XmlAttribute(name = "description")
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@XmlAttribute(name = "language")
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
@XmlAttribute(name = "type")
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public DescriptionTemplatePersist toPersistModel(String label, FieldDataHelperServiceProvider fieldDataHelperServiceProvider){
DescriptionTemplatePersist newDatasetEntityProfile = new DescriptionTemplatePersist();
newDatasetEntityProfile.setLabel(label);
newDatasetEntityProfile.setStatus(DescriptionTemplateStatus.Draft);
newDatasetEntityProfile.setDescription(description);
newDatasetEntityProfile.setLanguage(language);
newDatasetEntityProfile.setType(UUID.fromString(type));
DefinitionPersist definitionPersist = new DefinitionPersist();
List<PagePersist> pagesDatasetEntity = new LinkedList<>();
List<SectionPersist> sectionDatasetEntity = new LinkedList<>();
for (PageImportXml xmlPage: page) {
pagesDatasetEntity.add(xmlPage.toPersistModel());
for (int i = 0; i < xmlPage.getSections().size(); i++) {
sectionDatasetEntity.add(xmlPage.toPersistModel(i, fieldDataHelperServiceProvider));
}
}
definitionPersist.setPages(pagesDatasetEntity);
definitionPersist.setSections(sectionDatasetEntity);
newDatasetEntityProfile.setDefinition(definitionPersist);
return newDatasetEntityProfile;
}
public NewVersionDescriptionTemplatePersist toNewVersionPersistModel(UUID id, String label, FieldDataHelperServiceProvider fieldDataHelperServiceProvider){
NewVersionDescriptionTemplatePersist newDatasetEntityProfile = new NewVersionDescriptionTemplatePersist();
newDatasetEntityProfile.setId(id);
newDatasetEntityProfile.setLabel(label);
newDatasetEntityProfile.setStatus(DescriptionTemplateStatus.Draft);
newDatasetEntityProfile.setDescription(description);
newDatasetEntityProfile.setLanguage(language);
newDatasetEntityProfile.setType(UUID.fromString(type));
DefinitionPersist definitionPersist = new DefinitionPersist();
List<PagePersist> pagesDatasetEntity = new LinkedList<>();
List<SectionPersist> sectionDatasetEntity = new LinkedList<>();
for (PageImportXml xmlPage: page) {
pagesDatasetEntity.add(xmlPage.toPersistModel());
for (int i = 0; i < xmlPage.getSections().size(); i++) {
sectionDatasetEntity.add(xmlPage.toPersistModel(i, fieldDataHelperServiceProvider));
}
}
definitionPersist.setPages(pagesDatasetEntity);
definitionPersist.setSections(sectionDatasetEntity);
newDatasetEntityProfile.setDefinition(definitionPersist);
return newDatasetEntityProfile;
}
}