From 4d1d712215c149c2cb195b419eab0a4b32336075 Mon Sep 17 00:00:00 2001 From: sgiannopoulos Date: Tue, 30 Jan 2024 18:34:22 +0200 Subject: [PATCH] xml serializer changes --- .../eu/eudat/commons/XmlHandlingService.java | 25 +++-------- .../descriptiontemplate/DefinitionEntity.java | 7 --- .../descriptiontemplate/FieldSetEntity.java | 7 --- .../types/descriptiontemplate/PageEntity.java | 3 -- .../types/descriptiontemplate/RuleEntity.java | 3 -- .../fielddata/BaseFieldDataEntity.java | 5 --- .../fielddata/BaseFieldDataImportExport.java | 5 --- .../types/dmpblueprint/DefinitionEntity.java | 7 --- .../DescriptionTemplateEntity.java | 3 -- .../types/dmpblueprint/FieldEntity.java | 5 --- .../types/dmpblueprint/SectionEntity.java | 12 ------ .../types/dmpblueprint/SystemFieldEntity.java | 6 --- .../publicapi/DmpToPublicApiDmpMapper.java | 2 +- .../AssociatedProfilePublicModel.java | 43 ++++--------------- .../managers/DataManagementPlanManager.java | 2 +- .../logic/managers/DatasetProfileManager.java | 11 +---- .../documents/xml/ExportXmlBuilder.java | 2 +- .../ExportXmlBuilderDatasetProfile.java | 2 +- .../java/eu/eudat/logic}/xml/XmlBuilder.java | 2 +- .../eu/eudat/logic}/xml/XmlSerializable.java | 2 +- .../models/data/dmp/AssociatedProfile.java | 2 +- .../data/rda/DatasetRDAExportModel.java | 2 +- 22 files changed, 22 insertions(+), 136 deletions(-) rename dmp-backend/{core/src/main/java/eu/eudat/commons/types => web/src/main/java/eu/eudat/logic}/xml/XmlBuilder.java (98%) rename dmp-backend/{core/src/main/java/eu/eudat/commons/types => web/src/main/java/eu/eudat/logic}/xml/XmlSerializable.java (81%) diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/XmlHandlingService.java b/dmp-backend/core/src/main/java/eu/eudat/commons/XmlHandlingService.java index b87b52851..c39da03c3 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/commons/XmlHandlingService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/XmlHandlingService.java @@ -1,11 +1,6 @@ package eu.eudat.commons; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -import eu.eudat.commons.types.dmpblueprint.DefinitionEntity; -import eu.eudat.commons.types.xml.XmlBuilder; -import eu.eudat.commons.types.xml.XmlSerializable; import jakarta.xml.bind.JAXBContext; import jakarta.xml.bind.JAXBException; import jakarta.xml.bind.Marshaller; @@ -44,13 +39,8 @@ public class XmlHandlingService { return writer.toString(); } - public String toXml(Object item) throws JsonProcessingException, JAXBException, ParserConfigurationException, InvalidApplicationException, TransformerException { - if (XmlSerializable.class.isAssignableFrom(item.getClass())){ - Document document = this.getDocument(); - if (document == null) throw new InvalidApplicationException("Can not create document"); - document.appendChild(((XmlSerializable)item).toXml(document)); - return this.generateXml(document); - } + public String toXml(Object item) throws JAXBException { + JAXBContext context = JAXBContext.newInstance(item.getClass()); Marshaller marshaller = context.createMarshaller(); @@ -69,15 +59,10 @@ public class XmlHandlingService { } public T fromXml(Class type, String xmlString) throws JAXBException, InstantiationException, IllegalAccessException, ParserConfigurationException, IOException, SAXException { - if (XmlSerializable.class.isAssignableFrom(type)){ - XmlSerializable object = (XmlSerializable)type.newInstance(); - return (T) object.fromXml(this.getDocument(xmlString).getDocumentElement()); - } else { - JAXBContext jaxbContext = JAXBContext.newInstance(type); - Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); + JAXBContext jaxbContext = JAXBContext.newInstance(type); + Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); - return (T) jaxbUnmarshaller.unmarshal(new StringReader(xmlString)); - } + return (T) jaxbUnmarshaller.unmarshal(new StringReader(xmlString)); } public T fromXmlSafe(Class type, String xmlString) { diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/DefinitionEntity.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/DefinitionEntity.java index 8d06da407..6178f8691 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/DefinitionEntity.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/DefinitionEntity.java @@ -1,15 +1,8 @@ package eu.eudat.commons.types.descriptiontemplate; -import eu.eudat.commons.types.xml.XmlBuilder; -import eu.eudat.commons.types.xml.XmlSerializable; import jakarta.xml.bind.annotation.*; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; import java.util.ArrayList; -import java.util.LinkedList; import java.util.List; @XmlRootElement(name = "root") diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/FieldSetEntity.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/FieldSetEntity.java index ea381e745..618d03734 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/FieldSetEntity.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/FieldSetEntity.java @@ -1,16 +1,9 @@ package eu.eudat.commons.types.descriptiontemplate; import eu.eudat.commons.types.common.DatabaseViewStyleDefinition; -import eu.eudat.commons.types.xml.XmlSerializable; -import eu.eudat.commons.types.xml.XmlBuilder; import jakarta.xml.bind.annotation.*; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; import java.util.ArrayList; -import java.util.LinkedList; import java.util.List; @XmlAccessorType(XmlAccessType.FIELD) diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/PageEntity.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/PageEntity.java index e12811c6e..ec483a1d2 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/PageEntity.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/PageEntity.java @@ -1,12 +1,9 @@ package eu.eudat.commons.types.descriptiontemplate; import eu.eudat.commons.types.common.DatabaseViewStyleDefinition; -import eu.eudat.commons.types.xml.XmlSerializable; import jakarta.xml.bind.annotation.XmlAccessType; import jakarta.xml.bind.annotation.XmlAccessorType; import jakarta.xml.bind.annotation.XmlAttribute; -import org.w3c.dom.Document; -import org.w3c.dom.Element; @XmlAccessorType(XmlAccessType.FIELD) diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/RuleEntity.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/RuleEntity.java index dcc083b62..6551cfbbb 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/RuleEntity.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/RuleEntity.java @@ -1,11 +1,8 @@ package eu.eudat.commons.types.descriptiontemplate; -import eu.eudat.commons.types.xml.XmlSerializable; import jakarta.xml.bind.annotation.XmlAccessType; import jakarta.xml.bind.annotation.XmlAccessorType; import jakarta.xml.bind.annotation.XmlAttribute; -import org.w3c.dom.Document; -import org.w3c.dom.Element; @XmlAccessorType(XmlAccessType.FIELD) public class RuleEntity { diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/fielddata/BaseFieldDataEntity.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/fielddata/BaseFieldDataEntity.java index ed92bb425..bb4239c0e 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/fielddata/BaseFieldDataEntity.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/fielddata/BaseFieldDataEntity.java @@ -1,14 +1,9 @@ package eu.eudat.commons.types.descriptiontemplate.fielddata; import eu.eudat.commons.enums.FieldType; -import eu.eudat.commons.types.xml.XmlSerializable; import jakarta.xml.bind.annotation.XmlAccessType; import jakarta.xml.bind.annotation.XmlAccessorType; import jakarta.xml.bind.annotation.XmlAttribute; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -import java.util.Map; @XmlAccessorType(XmlAccessType.FIELD) diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importexport/fielddata/BaseFieldDataImportExport.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importexport/fielddata/BaseFieldDataImportExport.java index 7f52b5c00..1efc76392 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importexport/fielddata/BaseFieldDataImportExport.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importexport/fielddata/BaseFieldDataImportExport.java @@ -1,12 +1,7 @@ package eu.eudat.commons.types.descriptiontemplate.importexport.fielddata; import eu.eudat.commons.enums.FieldType; -import eu.eudat.commons.types.xml.XmlSerializable; import jakarta.xml.bind.annotation.XmlAttribute; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -import java.util.Map; public abstract class BaseFieldDataImportExport { @XmlAttribute(name = "label") diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/types/dmpblueprint/DefinitionEntity.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/dmpblueprint/DefinitionEntity.java index 26c80a43f..301927b11 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/commons/types/dmpblueprint/DefinitionEntity.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/dmpblueprint/DefinitionEntity.java @@ -1,14 +1,7 @@ package eu.eudat.commons.types.dmpblueprint; -import eu.eudat.commons.types.xml.XmlBuilder; -import eu.eudat.commons.types.xml.XmlSerializable; import jakarta.xml.bind.annotation.*; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import java.util.LinkedList; import java.util.List; @XmlRootElement(name = "root") diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/types/dmpblueprint/DescriptionTemplateEntity.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/dmpblueprint/DescriptionTemplateEntity.java index eb1db220b..1c9c2f89f 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/commons/types/dmpblueprint/DescriptionTemplateEntity.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/dmpblueprint/DescriptionTemplateEntity.java @@ -1,11 +1,8 @@ package eu.eudat.commons.types.dmpblueprint; -import eu.eudat.commons.types.xml.XmlSerializable; import jakarta.xml.bind.annotation.XmlAccessType; import jakarta.xml.bind.annotation.XmlAccessorType; import jakarta.xml.bind.annotation.XmlAttribute; -import org.w3c.dom.Document; -import org.w3c.dom.Element; import java.util.UUID; diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/types/dmpblueprint/FieldEntity.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/dmpblueprint/FieldEntity.java index e4488abe5..ee78485a9 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/commons/types/dmpblueprint/FieldEntity.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/dmpblueprint/FieldEntity.java @@ -1,14 +1,9 @@ package eu.eudat.commons.types.dmpblueprint; -import eu.eudat.commons.enums.DmpBlueprintExtraFieldDataType; import eu.eudat.commons.enums.DmpBlueprintFieldCategory; -import eu.eudat.commons.types.xml.XmlSerializable; import jakarta.xml.bind.annotation.XmlAccessType; import jakarta.xml.bind.annotation.XmlAccessorType; import jakarta.xml.bind.annotation.XmlAttribute; -import jakarta.xml.bind.annotation.XmlTransient; -import org.w3c.dom.Document; -import org.w3c.dom.Element; import java.util.UUID; diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/types/dmpblueprint/SectionEntity.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/dmpblueprint/SectionEntity.java index a1dd62736..8590c78d6 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/commons/types/dmpblueprint/SectionEntity.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/dmpblueprint/SectionEntity.java @@ -1,22 +1,10 @@ package eu.eudat.commons.types.dmpblueprint; import eu.eudat.commons.enums.DmpBlueprintFieldCategory; -import eu.eudat.commons.enums.ReferenceTypeSourceType; -import eu.eudat.commons.types.referencetype.ReferenceTypeSourceBaseConfigurationEntity; -import eu.eudat.commons.types.referencetype.ReferenceTypeSourceExternalApiConfigurationEntity; -import eu.eudat.commons.types.referencetype.ReferenceTypeSourceStaticOptionConfigurationEntity; -import eu.eudat.commons.types.xml.XmlBuilder; -import eu.eudat.commons.types.xml.XmlSerializable; import jakarta.xml.bind.annotation.*; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import java.util.LinkedList; import java.util.List; import java.util.UUID; -import java.util.stream.Collectors; @XmlAccessorType(XmlAccessType.FIELD) public class SectionEntity { diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/types/dmpblueprint/SystemFieldEntity.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/dmpblueprint/SystemFieldEntity.java index 52a6a312f..104389902 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/commons/types/dmpblueprint/SystemFieldEntity.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/dmpblueprint/SystemFieldEntity.java @@ -1,15 +1,9 @@ package eu.eudat.commons.types.dmpblueprint; -import eu.eudat.commons.enums.DmpBlueprintFieldCategory; import eu.eudat.commons.enums.DmpBlueprintSystemFieldType; -import eu.eudat.commons.types.xml.XmlSerializable; import jakarta.xml.bind.annotation.XmlAccessType; import jakarta.xml.bind.annotation.XmlAccessorType; import jakarta.xml.bind.annotation.XmlAttribute; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -import java.util.UUID; @XmlAccessorType(XmlAccessType.FIELD) public class SystemFieldEntity extends FieldEntity { diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/mapper/publicapi/DmpToPublicApiDmpMapper.java b/dmp-backend/core/src/main/java/eu/eudat/model/mapper/publicapi/DmpToPublicApiDmpMapper.java index 572cf5875..160339eb8 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/model/mapper/publicapi/DmpToPublicApiDmpMapper.java +++ b/dmp-backend/core/src/main/java/eu/eudat/model/mapper/publicapi/DmpToPublicApiDmpMapper.java @@ -54,5 +54,5 @@ public class DmpToPublicApiDmpMapper { return model; } - } + diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/publicapi/associatedprofile/AssociatedProfilePublicModel.java b/dmp-backend/core/src/main/java/eu/eudat/model/publicapi/associatedprofile/AssociatedProfilePublicModel.java index 8ab10b2b8..8b5ed6db2 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/model/publicapi/associatedprofile/AssociatedProfilePublicModel.java +++ b/dmp-backend/core/src/main/java/eu/eudat/model/publicapi/associatedprofile/AssociatedProfilePublicModel.java @@ -1,20 +1,21 @@ package eu.eudat.model.publicapi.associatedprofile; -import eu.eudat.data.DescriptionTemplateEntity; -import eu.eudat.commons.types.xml.XmlSerializable; -import eu.eudat.data.DmpDescriptionTemplateEntity; -import eu.eudat.model.DescriptionTemplate; import eu.eudat.model.DmpDescriptionTemplate; -import org.w3c.dom.Document; -import org.w3c.dom.Element; +import jakarta.xml.bind.annotation.*; import java.util.Map; import java.util.UUID; -public class AssociatedProfilePublicModel implements XmlSerializable { +@XmlRootElement(name = "profile") +@XmlAccessorType(XmlAccessType.FIELD) +public class AssociatedProfilePublicModel { + @XmlAttribute(name="profileId") private UUID id; + @XmlAttribute(name="descriptionTemplateId") private UUID descriptionTemplateId; + @XmlAttribute(name="label") private String label; + @XmlElement(name="data") private Map data; public UUID getId() { @@ -49,36 +50,8 @@ public class AssociatedProfilePublicModel implements XmlSerializable