diff --git a/dmp-backend/core/pom.xml b/dmp-backend/core/pom.xml index 2275a1d4f..fd9d90930 100644 --- a/dmp-backend/core/pom.xml +++ b/dmp-backend/core/pom.xml @@ -40,7 +40,11 @@ repositorydepositbase 1.0.4 - + + org.eclipse.angus + jakarta.mail + + diff --git a/dmp-backend/core/src/main/java/eu/eudat/authorization/Permission.java b/dmp-backend/core/src/main/java/eu/eudat/authorization/Permission.java index 39599e1ec..20e02295a 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/authorization/Permission.java +++ b/dmp-backend/core/src/main/java/eu/eudat/authorization/Permission.java @@ -29,6 +29,7 @@ public final class Permission { public static String DeleteDescriptionTemplate = "DeleteDescriptionTemplate"; public static String CloneDescriptionTemplate = "CloneDescriptionTemplate"; public static String CreateNewVersionDescriptionTemplate = "CreateNewVersionDescriptionTemplate"; + public static String ImportDescriptionTemplate = "ImportDescriptionTemplate"; //DescriptionTemplateType public static String BrowseDescriptionTemplateType = "BrowseDescriptionTemplateType"; diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/DescriptionTemplateImportXml.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/DescriptionTemplateImportXml.java new file mode 100644 index 000000000..04da6eed6 --- /dev/null +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/DescriptionTemplateImportXml.java @@ -0,0 +1,112 @@ +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 page; + + @XmlElement(name = "page") + public List getPage() { + return page; + } + + public void setPage(List 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 pagesDatasetEntity = new LinkedList<>(); + List 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 pagesDatasetEntity = new LinkedList<>(); + List 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; + } +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/FieldSet.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/FieldSetImportXml.java similarity index 75% rename from dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/FieldSet.java rename to dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/FieldSetImportXml.java index f04ecb37b..cf277ea1d 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/FieldSet.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/FieldSetImportXml.java @@ -1,20 +1,22 @@ -package eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel; +package eu.eudat.commons.types.descriptiontemplate.importmodel; -import eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel.Fields.Fields; +import eu.eudat.commons.types.descriptiontemplate.importmodel.fields.FieldsImportXml; +import eu.eudat.model.persist.descriptiontemplatedefinition.FieldSetPersist; +import eu.eudat.service.fielddatahelper.FieldDataHelperServiceProvider; import jakarta.xml.bind.annotation.XmlAttribute; import jakarta.xml.bind.annotation.XmlElement; import jakarta.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "field-Set") -public class FieldSet { +public class FieldSetImportXml { private String id; private int ordinal; - private Fields fields; + private FieldsImportXml fields; private String numbering; private Boolean commentField; - private Multiplicity multiplicity; + private MultiplicityImportXml multiplicity; private String description; private String extendedDescription; private String additionalInformation; @@ -39,11 +41,11 @@ public class FieldSet { } @XmlElement(name = "fields") - public Fields getFields() { + public FieldsImportXml getFields() { return fields; } - public void setFields(Fields fields) { + public void setFields(FieldsImportXml fields) { this.fields = fields; } @@ -66,11 +68,11 @@ public class FieldSet { } @XmlElement(name = "multiplicity") - public Multiplicity getMultiplicity() { + public MultiplicityImportXml getMultiplicity() { return multiplicity; } - public void setMultiplicity(Multiplicity multiplicity) { + public void setMultiplicity(MultiplicityImportXml multiplicity) { this.multiplicity = multiplicity; } @@ -110,18 +112,18 @@ public class FieldSet { this.title = title; } - public eu.eudat.models.data.admin.components.datasetprofile.FieldSet toAdminCompositeModelSection() { - eu.eudat.models.data.admin.components.datasetprofile.FieldSet fieldSet1Entity = new eu.eudat.models.data.admin.components.datasetprofile.FieldSet(); + public FieldSetPersist toPersistModel(FieldDataHelperServiceProvider fieldDataHelperServiceProvider) { + FieldSetPersist fieldSet1Entity = new FieldSetPersist(); fieldSet1Entity.setId(this.id); fieldSet1Entity.setOrdinal(this.ordinal); fieldSet1Entity.setHasCommentField(this.commentField != null ? this.commentField : false); - fieldSet1Entity.setMultiplicity(this.multiplicity != null ? this.multiplicity.toAdminCompositeModelSection() : null); + fieldSet1Entity.setMultiplicity(this.multiplicity != null ? this.multiplicity.toPersistModel() : null); fieldSet1Entity.setTitle(this.title); fieldSet1Entity.setDescription(this.description); fieldSet1Entity.setExtendedDescription(this.extendedDescription); fieldSet1Entity.setAdditionalInformation(this.additionalInformation); - fieldSet1Entity.setFields(this.fields.toAdminCompositeModelSection()); + fieldSet1Entity.setFields(this.fields.toPersistModel(fieldDataHelperServiceProvider)); return fieldSet1Entity; } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/FieldSetsImportXml.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/FieldSetsImportXml.java new file mode 100644 index 000000000..38816b2f7 --- /dev/null +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/FieldSetsImportXml.java @@ -0,0 +1,33 @@ +package eu.eudat.commons.types.descriptiontemplate.importmodel; + +import eu.eudat.model.persist.descriptiontemplatedefinition.FieldSetPersist; +import eu.eudat.service.fielddatahelper.FieldDataHelperServiceProvider; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import java.util.LinkedList; +import java.util.List; + +@XmlRootElement(name = "field-Sets") +public class FieldSetsImportXml { + + List fieldSet; + + @XmlElement(name = "field-Set") + public List getFieldSet() { + return fieldSet; + } + + public void setFieldSet(List fieldSet) { + this.fieldSet = fieldSet; + } + + public List toPersistModel(FieldDataHelperServiceProvider fieldDataHelperServiceProvider){ + List fieldSetEntity = new LinkedList<>(); + if(this.fieldSet!=null) { + for (FieldSetImportXml xmlFieldSet : this.fieldSet) { + fieldSetEntity.add(xmlFieldSet.toPersistModel(fieldDataHelperServiceProvider)); + } + } + return fieldSetEntity; + } +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Multiplicity.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/MultiplicityImportXml.java similarity index 78% rename from dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Multiplicity.java rename to dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/MultiplicityImportXml.java index 5af8e9470..c823ff50c 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Multiplicity.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/MultiplicityImportXml.java @@ -1,12 +1,12 @@ -package eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel; +package eu.eudat.commons.types.descriptiontemplate.importmodel; -import eu.eudat.commons.types.descriptiontemplate.MultiplicityEntity; +import eu.eudat.model.persist.descriptiontemplatedefinition.MultiplicityPersist; import jakarta.xml.bind.annotation.XmlAttribute; import jakarta.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "multiplicity") -public class Multiplicity { +public class MultiplicityImportXml { private int max; private int min; private String placeholder; @@ -48,8 +48,8 @@ public class Multiplicity { this.tableView = tableView; } - public MultiplicityEntity toAdminCompositeModelSection() { - MultiplicityEntity multiplicityEntity = new MultiplicityEntity(); + public MultiplicityPersist toPersistModel() { + MultiplicityPersist multiplicityEntity = new MultiplicityPersist(); multiplicityEntity.setMax(max); multiplicityEntity.setMin(min); multiplicityEntity.setPlaceholder(placeholder); diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/PageImportXml.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/PageImportXml.java new file mode 100644 index 000000000..1b8466f68 --- /dev/null +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/PageImportXml.java @@ -0,0 +1,65 @@ +package eu.eudat.commons.types.descriptiontemplate.importmodel; + +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.List; + +@XmlRootElement(name = "page") +public class PageImportXml { + private String id; + private int ordinal; + private String title; + private List sections; + + @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; + } + + @XmlAttribute(name = "title") + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + @XmlElement(name = "sections") + public List getSections() { + return sections; + } + + public void setSections(List sections) { + this.sections = sections; + } + + public PagePersist toPersistModel(){ + PagePersist pageEntity = new PagePersist(); + pageEntity.setId(this.id); + pageEntity.setOrdinal(this.ordinal); + pageEntity.setTitle(this.title); + return pageEntity; + } + + public SectionPersist toPersistModel(int i, FieldDataHelperServiceProvider fieldDataHelperServiceProvider){ + return sections.get(i).toPersistModel(fieldDataHelperServiceProvider); + } +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Section.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/SectionImportXml.java similarity index 75% rename from dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Section.java rename to dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/SectionImportXml.java index 8cbfe01e9..be61423bc 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Section.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/SectionImportXml.java @@ -1,5 +1,7 @@ -package eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel; +package eu.eudat.commons.types.descriptiontemplate.importmodel; +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; @@ -7,17 +9,17 @@ import java.util.LinkedList; import java.util.List; @XmlRootElement(name = "section") -public class Section { +public class SectionImportXml { private String id; private int ordinal; private String page; private Boolean defaultVisibility; - private FieldSets fieldSets; + private FieldSetsImportXml fieldSets; private String numbering; private String description; private String extendedDescription; private String title; - private List
section; + private List section; private Boolean multiplicity; @XmlAttribute(name = "id") @@ -57,11 +59,11 @@ public class Section { } @XmlElement(name = "field-Sets") - public FieldSets getFieldSets() { + public FieldSetsImportXml getFieldSets() { return fieldSets; } - public void setFieldSets(FieldSets fieldSets) { + public void setFieldSets(FieldSetsImportXml fieldSets) { this.fieldSets = fieldSets; } @@ -101,13 +103,31 @@ public class Section { this.title = title; } - public eu.eudat.models.data.admin.components.datasetprofile.Section toAdminCompositeModelSection() { - eu.eudat.models.data.admin.components.datasetprofile.Section sectionEntity = new eu.eudat.models.data.admin.components.datasetprofile.Section(); - List sectionsListEntity = new LinkedList<>(); + @XmlElement(name = "section") + public List getSection() { + return section; + } + + public void setSection(List section) { + this.section = section; + } + + @XmlAttribute(name = "multiplicity") + public Boolean getMultiplicity() { + return multiplicity; + } + + public void setMultiplicity(Boolean multiplicity) { + this.multiplicity = multiplicity; + } + + public SectionPersist toPersistModel(FieldDataHelperServiceProvider fieldDataHelperServiceProvider) { + SectionPersist sectionEntity = new SectionPersist(); + List sectionsListEntity = new LinkedList<>(); if (this.section != null) { - for (Section xmlsection : this.section) { - sectionsListEntity.add(xmlsection.toAdminCompositeModelSection()); + for (SectionImportXml xmlsection : this.section) { + sectionsListEntity.add(xmlsection.toPersistModel(fieldDataHelperServiceProvider)); } } sectionEntity.setId(this.id); @@ -120,28 +140,10 @@ public class Section { // for (FieldSets xmpFieldSets: this.fieldSets) { // fieldSetsEntity.add(xmpFieldSets.toAdminCompositeModelSection()); // } - sectionEntity.setFieldSets(this.fieldSets.toAdminCompositeModelSection()); + sectionEntity.setFieldSets(this.fieldSets.toPersistModel(fieldDataHelperServiceProvider)); sectionEntity.setSections(sectionsListEntity); sectionEntity.setDefaultVisibility(this.defaultVisibility); return sectionEntity; } - - @XmlElement(name = "section") - public List
getSection() { - return section; - } - - public void setSection(List
section) { - this.section = section; - } - - @XmlAttribute(name = "multiplicity") - public Boolean getMultiplicity() { - return multiplicity; - } - - public void setMultiplicity(Boolean multiplicity) { - this.multiplicity = multiplicity; - } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Sections.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/SectionsImportXml.java similarity index 67% rename from dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Sections.java rename to dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/SectionsImportXml.java index a9db7dcf9..1c8d5e652 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Sections.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/SectionsImportXml.java @@ -1,6 +1,9 @@ -package eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel; +package eu.eudat.commons.types.descriptiontemplate.importmodel; +import eu.eudat.model.persist.descriptiontemplatedefinition.FieldSetPersist; +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; @@ -8,7 +11,7 @@ import java.util.LinkedList; import java.util.List; @XmlRootElement(name = "sections") -public class Sections { +public class SectionsImportXml { private String id; private int ordinal; private String page; @@ -16,8 +19,8 @@ public class Sections { private String numbering; private String description; private String title; - private List
section; - private FieldSets fieldSets; + private List section; + private FieldSetsImportXml fieldSets; private Boolean multiplicity; @XmlAttribute(name = "id") @@ -84,20 +87,20 @@ public class Sections { } @XmlElement(name = "section") - public List
getSection() { + public List getSection() { return section; } - public void setSection(List
section) { + public void setSection(List section) { this.section = section; } @XmlElement(name = "field-Sets") - public FieldSets getFieldSets() { + public FieldSetsImportXml getFieldSets() { return fieldSets; } - public void setFieldSets(FieldSets fieldSets) { + public void setFieldSets(FieldSetsImportXml fieldSets) { this.fieldSets = fieldSets; } @@ -110,24 +113,22 @@ public class Sections { this.multiplicity = multiplicity; } - public eu.eudat.models.data.admin.components.datasetprofile.Section toAdminCompositeModelSection() { - eu.eudat.models.data.admin.components.datasetprofile.Section sectionEntity = new eu.eudat.models.data.admin.components.datasetprofile.Section(); - List sectionsListEntity = new LinkedList<>(); + public SectionPersist toPersistModel(FieldDataHelperServiceProvider fieldDataHelperServiceProvider) { + SectionPersist sectionEntity = new SectionPersist(); + List sectionsListEntity = new LinkedList<>(); if (this.section != null) { - for (Section xmlsection : this.section) { - sectionsListEntity.add(xmlsection.toAdminCompositeModelSection()); + for (SectionImportXml xmlsection : this.section) { + sectionsListEntity.add(xmlsection.toPersistModel(fieldDataHelperServiceProvider)); } - } /*else { - sectionsListEntity.add(new eu.eudat.models.data.admin.components.datasetprofile.Section()); - }*/ + } sectionEntity.setId(this.id); sectionEntity.setOrdinal(this.ordinal); sectionEntity.setTitle(this.title); sectionEntity.setDefaultVisibility(this.defaultVisibility); sectionEntity.setDescription(description); sectionEntity.setPage(this.page); - sectionEntity.setFieldSets(toAdminCompositeModelSectionFieldSets()); + sectionEntity.setFieldSets(toFieldSetPersistModel(fieldDataHelperServiceProvider)); sectionEntity.setMultiplicity(this.multiplicity); @@ -135,8 +136,8 @@ public class Sections { return sectionEntity; } - public List toAdminCompositeModelSectionFieldSets() { - return fieldSets.toAdminCompositeModelSection(); + public List toFieldSetPersistModel(FieldDataHelperServiceProvider fieldDataHelperServiceProvider) { + return fieldSets.toPersistModel(fieldDataHelperServiceProvider); } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/DefaultValue.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/DefaultValueImportXml.java similarity index 53% rename from dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/DefaultValue.java rename to dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/DefaultValueImportXml.java index b71634b25..6ff31cf6d 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/DefaultValue.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/DefaultValueImportXml.java @@ -1,11 +1,10 @@ -package eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel.Fields; +package eu.eudat.commons.types.descriptiontemplate.importmodel.fields; -import eu.eudat.commons.types.descriptiontemplate.todelete.DefaultValueEntity; import jakarta.xml.bind.annotation.XmlAttribute; import jakarta.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "defaultValue") -public class DefaultValue { +public class DefaultValueImportXml { private String type; private String value; @@ -28,10 +27,7 @@ public class DefaultValue { this.value = value; } - public DefaultValueEntity toAdminCompositeModelSection(){ - DefaultValueEntity defaultValueEntity =new DefaultValueEntity(); - defaultValueEntity.setValue(value); - defaultValueEntity.setType(type); - return defaultValueEntity; + public String toPersistModel(){ + return value; } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Field.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/FieldImportXml.java similarity index 50% rename from dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Field.java rename to dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/FieldImportXml.java index e05f420bf..079db78f1 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Field.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/FieldImportXml.java @@ -1,8 +1,11 @@ -package eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel.Fields; - +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; @@ -12,7 +15,7 @@ import java.util.LinkedList; import java.util.List; @XmlRootElement(name = "field") -public class Field { +public class FieldImportXml { private String id; @@ -20,17 +23,17 @@ public class Field { private String numbering; - private List validations; + private List validations; - private DefaultValue defaultValue; + private DefaultValueImportXml defaultValue; - private Visible visible; + private VisibleImportXml visible; - private ViewStyle viewStyle; + private ViewStyleImportXml viewStyle; - private Object data; + private Element data; - private Schematics schematics; + private SchematicsImportXml schematics; @XmlAttribute(name = "id") public String getId() { @@ -60,80 +63,82 @@ public class Field { } @XmlElement(name = "validations") - public List getValidations() { + public List getValidations() { return validations; } - public void setValidations(List validations) { + public void setValidations(List validations) { this.validations = validations; } @XmlElement(name = "defaultValue") - public DefaultValue getDefaultValue() { + public DefaultValueImportXml getDefaultValue() { return defaultValue; } - public void setDefaultValue(DefaultValue defaultValue) { + public void setDefaultValue(DefaultValueImportXml defaultValue) { this.defaultValue = defaultValue; } @XmlElement(name = "visible") - public Visible getVisible() { + public VisibleImportXml getVisible() { return visible; } - public void setVisible(Visible visible) { + public void setVisible(VisibleImportXml visible) { this.visible = visible; } @XmlElement(name = "viewStyle") - public ViewStyle getViewStyle() { + public ViewStyleImportXml getViewStyle() { return viewStyle; } - public void setViewStyle(ViewStyle viewStyle) { + public void setViewStyle(ViewStyleImportXml viewStyle) { this.viewStyle = viewStyle; } @XmlElement(name = "data") - public Object getData() { + public Element getData() { return this.data; } - public void setData(Object data) { + public void setData(Element data) { this.data = data; } @XmlElement(name = "schematics") - public Schematics getSchematics() { + public SchematicsImportXml getSchematics() { return schematics; } - public void setSchematics(Schematics schematics) { + public void setSchematics(SchematicsImportXml schematics) { this.schematics = schematics; } - public eu.eudat.models.data.admin.components.datasetprofile.Field toAdminCompositeModelSection() { - eu.eudat.models.data.admin.components.datasetprofile.Field fieldEntity =new eu.eudat.models.data.admin.components.datasetprofile.Field(); + public FieldPersist toPersistModel(FieldDataHelperServiceProvider fieldDataHelperServiceProvider) { + FieldPersist fieldEntity =new FieldPersist(); fieldEntity.setId(this.id); fieldEntity.setOrdinal(this.ordinal); - List validationList = new LinkedList<>(); - for(validations validation:this.validations){ - if(validation.getValidation()!=null) - validationList.add(validation.toAdminCompositeModelSection()); + List validationList = new LinkedList<>(); + for(ValidationsImportXml validation:this.validations){ + if(validation.getValidation()!=null) { + validationList.add(validation.toPersistModel()); + } } fieldEntity.setValidations(validationList); - fieldEntity.setDefaultValue(this.defaultValue.toAdminCompositeModelSection()); - fieldEntity.setVisible(this.visible.toAdminCompositeModelSection()); - fieldEntity.setViewStyle(this.viewStyle.toAdminCompositeModelSection()); - BaseFieldDataEntity data = new FieldDataHelper().toFieldData(null, FieldType.of(this.viewStyle.getRenderStyle()), (Element) this.data); -// fieldEntity.setData( data.fromXml((Element) this.data)); + 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) { - fieldEntity.setData(data.toMap((Element) this.data)); + FieldDataHelperService fieldDataHelperService = fieldDataHelperServiceProvider.get(fieldType); + fieldEntity.setData(fieldDataHelperService.mapDataToPersist((BaseFieldDataEntity)fieldDataHelperService.newDataInstance().fromXml(this.data))); } List schematicsList = new LinkedList<>(); if (this.schematics != null && this.schematics.getSchematics() != null) { - for (Schematic schematic : this.schematics.getSchematics()) { + for (SchematicImportXml schematic : this.schematics.getSchematics()) { if (schematic != null && schematic.getSchematic() != null && !schematic.getSchematic().isEmpty()) schematicsList.add(schematic.getSchematic()); } diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/FieldsImportXml.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/FieldsImportXml.java new file mode 100644 index 000000000..10491d3e1 --- /dev/null +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/FieldsImportXml.java @@ -0,0 +1,40 @@ +package eu.eudat.commons.types.descriptiontemplate.importmodel.fields; + +import eu.eudat.model.persist.descriptiontemplatedefinition.FieldPersist; +import eu.eudat.service.fielddatahelper.FieldDataHelperServiceProvider; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import java.util.LinkedList; +import java.util.List; + +@XmlRootElement(name = "fields") +public class FieldsImportXml { + + private List field; + + @XmlElement(name = "field") + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + public List toPersistModel(FieldDataHelperServiceProvider fieldDataHelperServiceProvider) { + List fieldsEntity = new LinkedList<>(); + if (this.field != null) + for (FieldImportXml xmlField : this.field) { + fieldsEntity.add(xmlField.toPersistModel(fieldDataHelperServiceProvider)); + } + return fieldsEntity; + } + +} + + + + + + + diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Rule.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/RuleImportXml.java similarity index 70% rename from dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Rule.java rename to dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/RuleImportXml.java index ae9e43e11..921bb40ec 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Rule.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/RuleImportXml.java @@ -1,17 +1,17 @@ -package eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel.Fields; +package eu.eudat.commons.types.descriptiontemplate.importmodel.fields; -import eu.eudat.commons.types.descriptiontemplate.RuleEntity; +import eu.eudat.model.persist.descriptiontemplatedefinition.RulePersist; import jakarta.xml.bind.annotation.XmlAttribute; import jakarta.xml.bind.annotation.XmlElement; import jakarta.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "rule") -public class Rule { +public class RuleImportXml { private String ruleStyle; private String target; private String type; - private Value value; + private ValueImportXml value; @XmlAttribute(name = "ruleStyle") public String getRuleStyle() { @@ -38,18 +38,18 @@ public class Rule { this.type = type; } @XmlElement(name = "value") - public Value getValue() { + public ValueImportXml getValue() { return value; } - public void setValue(Value value) { + public void setValue(ValueImportXml value) { this.value = value; } - public RuleEntity toAdminCompositeModelSection(){ - RuleEntity ruleEntity = new RuleEntity(); + public RulePersist toPersistModel(){ + RulePersist ruleEntity = new RulePersist(); ruleEntity.setTarget(target); ruleEntity.setValue(value.getValue()); - return ruleEntity; + return ruleEntity; } } \ No newline at end of file diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Schematic.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/SchematicImportXml.java similarity index 74% rename from dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Schematic.java rename to dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/SchematicImportXml.java index 75a66b92e..02cf70ad8 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Schematic.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/SchematicImportXml.java @@ -1,10 +1,10 @@ -package eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel.Fields; +package eu.eudat.commons.types.descriptiontemplate.importmodel.fields; import jakarta.xml.bind.annotation.XmlRootElement; import jakarta.xml.bind.annotation.XmlValue; @XmlRootElement(name = "schematic") -public class Schematic { +public class SchematicImportXml { private String schematic; diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Schematics.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/SchematicsImportXml.java similarity index 50% rename from dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Schematics.java rename to dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/SchematicsImportXml.java index 99b0caea8..6c943484f 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Schematics.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/SchematicsImportXml.java @@ -1,20 +1,20 @@ -package eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel.Fields; +package eu.eudat.commons.types.descriptiontemplate.importmodel.fields; import jakarta.xml.bind.annotation.XmlElement; import jakarta.xml.bind.annotation.XmlRootElement; import java.util.List; @XmlRootElement(name = "schematics") -public class Schematics { +public class SchematicsImportXml { - private List schematics; + private List schematics; @XmlElement(name = "schematic") - public List getSchematics() { + public List getSchematics() { return schematics; } - public void setSchematics(List schematics) { + public void setSchematics(List schematics) { this.schematics = schematics; } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Validation.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/ValidationImportXml.java similarity index 72% rename from dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Validation.java rename to dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/ValidationImportXml.java index e12dcee9d..475a70cae 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Validation.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/ValidationImportXml.java @@ -1,10 +1,10 @@ -package eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel.Fields; +package eu.eudat.commons.types.descriptiontemplate.importmodel.fields; import jakarta.xml.bind.annotation.XmlAttribute; import jakarta.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "validation") -public class Validation { +public class ValidationImportXml { private int type; diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/ValidationsImportXml.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/ValidationsImportXml.java new file mode 100644 index 000000000..535f21595 --- /dev/null +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/ValidationsImportXml.java @@ -0,0 +1,26 @@ +package eu.eudat.commons.types.descriptiontemplate.importmodel.fields; + +import eu.eudat.commons.enums.FieldValidationType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; + +@XmlRootElement(name = "validations") +public class ValidationsImportXml { + + ValidationImportXml validation; + + @XmlElement(name = "validation") + public ValidationImportXml getValidation() { + return validation; + } + + public void setValidation(ValidationImportXml validation) { + this.validation = validation; + } + + public FieldValidationType toPersistModel() { + return FieldValidationType.of((short)validation.getType()); + } +} + + diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Value.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/ValueImportXml.java similarity index 82% rename from dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Value.java rename to dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/ValueImportXml.java index 59e77018f..d916bc5bc 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Value.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/ValueImportXml.java @@ -1,11 +1,11 @@ -package eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel.Fields; +package eu.eudat.commons.types.descriptiontemplate.importmodel.fields; import jakarta.xml.bind.annotation.XmlAttribute; import jakarta.xml.bind.annotation.XmlRootElement; import jakarta.xml.bind.annotation.XmlValue; @XmlRootElement(name = "value") -public class Value { +public class ValueImportXml { private String type; private String value; diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/ViewStyle.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/ViewStyleImportXml.java similarity index 55% rename from dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/ViewStyle.java rename to dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/ViewStyleImportXml.java index 93fb78183..f0309645c 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/ViewStyle.java +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/ViewStyleImportXml.java @@ -1,13 +1,12 @@ -package eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel.Fields; +package eu.eudat.commons.types.descriptiontemplate.importmodel.fields; import eu.eudat.commons.enums.FieldType; -import eu.eudat.commons.types.descriptiontemplate.todelete.FieldDescriptionEntity; import jakarta.xml.bind.annotation.XmlAttribute; import jakarta.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "viewStyle") -public class ViewStyle { +public class ViewStyleImportXml { private String cssClass; private String renderStyle; @@ -29,10 +28,7 @@ public class ViewStyle { this.renderStyle = renderStyle; } - public FieldDescriptionEntity toAdminCompositeModelSection(){ - FieldDescriptionEntity fieldDescriptionEntity = new FieldDescriptionEntity(); - fieldDescriptionEntity.setCssClass(this.cssClass); - fieldDescriptionEntity.setFieldType(FieldType.of(this.renderStyle)); - return fieldDescriptionEntity; + public FieldType toPersistModel(){ + return FieldType.of(this.renderStyle); } } \ No newline at end of file diff --git a/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/VisibleImportXml.java b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/VisibleImportXml.java new file mode 100644 index 000000000..36d79816b --- /dev/null +++ b/dmp-backend/core/src/main/java/eu/eudat/commons/types/descriptiontemplate/importmodel/fields/VisibleImportXml.java @@ -0,0 +1,43 @@ +package eu.eudat.commons.types.descriptiontemplate.importmodel.fields; + +import eu.eudat.model.persist.descriptiontemplatedefinition.RulePersist; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; + +import java.util.ArrayList; +import java.util.List; + +@XmlRootElement(name = "visible") +public class VisibleImportXml { + + private String style; + private List rule; + + @XmlAttribute(name = "style") + public String getStyle() { + return style; + } + + public void setStyle(String style) { + this.style = style; + } + @XmlElement(name = "rule") + public List getRule() { + return rule; + } + + public void setRule(List rule) { + this.rule = rule; + } + + public List toPersistModel(){ + List rulePersists = new ArrayList<>(); + if(this.rule!=null) { + for (RuleImportXml xmlRule : this.rule) { + rulePersists.add(xmlRule.toPersistModel()); + } + } + return rulePersists; + } +} \ No newline at end of file diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptiontemplatedefinition/MultiplicityPersist.java b/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptiontemplatedefinition/MultiplicityPersist.java index 9670a1d23..269d77fb9 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptiontemplatedefinition/MultiplicityPersist.java +++ b/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptiontemplatedefinition/MultiplicityPersist.java @@ -3,7 +3,7 @@ package eu.eudat.model.persist.descriptiontemplatedefinition; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; -public abstract class MultiplicityPersist { +public class MultiplicityPersist { @NotNull(message = "{validation.empty}") private Integer min = null; diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/descriptiontemplate/DescriptionTemplateService.java b/dmp-backend/core/src/main/java/eu/eudat/service/descriptiontemplate/DescriptionTemplateService.java index 8a76c8688..a468cf84b 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/descriptiontemplate/DescriptionTemplateService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/descriptiontemplate/DescriptionTemplateService.java @@ -10,10 +10,12 @@ import gr.cite.tools.exception.MyNotFoundException; import gr.cite.tools.exception.MyValidationException; import gr.cite.tools.fieldset.FieldSet; import jakarta.xml.bind.JAXBException; +import org.xml.sax.SAXException; import javax.management.InvalidApplicationException; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.TransformerException; +import java.io.IOException; import java.util.UUID; public interface DescriptionTemplateService { @@ -22,5 +24,5 @@ public interface DescriptionTemplateService { void deleteAndSave(UUID id) throws MyForbiddenException, InvalidApplicationException; DescriptionTemplate buildClone(UUID id, FieldSet fields) throws MyForbiddenException, MyValidationException, MyApplicationException, MyNotFoundException; DescriptionTemplate createNewVersion(NewVersionDescriptionTemplatePersist model, FieldSet fields) throws MyForbiddenException, MyValidationException, MyApplicationException, MyNotFoundException, InvalidApplicationException, JAXBException, ParserConfigurationException, JsonProcessingException, TransformerException; - + DescriptionTemplate importXml(byte[] bytes, UUID id, String label, FieldSet fields) throws MyForbiddenException, MyNotFoundException, JAXBException, ParserConfigurationException, TransformerException, InvalidApplicationException, IOException, InstantiationException, IllegalAccessException, SAXException; } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/descriptiontemplate/DescriptionTemplateServiceImpl.java b/dmp-backend/core/src/main/java/eu/eudat/service/descriptiontemplate/DescriptionTemplateServiceImpl.java index fea42b0af..ce204cbac 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/descriptiontemplate/DescriptionTemplateServiceImpl.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/descriptiontemplate/DescriptionTemplateServiceImpl.java @@ -10,9 +10,11 @@ import eu.eudat.commons.enums.UserDescriptionTemplateRole; import eu.eudat.commons.scope.user.UserScope; import eu.eudat.commons.types.descriptiontemplate.*; import eu.eudat.commons.types.descriptiontemplate.fielddata.BaseFieldDataEntity; +import eu.eudat.commons.types.descriptiontemplate.importmodel.DescriptionTemplateImportXml; import eu.eudat.convention.ConventionService; import eu.eudat.data.DescriptionTemplateEntity; import eu.eudat.data.UserDescriptionTemplateEntity; +import eu.eudat.data.old.UserInfo; import eu.eudat.errorcode.ErrorThesaurusProperties; import eu.eudat.model.DescriptionTemplate; import eu.eudat.model.builder.DescriptionTemplateBuilder; @@ -29,6 +31,8 @@ import eu.eudat.model.persist.descriptiontemplatedefinition.fielddata.BaseFieldD import eu.eudat.query.DescriptionTemplateQuery; import eu.eudat.query.UserDescriptionTemplateQuery; import eu.eudat.service.fielddatahelper.FieldDataHelperServiceProvider; +import eu.eudat.service.mail.MailService; +import eu.eudat.service.mail.SimpleMail; import gr.cite.commons.web.authz.service.AuthorizationService; import gr.cite.tools.data.builder.BuilderFactory; import gr.cite.tools.data.deleter.DeleterFactory; @@ -42,6 +46,7 @@ import gr.cite.tools.fieldset.BaseFieldSet; import gr.cite.tools.fieldset.FieldSet; import gr.cite.tools.logging.LoggerService; import gr.cite.tools.logging.MapLogEntry; +import gr.cite.tools.validation.ValidationService; import jakarta.persistence.EntityManager; import jakarta.xml.bind.JAXBException; import org.jetbrains.annotations.NotNull; @@ -49,14 +54,19 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.MessageSource; import org.springframework.context.i18n.LocaleContextHolder; +import org.springframework.core.env.Environment; import org.springframework.stereotype.Service; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.xml.sax.SAXException; import javax.management.InvalidApplicationException; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.TransformerException; +import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.time.Instant; import java.util.ArrayList; -import java.util.LinkedList; import java.util.List; import java.util.UUID; import java.util.stream.Collectors; @@ -80,6 +90,9 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic private final FieldDataHelperServiceProvider fieldDataHelperServiceProvider; private final QueryFactory queryFactory; private final ErrorThesaurusProperties errors; + private final ValidationService validationService; + private final MailService mailService; + private final Environment environment; @Autowired public DescriptionTemplateServiceImpl( @@ -90,7 +103,7 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic ConventionService conventionService, MessageSource messageSource, XmlHandlingService xmlHandlingService, - FieldDataHelperServiceProvider fieldDataHelperServiceProvider, QueryFactory queryFactory, ErrorThesaurusProperties errors) { + FieldDataHelperServiceProvider fieldDataHelperServiceProvider, QueryFactory queryFactory, ErrorThesaurusProperties errors, ValidationService validationService, MailService mailService, Environment environment) { this.entityManager = entityManager; this.userScope = userScope; this.authorizationService = authorizationService; @@ -102,6 +115,9 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic this.fieldDataHelperServiceProvider = fieldDataHelperServiceProvider; this.queryFactory = queryFactory; this.errors = errors; + this.validationService = validationService; + this.mailService = mailService; + this.environment = environment; } public DescriptionTemplate persist(DescriptionTemplatePersist model, FieldSet fields) throws MyForbiddenException, MyValidationException, MyApplicationException, MyNotFoundException, InvalidApplicationException, JAXBException, ParserConfigurationException, JsonProcessingException, TransformerException { @@ -160,15 +176,34 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic data.setUser(userId); data.setRole(UserDescriptionTemplateRole.Member); this.entityManager.persist(data); + this.sendJoinMail(data); } } List finalUsers = users; List toDelete = items.stream().filter(x-> finalUsers.stream().noneMatch(y-> y.equals(x.getUser()))).collect(Collectors.toList()); this.deleterFactory.deleter(UserDescriptionTemplateDeleter.class).delete(toDelete); - } - + private void sendJoinMail(UserDescriptionTemplateEntity userDatasetProfile) { + SimpleMail mail = new SimpleMail(); + UserInfo user = this.entityManager.find(UserInfo.class, userDatasetProfile.getUser()); + DescriptionTemplateEntity descriptionTemplate = this.queryFactory.query(DescriptionTemplateQuery.class).isActive(IsActive.Active).ids(userDatasetProfile.getDescriptionTemplate()).first(); + + mail.setSubject(environment.getProperty("admin.mail.subject").replace( "{templateName}", descriptionTemplate.getLabel())); + String content = this.mailService.getMailTemplateContent(environment.getProperty("email.dataset.template")); + content = content.replace("{recipient}", user.getName()); + content = content.replace("{templateName}", descriptionTemplate.getLabel()); + content = content.replace("{host}", this.environment.getProperty("dmp.domain")); + content = content.replace("{templateID}", descriptionTemplate.getId().toString()); + mail.setContent(content); + mail.setTo(user.getEmail()); + try { + this.mailService.sendSimpleMail(mail); + } catch (Exception ex) { + logger.error(ex.getMessage(), ex); + } + + } private void addOwner(DescriptionTemplateEntity descriptionTemplateEntity) throws InvalidApplicationException { UserDescriptionTemplateEntity data = new UserDescriptionTemplateEntity(); data.setId(UUID.randomUUID()); @@ -428,5 +463,25 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic return this.builderFactory.builder(DescriptionTemplateBuilder.class).authorize(AuthorizationFlags.OwnerOrPermission).build(BaseFieldSet.build(fields, DescriptionTemplate._id), data); } + public DescriptionTemplate importXml(byte[] bytes, UUID id, String label, FieldSet fields) throws MyForbiddenException, MyNotFoundException, JAXBException, ParserConfigurationException, TransformerException, InvalidApplicationException, IOException, InstantiationException, IllegalAccessException, SAXException { + logger.debug(new MapLogEntry("import data").And("bytes", bytes).And("fields", fields)); + + this.authorizationService.authorizeForce(Permission.ImportDescriptionTemplate); + + if (id != null) { + DescriptionTemplateImportXml importXml = this.xmlHandlingService.fromXml(DescriptionTemplateImportXml.class, new String(bytes, StandardCharsets.UTF_8)); + DescriptionTemplatePersist persist = importXml.toPersistModel(label, this.fieldDataHelperServiceProvider); + this.validationService.validateForce(persist); + return this.persist(persist, fields); + } else { + DescriptionTemplateImportXml importXml = this.xmlHandlingService.fromXml(DescriptionTemplateImportXml.class, new String(bytes, StandardCharsets.UTF_8)); + NewVersionDescriptionTemplatePersist persist = importXml.toNewVersionPersistModel(id, label, this.fieldDataHelperServiceProvider); + DescriptionTemplateEntity oldDescriptionTemplateEntity = this.entityManager.find(DescriptionTemplateEntity.class, id); + if (oldDescriptionTemplateEntity == null) throw new MyNotFoundException(messageSource.getMessage("General_ItemNotFound", new Object[]{id, DescriptionTemplate.class.getSimpleName()}, LocaleContextHolder.getLocale())); + persist.setHash(this.conventionService.hashValue(oldDescriptionTemplateEntity.getUpdatedAt())); + this.validationService.validateForce(persist); + return this.createNewVersion(persist, fields); + } + } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/AutoCompleteFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/AutoCompleteFieldDataHelperService.java index e247244c5..5b581e0f4 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/AutoCompleteFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/AutoCompleteFieldDataHelperService.java @@ -20,6 +20,7 @@ import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; +import org.w3c.dom.Element; import java.util.ArrayList; import java.util.EnumSet; @@ -42,17 +43,17 @@ public class AutoCompleteFieldDataHelperService extends BaseFieldDataHelperServi } @Override - public BaseFieldDataEntity newDataInstance() { + public AutoCompleteDataEntity newDataInstanceInternal() { return new AutoCompleteDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public AutoCompleteData newModelInstanceInternal() { return new AutoCompleteData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public AutoCompleteDataPersist newPersistModelInstanceInternal() { return new AutoCompleteDataPersist(); } @@ -126,4 +127,56 @@ public class AutoCompleteFieldDataHelperService extends BaseFieldDataHelperServi return data; } + + @Override + protected AutoCompleteDataPersist mapDataToPersist(AutoCompleteDataEntity data, AutoCompleteDataPersist persist) { + persist.setMultiAutoComplete(data.getMultiAutoComplete()); + if (!this.conventionService.isListNullOrEmpty(data.getAutoCompleteSingleDataList())){ + persist.setAutoCompleteSingleDataList(new ArrayList<>()); + for (AutoCompleteDataEntity.AutoCompleteSingleData autoCompleteSingleData: data.getAutoCompleteSingleDataList()) { + persist.getAutoCompleteSingleDataList().add(this.buildAutoCompleteSingleData(autoCompleteSingleData)); + } + } + return persist; + } + + private @NotNull AutoCompleteSingleDataPersist buildAutoCompleteSingleData(AutoCompleteDataEntity.AutoCompleteSingleData data){ + AutoCompleteSingleDataPersist persist = new AutoCompleteSingleDataPersist(); + if (data == null) return persist; + + persist.setUrl(data.getUrl()); + persist.setAutocompleteType(data.getAutocompleteType()); + persist.setOptionsRoot(data.getOptionsRoot()); + persist.setHasAuth(data.getHasAuth()); + if(data.getAutoCompleteOptions() != null) persist.setAutoCompleteOptions(this.buildOption(data.getAutoCompleteOptions())); + if(data.getAuth() != null) persist.setAuth(this.buildAuthAutoCompleteData(data.getAuth())); + persist.setMethod(data.getMethod()); + + return persist; + } + + private @NotNull ComboBoxOptionPersist buildOption(ComboBoxDataEntity.Option data){ + ComboBoxOptionPersist persist = new ComboBoxOptionPersist(); + if (data == null) return persist; + + persist.setLabel(data.getLabel()); + persist.setValue(data.getValue()); + persist.setUri(data.getUri()); + persist.setSource(data.getSource()); + + return persist; + } + + private @NotNull AuthAutoCompleteDataPersist buildAuthAutoCompleteData(AutoCompleteDataEntity.AuthAutoCompleteData data){ + AuthAutoCompleteDataPersist persist = new AuthAutoCompleteDataPersist(); + if (data == null) return persist; + + persist.setBody(data.getBody()); + persist.setUrl(data.getUrl()); + persist.setMethod(data.getMethod()); + persist.setPath(data.getPath()); + persist.setType(data.getType()); + + return persist; + } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/BaseFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/BaseFieldDataHelperService.java index 141dcccc5..fec755feb 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/BaseFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/BaseFieldDataHelperService.java @@ -2,20 +2,48 @@ package eu.eudat.service.fielddatahelper; import eu.eudat.authorization.AuthorizationFlags; import eu.eudat.commons.types.descriptiontemplate.fielddata.BaseFieldDataEntity; +import eu.eudat.commons.types.descriptiontemplate.fielddata.BooleanDecisionDataEntity; import eu.eudat.model.descriptiontemplatedefinition.fielddata.BaseFieldData; +import eu.eudat.model.descriptiontemplatedefinition.fielddata.BooleanDecisionData; import eu.eudat.model.persist.descriptiontemplatedefinition.fielddata.BaseFieldDataPersist; +import eu.eudat.model.persist.descriptiontemplatedefinition.fielddata.BooleanDecisionDataPersist; import gr.cite.tools.fieldset.FieldSet; +import org.w3c.dom.Element; import java.util.EnumSet; import java.util.List; import java.util.stream.Collectors; public abstract class BaseFieldDataHelperService> implements FieldDataHelperService { - protected String subType; - + protected abstract D newDataInstanceInternal(); + protected abstract M newModelInstanceInternal(); + protected abstract PM newPersistModelInstanceInternal(); + protected abstract List buildInternal(FieldSet fieldSet, List datas, EnumSet authorizationFlags); protected abstract D applyPersistInternal(PM persist, D data); + protected abstract PM mapDataToPersist(D data, PM persist); + @Override + public BaseFieldDataEntity newDataInstance() { + return this.newDataInstanceInternal(); + } + @Override + public BaseFieldData newModelInstance() { + return this.newModelInstanceInternal(); + } + + @Override + public BaseFieldDataPersist newPersistModelInstance() { + return this.newPersistModelInstanceInternal(); + } + + @Override + public BaseFieldDataPersist mapDataToPersist(BaseFieldDataEntity data) { + PM model = this.newPersistModelInstanceInternal(); + model.setFieldType(this.getFormType()); + model.setLabel(data.getLabel()); + return this.mapDataToPersist((D)data, model); + } @Override public BaseFieldDataEntity applyPersist(BaseFieldDataPersist persist){ BaseFieldDataEntity instance = this.newDataInstance(); diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/BooleanDecisionFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/BooleanDecisionFieldDataHelperService.java index d7ebe3dd0..a62307200 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/BooleanDecisionFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/BooleanDecisionFieldDataHelperService.java @@ -17,6 +17,7 @@ import gr.cite.tools.fieldset.FieldSet; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; +import org.w3c.dom.Element; import java.util.ArrayList; import java.util.EnumSet; @@ -36,17 +37,17 @@ public class BooleanDecisionFieldDataHelperService extends BaseFieldDataHelperSe } @Override - public BaseFieldDataEntity newDataInstance() { + public BooleanDecisionDataEntity newDataInstanceInternal() { return new BooleanDecisionDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public BooleanDecisionData newModelInstanceInternal() { return new BooleanDecisionData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public BooleanDecisionDataPersist newPersistModelInstanceInternal() { return new BooleanDecisionDataPersist(); } @@ -58,7 +59,6 @@ public class BooleanDecisionFieldDataHelperService extends BaseFieldDataHelperSe public Class getModelClass() { return BooleanDecisionData.class; } - @Override public Class getPersistModelClass() { return BooleanDecisionDataPersist.class; @@ -73,4 +73,10 @@ public class BooleanDecisionFieldDataHelperService extends BaseFieldDataHelperSe protected BooleanDecisionDataEntity applyPersistInternal(BooleanDecisionDataPersist persist, BooleanDecisionDataEntity data) { return data; } + + @Override + protected BooleanDecisionDataPersist mapDataToPersist(BooleanDecisionDataEntity data, BooleanDecisionDataPersist persist) { + return persist; + } + } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/CheckBoxFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/CheckBoxFieldDataHelperService.java index 061e48c51..5f7670784 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/CheckBoxFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/CheckBoxFieldDataHelperService.java @@ -36,17 +36,17 @@ public class CheckBoxFieldDataHelperService extends BaseFieldDataHelperService newDataInstance() { + public CheckBoxDataEntity newDataInstanceInternal() { return new CheckBoxDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public CheckBoxData newModelInstanceInternal() { return new CheckBoxData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public CheckBoxDataPersist newPersistModelInstanceInternal() { return new CheckBoxDataPersist(); } @@ -73,4 +73,9 @@ public class CheckBoxFieldDataHelperService extends BaseFieldDataHelperService newDataInstance() { + public CurrencyDataEntity newDataInstanceInternal() { return new CurrencyDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public CurrencyData newModelInstanceInternal() { return new CurrencyData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public CurrencyDataPersist newPersistModelInstanceInternal() { return new CurrencyDataPersist(); } @@ -70,4 +70,9 @@ public class CurrencyFieldDataHelperService extends BaseFieldDataHelperService newDataInstance() { + public DataRepositoryDataEntity newDataInstanceInternal() { return new DataRepositoryDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public DataRepositoryData newModelInstanceInternal() { return new DataRepositoryData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public DataRepositoryDataPersist newPersistModelInstanceInternal() { return new DataRepositoryDataPersist(); } @@ -75,4 +75,10 @@ public class DataRepositoryFieldDataHelperService extends BaseFieldDataHelperSer data.setMultiAutoComplete(persist.getMultiAutoComplete()); return data; } + + @Override + protected DataRepositoryDataPersist mapDataToPersist(DataRepositoryDataEntity data, DataRepositoryDataPersist persist) { + persist.setMultiAutoComplete(data.getMultiAutoComplete()); + return persist; + } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/DatasetAutoCompleteFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/DatasetAutoCompleteFieldDataHelperService.java index 0f2be455a..3c2113412 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/DatasetAutoCompleteFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/DatasetAutoCompleteFieldDataHelperService.java @@ -36,17 +36,17 @@ public class DatasetAutoCompleteFieldDataHelperService extends BaseFieldDataHelp } @Override - public BaseFieldDataEntity newDataInstance() { + public DatasetAutoCompleteDataEntity newDataInstanceInternal() { return new DatasetAutoCompleteDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public DatasetAutoCompleteData newModelInstanceInternal() { return new DatasetAutoCompleteData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public DatasetAutoCompleteDataPersist newPersistModelInstanceInternal() { return new DatasetAutoCompleteDataPersist(); } @@ -74,4 +74,10 @@ public class DatasetAutoCompleteFieldDataHelperService extends BaseFieldDataHelp data.setMultiAutoComplete(persist.getMultiAutoComplete()); return data; } + + @Override + protected DatasetAutoCompleteDataPersist mapDataToPersist(DatasetAutoCompleteDataEntity data, DatasetAutoCompleteDataPersist persist) { + persist.setMultiAutoComplete(data.getMultiAutoComplete()); + return persist; + } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/DatasetIdentifierFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/DatasetIdentifierFieldDataHelperService.java index c583bf6e7..73622e973 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/DatasetIdentifierFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/DatasetIdentifierFieldDataHelperService.java @@ -29,24 +29,23 @@ public class DatasetIdentifierFieldDataHelperService extends BaseFieldDataHelper this.builderFactory = builderFactory; } - @Override public FieldType getFormType() { return FieldType.DATASET_IDENTIFIER; } @Override - public BaseFieldDataEntity newDataInstance() { + public DatasetIdentifierDataEntity newDataInstanceInternal() { return new DatasetIdentifierDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public DatasetIdentifierData newModelInstanceInternal() { return new DatasetIdentifierData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public DatasetIdentifierDataPersist newPersistModelInstanceInternal() { return new DatasetIdentifierDataPersist(); } @@ -72,4 +71,9 @@ public class DatasetIdentifierFieldDataHelperService extends BaseFieldDataHelper protected DatasetIdentifierDataEntity applyPersistInternal(DatasetIdentifierDataPersist persist, DatasetIdentifierDataEntity data) { return data; } + + @Override + protected DatasetIdentifierDataPersist mapDataToPersist(DatasetIdentifierDataEntity data, DatasetIdentifierDataPersist persist) { + return persist; + } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/DatePickerFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/DatePickerFieldDataHelperService.java index b49a74546..95ce364a1 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/DatePickerFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/DatePickerFieldDataHelperService.java @@ -36,16 +36,16 @@ public class DatePickerFieldDataHelperService extends BaseFieldDataHelperService } @Override - public BaseFieldDataEntity newDataInstance() { + public DatePickerDataEntity newDataInstanceInternal() { return new DatePickerDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public DatePickerData newModelInstanceInternal() { return new DatePickerData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public DatePickerDataPersist newPersistModelInstanceInternal() { return new DatePickerDataPersist(); } @@ -71,4 +71,9 @@ public class DatePickerFieldDataHelperService extends BaseFieldDataHelperService protected DatePickerDataEntity applyPersistInternal(DatePickerDataPersist persist, DatePickerDataEntity data) { return data; } + + @Override + protected DatePickerDataPersist mapDataToPersist(DatePickerDataEntity data, DatePickerDataPersist persist) { + return persist; + } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/DmpAutoCompleteFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/DmpAutoCompleteFieldDataHelperService.java index a8c10090c..917569869 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/DmpAutoCompleteFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/DmpAutoCompleteFieldDataHelperService.java @@ -36,17 +36,17 @@ public class DmpAutoCompleteFieldDataHelperService extends BaseFieldDataHelperSe } @Override - public BaseFieldDataEntity newDataInstance() { + public DmpAutoCompleteDataEntity newDataInstanceInternal() { return new DmpAutoCompleteDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public DmpAutoCompleteData newModelInstanceInternal() { return new DmpAutoCompleteData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public DmpAutoCompleteDataPersist newPersistModelInstanceInternal() { return new DmpAutoCompleteDataPersist(); } @@ -74,4 +74,10 @@ public class DmpAutoCompleteFieldDataHelperService extends BaseFieldDataHelperSe data.setMultiAutoComplete(persist.getMultiAutoComplete()); return data; } + + @Override + protected DmpAutoCompleteDataPersist mapDataToPersist(DmpAutoCompleteDataEntity data, DmpAutoCompleteDataPersist persist) { + persist.setMultiAutoComplete(data.getMultiAutoComplete()); + return persist; + } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/ExternalDatasetFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/ExternalDatasetFieldDataHelperService.java index d9403405a..ceb437355 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/ExternalDatasetFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/ExternalDatasetFieldDataHelperService.java @@ -36,17 +36,17 @@ public class ExternalDatasetFieldDataHelperService extends BaseFieldDataHelperSe } @Override - public BaseFieldDataEntity newDataInstance() { + public ExternalDatasetDataEntity newDataInstanceInternal() { return new ExternalDatasetDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public ExternalDatasetData newModelInstanceInternal() { return new ExternalDatasetData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public ExternalDatasetDataPersist newPersistModelInstanceInternal() { return new ExternalDatasetDataPersist(); } @@ -74,4 +74,11 @@ public class ExternalDatasetFieldDataHelperService extends BaseFieldDataHelperSe data.setType(persist.getType()); return data; } + + @Override + protected ExternalDatasetDataPersist mapDataToPersist(ExternalDatasetDataEntity data, ExternalDatasetDataPersist persist) { + persist.setMultiAutoComplete(data.getMultiAutoComplete()); + persist.setType(data.getType()); + return persist; + } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/FieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/FieldDataHelperService.java index 3306e91cb..6990b7448 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/FieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/FieldDataHelperService.java @@ -6,6 +6,7 @@ import eu.eudat.commons.types.descriptiontemplate.fielddata.BaseFieldDataEntity; import eu.eudat.model.descriptiontemplatedefinition.fielddata.BaseFieldData; import eu.eudat.model.persist.descriptiontemplatedefinition.fielddata.BaseFieldDataPersist; import gr.cite.tools.fieldset.FieldSet; +import org.w3c.dom.Element; import java.util.EnumSet; import java.util.List; @@ -22,4 +23,5 @@ public interface FieldDataHelperService { BaseFieldData buildOne(FieldSet fieldSet, BaseFieldDataEntity data, EnumSet authorizationFlags); BaseFieldDataEntity applyPersist(BaseFieldDataPersist persist); BaseFieldDataEntity applyPersist(BaseFieldDataPersist persist, BaseFieldDataEntity data); + BaseFieldDataPersist mapDataToPersist(BaseFieldDataEntity data); } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/FreeTextFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/FreeTextFieldDataHelperService.java index ddea61ddc..d6a609a7f 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/FreeTextFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/FreeTextFieldDataHelperService.java @@ -36,17 +36,17 @@ public class FreeTextFieldDataHelperService extends BaseFieldDataHelperService newDataInstance() { + public FreeTextDataEntity newDataInstanceInternal() { return new FreeTextDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public FreeTextData newModelInstanceInternal() { return new FreeTextData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public FreeTextDataPersist newPersistModelInstanceInternal() { return new FreeTextDataPersist(); } @@ -73,4 +73,9 @@ public class FreeTextFieldDataHelperService extends BaseFieldDataHelperService newDataInstance() { + public JournalRepositoryDataEntity newDataInstanceInternal() { return new JournalRepositoryDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public JournalRepositoryData newModelInstanceInternal() { return new JournalRepositoryData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public JournalRepositoryDataPersist newPersistModelInstanceInternal() { return new JournalRepositoryDataPersist(); } @@ -75,4 +75,10 @@ public class JournalRepositoryFieldDataHelperService extends BaseFieldDataHelper data.setMultiAutoComplete(persist.getMultiAutoComplete()); return data; } + + @Override + protected JournalRepositoryDataPersist mapDataToPersist(JournalRepositoryDataEntity data, JournalRepositoryDataPersist persist) { + persist.setMultiAutoComplete(data.getMultiAutoComplete()); + return persist; + } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/LicenseFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/LicenseFieldDataHelperService.java index 86e01eca0..dbf74ef2c 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/LicenseFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/LicenseFieldDataHelperService.java @@ -36,17 +36,17 @@ public class LicenseFieldDataHelperService extends BaseFieldDataHelperService
  • newDataInstance() { + public LicenseDataEntity newDataInstanceInternal() { return new LicenseDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public LicenseData newModelInstanceInternal() { return new LicenseData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public LicenseDataPersist newPersistModelInstanceInternal() { return new LicenseDataPersist(); } @@ -73,4 +73,10 @@ public class LicenseFieldDataHelperService extends BaseFieldDataHelperService
  • newDataInstance() { + public OrganizationDataEntity newDataInstanceInternal() { return new OrganizationDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public OrganizationData newModelInstanceInternal() { return new OrganizationData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public OrganizationDataPersist newPersistModelInstanceInternal() { return new OrganizationDataPersist(); } @@ -73,4 +73,10 @@ public class OrganizationFieldDataHelperService extends BaseFieldDataHelperServi data.setMultiAutoComplete(persist.getMultiAutoComplete()); return data; } + + @Override + protected OrganizationDataPersist mapDataToPersist(OrganizationDataEntity data, OrganizationDataPersist persist) { + persist.setMultiAutoComplete(data.getMultiAutoComplete()); + return persist; + } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/PublicationFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/PublicationFieldDataHelperService.java index 3e8b73bc5..289d94b15 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/PublicationFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/PublicationFieldDataHelperService.java @@ -36,17 +36,17 @@ public class PublicationFieldDataHelperService extends BaseFieldDataHelperServic } @Override - public BaseFieldDataEntity newDataInstance() { + public PublicationDataEntity newDataInstanceInternal() { return new PublicationDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public PublicationData newModelInstanceInternal() { return new PublicationData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public PublicationDataPersist newPersistModelInstanceInternal() { return new PublicationDataPersist(); } @@ -73,4 +73,10 @@ public class PublicationFieldDataHelperService extends BaseFieldDataHelperServic data.setMultiAutoComplete(persist.getMultiAutoComplete()); return data; } + + @Override + protected PublicationDataPersist mapDataToPersist(PublicationDataEntity data, PublicationDataPersist persist) { + persist.setMultiAutoComplete(data.getMultiAutoComplete()); + return persist; + } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/PublicationRepositoryFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/PublicationRepositoryFieldDataHelperService.java index 480a97136..e9d6834e4 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/PublicationRepositoryFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/PublicationRepositoryFieldDataHelperService.java @@ -38,17 +38,17 @@ public class PublicationRepositoryFieldDataHelperService extends BaseFieldDataHe } @Override - public BaseFieldDataEntity newDataInstance() { + public PublicationRepositoryDataEntity newDataInstanceInternal() { return new PublicationRepositoryDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public PublicationRepositoryData newModelInstanceInternal() { return new PublicationRepositoryData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public PublicationRepositoryDataPersist newPersistModelInstanceInternal() { return new PublicationRepositoryDataPersist(); } @@ -75,4 +75,10 @@ public class PublicationRepositoryFieldDataHelperService extends BaseFieldDataHe data.setMultiAutoComplete(persist.getMultiAutoComplete()); return data; } + + @Override + protected PublicationRepositoryDataPersist mapDataToPersist(PublicationRepositoryDataEntity data, PublicationRepositoryDataPersist persist) { + persist.setMultiAutoComplete(data.getMultiAutoComplete()); + return persist; + } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/RadioBoxFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/RadioBoxFieldDataHelperService.java index 898778152..74c35992e 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/RadioBoxFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/RadioBoxFieldDataHelperService.java @@ -42,17 +42,17 @@ public class RadioBoxFieldDataHelperService extends BaseFieldDataHelperService newDataInstance() { + public RadioBoxDataEntity newDataInstanceInternal() { return new RadioBoxDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public RadioBoxData newModelInstanceInternal() { return new RadioBoxData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public RadioBoxDataPersist newPersistModelInstanceInternal() { return new RadioBoxDataPersist(); } @@ -84,7 +84,6 @@ public class RadioBoxFieldDataHelperService extends BaseFieldDataHelperService()); + for (RadioBoxDataEntity.Option radioBoxOption: data.getOptions()) { + persist.getOptions().add(this.buildOption(radioBoxOption)); + } + } + return persist; + } + + private @NotNull RadioBoxOptionPersist buildOption(RadioBoxDataEntity.Option data){ + RadioBoxOptionPersist persist = new RadioBoxOptionPersist(); + if (data == null) return persist; + + persist.setLabel(data.getLabel()); + persist.setValue(data.getValue()); + + return persist; + } + } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/RegistryFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/RegistryFieldDataHelperService.java index 26b7c7aa2..d1aa763e6 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/RegistryFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/RegistryFieldDataHelperService.java @@ -36,17 +36,17 @@ public class RegistryFieldDataHelperService extends BaseFieldDataHelperService newDataInstance() { + public RegistryDataEntity newDataInstanceInternal() { return new RegistryDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public RegistryData newModelInstanceInternal() { return new RegistryData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public RegistryDataPersist newPersistModelInstanceInternal() { return new RegistryDataPersist(); } @@ -73,4 +73,10 @@ public class RegistryFieldDataHelperService extends BaseFieldDataHelperService newDataInstance() { + public ResearcherAutoCompleteDataEntity newDataInstanceInternal() { return new ResearcherAutoCompleteDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public ResearcherAutoCompleteData newModelInstanceInternal() { return new ResearcherAutoCompleteData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public ResearcherAutoCompleteDataPersist newPersistModelInstanceInternal() { return new ResearcherAutoCompleteDataPersist(); } @@ -73,4 +73,10 @@ public class ResearcherAutoCompleteFieldDataHelperService extends BaseFieldDataH data.setMultiAutoComplete(persist.getMultiAutoComplete()); return data; } + + @Override + protected ResearcherAutoCompleteDataPersist mapDataToPersist(ResearcherAutoCompleteDataEntity data, ResearcherAutoCompleteDataPersist persist) { + persist.setMultiAutoComplete(data.getMultiAutoComplete()); + return persist; + } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/ResearcherFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/ResearcherFieldDataHelperService.java index 11f7e06f8..b9afda559 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/ResearcherFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/ResearcherFieldDataHelperService.java @@ -36,17 +36,17 @@ public class ResearcherFieldDataHelperService extends BaseFieldDataHelperService } @Override - public BaseFieldDataEntity newDataInstance() { + public ResearcherDataEntity newDataInstanceInternal() { return new ResearcherDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public ResearcherData newModelInstanceInternal() { return new ResearcherData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public ResearcherDataPersist newPersistModelInstanceInternal() { return new ResearcherDataPersist(); } @@ -73,4 +73,10 @@ public class ResearcherFieldDataHelperService extends BaseFieldDataHelperService data.setMultiAutoComplete(persist.getMultiAutoComplete()); return data; } + + @Override + protected ResearcherDataPersist mapDataToPersist(ResearcherDataEntity data, ResearcherDataPersist persist) { + persist.setMultiAutoComplete(data.getMultiAutoComplete()); + return persist; + } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/RichTextAreaDataFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/RichTextAreaDataFieldDataHelperService.java index 8d0ac7c72..4be780ff9 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/RichTextAreaDataFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/RichTextAreaDataFieldDataHelperService.java @@ -36,17 +36,17 @@ public class RichTextAreaDataFieldDataHelperService extends BaseFieldDataHelperS } @Override - public BaseFieldDataEntity newDataInstance() { + public RichTextAreaDataEntity newDataInstanceInternal() { return new RichTextAreaDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public RichTextAreaData newModelInstanceInternal() { return new RichTextAreaData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public RichTextAreaDataPersist newPersistModelInstanceInternal() { return new RichTextAreaDataPersist(); } @@ -73,4 +73,9 @@ public class RichTextAreaDataFieldDataHelperService extends BaseFieldDataHelperS protected RichTextAreaDataEntity applyPersistInternal(RichTextAreaDataPersist persist, RichTextAreaDataEntity data) { return data; } + + @Override + protected RichTextAreaDataPersist mapDataToPersist(RichTextAreaDataEntity data, RichTextAreaDataPersist persist) { + return persist; + } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/ServiceFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/ServiceFieldDataHelperService.java index e3b083c06..6e20b2858 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/ServiceFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/ServiceFieldDataHelperService.java @@ -36,17 +36,17 @@ public class ServiceFieldDataHelperService extends BaseFieldDataHelperService newDataInstance() { + public ServiceDataEntity newDataInstanceInternal() { return new ServiceDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public ServiceData newModelInstanceInternal() { return new ServiceData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public ServiceDataPersist newPersistModelInstanceInternal() { return new ServiceDataPersist(); } @@ -73,4 +73,10 @@ public class ServiceFieldDataHelperService extends BaseFieldDataHelperService newDataInstance() { + public TagDataEntity newDataInstanceInternal() { return new TagDataEntity(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public TagDataPersist newPersistModelInstanceInternal() { return new TagDataPersist(); } @Override - public BaseFieldData newModelInstance() { + public TagData newModelInstanceInternal() { return new TagData(); } @@ -73,4 +73,9 @@ public class TagFieldDataHelperService extends BaseFieldDataHelperService newDataInstance() { + public TaxonomyDataEntity newDataInstanceInternal() { return new TaxonomyDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public TaxonomyData newModelInstanceInternal() { return new TaxonomyData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public TaxonomyDataPersist newPersistModelInstanceInternal() { return new TaxonomyDataPersist(); } @@ -73,4 +73,10 @@ public class TaxonomyFieldDataHelperService extends BaseFieldDataHelperService newDataInstance() { + public TextAreaDataEntity newDataInstanceInternal() { return new TextAreaDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public TextAreaData newModelInstanceInternal() { return new TextAreaData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public TextAreaDataPersist newPersistModelInstanceInternal() { return new TextAreaDataPersist(); } @@ -72,4 +72,9 @@ public class TextAreaFieldDataHelperService extends BaseFieldDataHelperService newDataInstance() { + public UploadDataEntity newDataInstanceInternal() { return new UploadDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public UploadData newModelInstanceInternal() { return new UploadData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public UploadDataPersist newPersistModelInstanceInternal() { return new UploadDataPersist(); } @@ -81,7 +81,7 @@ public class UploadFieldDataHelperService extends BaseFieldDataHelperService()); + for (UploadDataEntity.Option option: data.getTypes()) { + persist.getTypes().add(this.buildOption(option)); + } + } + return persist; + } + + private @NotNull UploadOptionPersist buildOption(UploadDataEntity.Option data){ + UploadOptionPersist persist = new UploadOptionPersist(); + if (data == null) return persist; + + persist.setLabel(data.getLabel()); + persist.setValue(data.getValue()); + + return persist; + } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/ValidationFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/ValidationFieldDataHelperService.java index cbcaa91da..339cbe059 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/ValidationFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/ValidationFieldDataHelperService.java @@ -36,17 +36,17 @@ public class ValidationFieldDataHelperService extends BaseFieldDataHelperService } @Override - public BaseFieldDataEntity newDataInstance() { + public ValidationDataEntity newDataInstanceInternal() { return new ValidationDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public ValidationData newModelInstanceInternal() { return new ValidationData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public ValidationDataPersist newPersistModelInstanceInternal() { return new ValidationDataPersist(); } @@ -72,4 +72,9 @@ public class ValidationFieldDataHelperService extends BaseFieldDataHelperService protected ValidationDataEntity applyPersistInternal(ValidationDataPersist persist, ValidationDataEntity data) { return data; } + + @Override + protected ValidationDataPersist mapDataToPersist(ValidationDataEntity data, ValidationDataPersist persist) { + return persist; + } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/WordListFieldDataHelperService.java b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/WordListFieldDataHelperService.java index b7160d9fd..ad04df2bd 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/WordListFieldDataHelperService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/fielddatahelper/WordListFieldDataHelperService.java @@ -38,17 +38,17 @@ public class WordListFieldDataHelperService extends BaseFieldDataHelperService newDataInstance() { + public WordListDataEntity newDataInstanceInternal() { return new WordListDataEntity(); } @Override - public BaseFieldData newModelInstance() { + public WordListData newModelInstanceInternal() { return new WordListData(); } @Override - public BaseFieldDataPersist newPersistModelInstance() { + public WordListDataPersist newPersistModelInstanceInternal() { return new WordListDataPersist(); } @@ -81,6 +81,7 @@ public class WordListFieldDataHelperService extends BaseFieldDataHelperService()); + for (ComboBoxDataEntity.Option option: data.getOptions()) { + persist.getOptions().add(this.buildOption(option)); + } + } + return persist; + } + + private @NotNull ComboBoxOptionPersist buildOption(ComboBoxDataEntity.Option data){ + ComboBoxOptionPersist persist = new ComboBoxOptionPersist(); + if (data == null) return persist; + + persist.setLabel(data.getLabel()); + persist.setValue(data.getValue()); + persist.setUri(data.getUri()); + persist.setSource(data.getSource()); + + return persist; + } + } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/mail/MailService.java b/dmp-backend/core/src/main/java/eu/eudat/service/mail/MailService.java new file mode 100644 index 000000000..aa6c087a3 --- /dev/null +++ b/dmp-backend/core/src/main/java/eu/eudat/service/mail/MailService.java @@ -0,0 +1,12 @@ +package eu.eudat.service.mail; + +import jakarta.mail.MessagingException; + + +public interface MailService { + void sendSimpleMail(SimpleMail mail) throws MessagingException; + + String getMailTemplateContent(String resourceTemplate); + + String getMailTemplateSubject(); +} diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/mail/MailServiceImpl.java b/dmp-backend/core/src/main/java/eu/eudat/service/mail/MailServiceImpl.java new file mode 100644 index 000000000..db652f312 --- /dev/null +++ b/dmp-backend/core/src/main/java/eu/eudat/service/mail/MailServiceImpl.java @@ -0,0 +1,140 @@ +package eu.eudat.service.mail; + +import jakarta.mail.BodyPart; +import jakarta.mail.Message; +import jakarta.mail.MessagingException; +import jakarta.mail.internet.MimeBodyPart; +import jakarta.mail.internet.MimeMessage; +import jakarta.mail.internet.MimeMultipart; +import org.apache.commons.io.IOUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.core.env.Environment; +import org.springframework.core.io.Resource; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.io.InputStream; +import java.io.StringWriter; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + + +@Service("mailService") +public class MailServiceImpl implements MailService { + private static final Logger logger = LoggerFactory.getLogger(MailServiceImpl.class); + + private Environment env; + + private JavaMailSender emailSender; + + private ApplicationContext applicationContext; + + @Autowired + public MailServiceImpl(Environment env, JavaMailSender emailSender, ApplicationContext applicationContext) { + this.env = env; + this.emailSender = emailSender; + this.applicationContext = applicationContext; + } + + @Override + public void sendSimpleMail(SimpleMail mail) throws MessagingException { + List imageSources = parseImages(mail.getContent()); + List cids = new ArrayList<>(); + if (!imageSources.isEmpty()) { + for (int i = 0; i < imageSources.size(); i++) { + cids.add(UUID.randomUUID().toString()); + } + mail.setContent(replaceImageSources(mail.getContent(), cids)); + } + MimeMultipart content = new MimeMultipart("related"); + BodyPart messageBodyPart = new MimeBodyPart(); + messageBodyPart.setContent(mail.getContent(), "text/html; charset=UTF-8"); + content.addBodyPart(messageBodyPart); + if (!imageSources.isEmpty()) { + for (int i =0; i < imageSources.size(); i++) { + MimeBodyPart imagePart = new MimeBodyPart(); + try { + imagePart.attachFile(applicationContext.getResource(imageSources.get(i)).getFile()); + imagePart.setContentID("<" + cids.get(i) + ">"); + imagePart.setDisposition(MimeBodyPart.INLINE); + content.addBodyPart(imagePart); + } catch (IOException | MessagingException e) { + logger.error(e.getMessage(), e); + } + } + } + MimeMessage message = this.emailSender.createMimeMessage(); + message.setSubject(mail.getSubject()); + message.setContent(content); + message.addRecipients(Message.RecipientType.TO, mail.getTo()); + message.setFrom(env.getProperty("mail.from")); + this.emailSender.send(message); + } + + public Environment getEnv() { + return env; + } + + @Override + public String getMailTemplateContent(String resourceTemplate) { + Resource resource = applicationContext.getResource(resourceTemplate); + try { + InputStream inputStream = resource.getInputStream(); + StringWriter writer = new StringWriter(); + IOUtils.copy(inputStream, writer, "UTF-8"); + inputStream.close(); + return writer.toString(); + } catch (IOException e) { + logger.error(e.getMessage(), e); + } + return ""; + } + + @Override + public String getMailTemplateSubject() { + return env.getProperty("mail.subject"); + } + + private List parseImages(String content) { + List imagePaths = new ArrayList<>(); + + int lastIndex = 0; + + while (lastIndex != -1) { + lastIndex = content.indexOf("img src=\"", lastIndex); + + if (lastIndex != -1) { + String imagePath = content.substring(lastIndex + 9, content.indexOf("\"", lastIndex + 9)); + if (!imagePath.contains("data:image/png;base64")) { + imagePaths.add(imagePath); + } + lastIndex++; + } + } + + return imagePaths; + } + + private String replaceImageSources(String content, List cids) { + + int lastIndex = 0; + int cidIndex = 0; + + while (lastIndex != -1) { + lastIndex = content.indexOf("img src=\"", lastIndex); + + if (lastIndex != -1) { + content = content.replace(content.substring(lastIndex + 9, content.indexOf("\"", lastIndex + 9)), "cid:" + cids.get(cidIndex)); + lastIndex ++; + cidIndex ++; + } + } + + return content; + } +} diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/mail/SimpleMail.java b/dmp-backend/core/src/main/java/eu/eudat/service/mail/SimpleMail.java similarity index 96% rename from dmp-backend/web/src/main/java/eu/eudat/models/data/mail/SimpleMail.java rename to dmp-backend/core/src/main/java/eu/eudat/service/mail/SimpleMail.java index b6cd2412c..06812a579 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/mail/SimpleMail.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/mail/SimpleMail.java @@ -1,4 +1,4 @@ -package eu.eudat.models.data.mail; +package eu.eudat.service.mail; public class SimpleMail { diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/Admin.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/Admin.java index d5a35fbcb..2ff56899b 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/Admin.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/Admin.java @@ -1,9 +1,9 @@ package eu.eudat.controllers; import eu.eudat.authorization.Permission; -import eu.eudat.commons.enums.DescriptionTemplateStatus; import eu.eudat.commons.enums.UserDescriptionTemplateRole; import eu.eudat.commons.scope.user.UserScope; +import eu.eudat.commons.types.descriptiontemplate.importmodel.DescriptionTemplateImportXml; import eu.eudat.data.DescriptionTemplateEntity; import eu.eudat.data.UserDescriptionTemplateEntity; import eu.eudat.data.old.UserInfo; @@ -17,8 +17,8 @@ import eu.eudat.models.data.admin.composite.DatasetProfile; import eu.eudat.models.data.helpers.responses.ResponseItem; import eu.eudat.query.DescriptionTemplateTypeQuery; import eu.eudat.service.descriptiontemplatetype.DescriptionTemplateTypeService; +import eu.eudat.service.fielddatahelper.FieldDataHelperService; import eu.eudat.types.ApiMessageCode; -import eu.eudat.types.MetricNames; import gr.cite.commons.web.authz.service.AuthorizationService; import gr.cite.tools.data.query.QueryFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -28,7 +28,6 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import jakarta.transaction.Transactional; -import jakarta.validation.Valid; import javax.management.InvalidApplicationException; import java.io.IOException; @@ -49,9 +48,11 @@ public class Admin extends BaseController { private final QueryFactory queryFactory; private final DescriptionTemplateTypeService descriptionTemplateTypeService; + + private final FieldDataHelperService fieldDataHelperService; @Autowired - public Admin(ApiContext apiContext, DatasetProfileManager datasetProfileManager, UserManager userManager/*, Logger logger*/, ConfigLoader configLoader, MetricsManager metricsManager, AuthorizationService authorizationService, UserScope userScope, QueryFactory queryFactory, DescriptionTemplateTypeService descriptionTemplateTypeService) { + public Admin(ApiContext apiContext, DatasetProfileManager datasetProfileManager, UserManager userManager/*, Logger logger*/, ConfigLoader configLoader, MetricsManager metricsManager, AuthorizationService authorizationService, UserScope userScope, QueryFactory queryFactory, DescriptionTemplateTypeService descriptionTemplateTypeService, FieldDataHelperService fieldDataHelperService) { super(apiContext); this.datasetProfileManager = datasetProfileManager; this.userManager = userManager; @@ -61,6 +62,7 @@ public class Admin extends BaseController { this.userScope = userScope; this.queryFactory = queryFactory; this.descriptionTemplateTypeService = descriptionTemplateTypeService; + this.fieldDataHelperService = fieldDataHelperService; } // @Transactional @@ -195,29 +197,29 @@ public class Admin extends BaseController { } } - @RequestMapping(method = RequestMethod.POST, value = {"/upload", "/upload/{id}"}) - public ResponseEntity setDatasetProfileXml(@RequestParam("file") MultipartFile file, - @PathVariable(value = "id", required = false) String id) throws Exception { - this.authorizationService.authorizeForce(Permission.AdminRole, Permission.DatasetProfileManagerRole); - - eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel.DatasetProfile descriptionTemplateImportXmlModel = this.datasetProfileManager.createDatasetProfileFromXml(file); - eu.eudat.models.data.admin.composite.DatasetProfile datasetProfileEntity = descriptionTemplateImportXmlModel.toAdminCompositeModel(file.getOriginalFilename()); - DescriptionTemplateEntity modelDefinition; - if (id == null) { - modelDefinition = AdminManager.generateViewStyleDefinition(datasetProfileEntity, getApiContext(), descriptionTemplateTypeService); - DescriptionTemplateEntity descriptionTemplateEntity = this.getApiContext().getOperationsContext().getDatabaseRepository().getDatasetProfileDao().createOrUpdate(modelDefinition); - UserDescriptionTemplateEntity userDatasetProfile = new UserDescriptionTemplateEntity(); - userDatasetProfile.setDescriptionTemplate(descriptionTemplateEntity.getId()); - UserInfo userInfo = getApiContext().getOperationsContext().getDatabaseRepository().getUserInfoDao().find(userScope.getUserId()); - userDatasetProfile.setUser(userInfo.getId()); - userDatasetProfile.setRole(UserDescriptionTemplateRole.Owner); - getApiContext().getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile); - } else { - modelDefinition = datasetProfileManager.createNewVersionDatasetProfile(id, datasetProfileEntity); - } - return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem>() - .status(ApiMessageCode.SUCCESS_MESSAGE).message("")); - } +// @RequestMapping(method = RequestMethod.POST, value = {"/upload", "/upload/{id}"}) +// public ResponseEntity setDatasetProfileXml(@RequestParam("file") MultipartFile file, +// @PathVariable(value = "id", required = false) String id) throws Exception { +// this.authorizationService.authorizeForce(Permission.AdminRole, Permission.DatasetProfileManagerRole); +// +// DescriptionTemplateImportXml descriptionTemplateImportXmlModel = this.datasetProfileManager.createDatasetProfileFromXml(file); +// eu.eudat.models.data.admin.composite.DatasetProfile datasetProfileEntity = descriptionTemplateImportXmlModel.toPersistModel(file.getOriginalFilename(), this.fieldDataHelperService); +// DescriptionTemplateEntity modelDefinition; +// if (id == null) { +// modelDefinition = AdminManager.generateViewStyleDefinition(datasetProfileEntity, getApiContext(), descriptionTemplateTypeService); +// DescriptionTemplateEntity descriptionTemplateEntity = this.getApiContext().getOperationsContext().getDatabaseRepository().getDatasetProfileDao().createOrUpdate(modelDefinition); +// UserDescriptionTemplateEntity userDatasetProfile = new UserDescriptionTemplateEntity(); +// userDatasetProfile.setDescriptionTemplate(descriptionTemplateEntity.getId()); +// UserInfo userInfo = getApiContext().getOperationsContext().getDatabaseRepository().getUserInfoDao().find(userScope.getUserId()); +// userDatasetProfile.setUser(userInfo.getId()); +// userDatasetProfile.setRole(UserDescriptionTemplateRole.Owner); +// getApiContext().getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile); +// } else { +// modelDefinition = datasetProfileManager.createNewVersionDatasetProfile(id, datasetProfileEntity); +// } +// return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem>() +// .status(ApiMessageCode.SUCCESS_MESSAGE).message("")); +// } @RequestMapping(method = RequestMethod.GET, value = {"/getSemantics"}, produces = "application/json") diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/DescriptionTemplateController.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/DescriptionTemplateController.java index c676e712b..4b6fc3b1b 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/DescriptionTemplateController.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/DescriptionTemplateController.java @@ -32,10 +32,13 @@ import org.springframework.context.MessageSource; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.web.bind.annotation.*; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; +import org.xml.sax.SAXException; import javax.management.InvalidApplicationException; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.TransformerException; +import java.io.IOException; import java.util.*; @RestController @@ -164,4 +167,22 @@ public class DescriptionTemplateController { //this.auditService.trackIdentity(AuditableAction.IdentityTracking_Action); return persisted; } + + @RequestMapping(method = RequestMethod.POST, value = {"/xml/import/{id}", "/xml/import"}) + public DescriptionTemplate importXml(@RequestParam("file") MultipartFile file, @PathVariable(value = "id", required = false) UUID id, FieldSet fieldSet) throws IOException, JAXBException, InvalidApplicationException, ParserConfigurationException, TransformerException, InstantiationException, IllegalAccessException, SAXException { + logger.debug(new MapLogEntry("import" + DescriptionTemplate.class.getSimpleName()).And("file", file).And("id", id)); + + this.censorFactory.censor(DescriptionTemplateCensor.class).censor(fieldSet, null); + + DescriptionTemplate model = this.descriptionTemplateTypeService.importXml(file.getBytes(), id, file.getOriginalFilename(), fieldSet); + + this.auditService.track(AuditableAction.DmpBlueprint_Clone, Map.ofEntries( + new AbstractMap.SimpleEntry("file", file), + new AbstractMap.SimpleEntry("id", id), + new AbstractMap.SimpleEntry("fields", fieldSet) + )); + //this.auditService.trackIdentity(AuditableAction.IdentityTracking_Action); + + return model; + } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ContactEmailManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ContactEmailManager.java index 5714215c6..a25a581dd 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ContactEmailManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ContactEmailManager.java @@ -5,7 +5,7 @@ import eu.eudat.data.old.UserInfo; import eu.eudat.logic.services.ApiContext; import eu.eudat.models.data.ContactEmail.ContactEmailModel; import eu.eudat.models.data.ContactEmail.PublicContactEmailModel; -import eu.eudat.models.data.mail.SimpleMail; +import eu.eudat.service.mail.SimpleMail; import org.springframework.core.env.Environment; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetProfileManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetProfileManager.java index e9f2f7800..106736615 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetProfileManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetProfileManager.java @@ -1,15 +1,10 @@ package eu.eudat.logic.managers; import eu.eudat.commons.enums.IsActive; -import eu.eudat.commons.enums.UserDescriptionTemplateRole; import eu.eudat.commons.scope.user.UserScope; import eu.eudat.data.UserDescriptionTemplateEntity; import eu.eudat.data.DescriptionTemplateEntity; -import eu.eudat.data.dao.criteria.DatasetProfileCriteria; import eu.eudat.data.old.UserInfo; -import eu.eudat.data.query.items.item.datasetprofile.DatasetProfileAutocompleteRequest; -import eu.eudat.data.query.items.table.datasetprofile.DatasetProfileTableRequestItem; -import eu.eudat.exceptions.datasetprofile.DatasetProfileNewVersionException; import eu.eudat.logic.proxy.config.*; import eu.eudat.logic.proxy.config.configloaders.ConfigLoader; import eu.eudat.logic.proxy.config.entities.GeneralUrls; @@ -19,22 +14,15 @@ import eu.eudat.logic.services.operations.DatabaseRepository; import eu.eudat.commons.types.xml.XmlBuilder; import eu.eudat.logic.utilities.documents.helpers.FileEnvelope; import eu.eudat.logic.utilities.documents.xml.datasetProfileXml.ExportXmlBuilderDatasetProfile; -import eu.eudat.logic.utilities.documents.xml.datasetProfileXml.ImportXmlBuilderDatasetProfile; import eu.eudat.commons.types.descriptiontemplate.fielddata.AutoCompleteDataEntity; -import eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel.DatasetProfile; -import eu.eudat.model.deleter.UserDescriptionTemplateDeleter; -import eu.eudat.models.data.datasetprofile.DatasetProfileAutocompleteItem; -import eu.eudat.models.data.datasetprofile.DatasetProfileListingModel; import eu.eudat.commons.types.descriptiontemplate.FieldEntity; import eu.eudat.models.data.externaldataset.ExternalAutocompleteFieldModel; import eu.eudat.models.data.listingmodels.UserInfoListingModel; -import eu.eudat.models.data.mail.SimpleMail; +import eu.eudat.service.mail.SimpleMail; import eu.eudat.query.DescriptionTemplateQuery; import eu.eudat.query.DescriptionTemplateTypeQuery; import eu.eudat.query.UserDescriptionTemplateQuery; -import eu.eudat.queryable.QueryableList; import eu.eudat.service.descriptiontemplatetype.DescriptionTemplateTypeService; -import eu.eudat.types.MetricNames; import gr.cite.commons.web.authz.service.AuthorizationService; import gr.cite.tools.data.deleter.DeleterFactory; import gr.cite.tools.data.query.QueryFactory; @@ -44,7 +32,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.http.*; import org.springframework.stereotype.Component; -import org.springframework.web.multipart.MultipartFile; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; @@ -339,102 +326,102 @@ public class DatasetProfileManager { return fileEnvelope; } - public DatasetProfile createDatasetProfileFromXml(MultipartFile multiPartFile) { - ImportXmlBuilderDatasetProfile xmlBuilder = new ImportXmlBuilderDatasetProfile(); - try { - File localFile = convert(multiPartFile); - eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel.DatasetProfile profile = xmlBuilder.build(localFile); - Files.deleteIfExists(localFile.toPath()); - metricsManager.increaseValue(MetricNames.DATASET_TEMPLATE, 1, MetricNames.DRAFT); - return profile; - } catch (IOException e) { - logger.error(e.getMessage(), e); - } - return null; - } +// public DescriptionTemplateImportXml createDatasetProfileFromXml(MultipartFile multiPartFile) { +// ImportXmlBuilderDatasetProfile xmlBuilder = new ImportXmlBuilderDatasetProfile(); +// try { +// File localFile = convert(multiPartFile); +// DescriptionTemplateImportXml profile = xmlBuilder.build(localFile); +// Files.deleteIfExists(localFile.toPath()); +// metricsManager.increaseValue(MetricNames.DATASET_TEMPLATE, 1, MetricNames.DRAFT); +// return profile; +// } catch (IOException e) { +// logger.error(e.getMessage(), e); +// } +// return null; +// } - private File convert(MultipartFile file) throws IOException { - File convFile = new File(this.environment.getProperty("temp.temp") + file.getOriginalFilename()); - convFile.createNewFile(); - FileOutputStream fos = new FileOutputStream(convFile); - fos.write(file.getBytes()); - fos.close(); - return convFile; - } +// private File convert(MultipartFile file) throws IOException { +// File convFile = new File(this.environment.getProperty("temp.temp") + file.getOriginalFilename()); +// convFile.createNewFile(); +// FileOutputStream fos = new FileOutputStream(convFile); +// fos.write(file.getBytes()); +// fos.close(); +// return convFile; +// } +// +// public DescriptionTemplateEntity createNewVersionDatasetProfile(String id, eu.eudat.models.data.admin.composite.DatasetProfile profile) throws Exception { +// // Getting the DescriptionTemplate which we will create its new version. +// DescriptionTemplateEntity oldDescriptionTemplateEntity = apiContext.getOperationsContext().getDatabaseRepository().getDatasetProfileDao().find(UUID.fromString(id)); +// +// // Getting the DescriptionTemplate with the latest Version. +// DatasetProfileCriteria criteria = new DatasetProfileCriteria(); +// LinkedList list = new LinkedList<>(); +// list.push(oldDescriptionTemplateEntity.getGroupId()); +// criteria.setGroupIds(list); +// criteria.setAllVersions(false); +// QueryableList datasetProfileQueryableList = apiContext.getOperationsContext().getDatabaseRepository().getDatasetProfileDao().getWithCriteria(criteria); +// DescriptionTemplateEntity latestVersionDescriptionTemplateEntity = datasetProfileQueryableList.getSingle(); +// +// if (latestVersionDescriptionTemplateEntity.getVersion().equals(oldDescriptionTemplateEntity.getVersion())){ +// eu.eudat.models.data.admin.composite.DatasetProfile sortedProfile = profile.toShort(); +// DescriptionTemplateEntity modelDefinition = AdminManager.generateViewStyleDefinition(sortedProfile, apiContext, descriptionTemplateTypeService); +//// modelDefinition.setLabel(oldDescriptionTemplate.getLabel()); +// modelDefinition.setVersion((short) (oldDescriptionTemplateEntity.getVersion() + 1)); +// modelDefinition.setGroupId(oldDescriptionTemplateEntity.getGroupId()); +//// modelDefinition.setLanguage(oldDescriptionTemplate.getLanguage()); +// apiContext.getOperationsContext().getDatabaseRepository().getDatasetProfileDao().createOrUpdate(modelDefinition); +// DescriptionTemplateEntity descriptionTemplateEntity = apiContext.getOperationsContext().getDatabaseRepository().getDatasetProfileDao().createOrUpdate(modelDefinition); +// this.storeDatasetProfileUsers(descriptionTemplateEntity, profile); +// return modelDefinition; +// } else { +// throw new DatasetProfileNewVersionException("Version to update not the latest."); +// } +// } - public DescriptionTemplateEntity createNewVersionDatasetProfile(String id, eu.eudat.models.data.admin.composite.DatasetProfile profile) throws Exception { - // Getting the DescriptionTemplate which we will create its new version. - DescriptionTemplateEntity oldDescriptionTemplateEntity = apiContext.getOperationsContext().getDatabaseRepository().getDatasetProfileDao().find(UUID.fromString(id)); - - // Getting the DescriptionTemplate with the latest Version. - DatasetProfileCriteria criteria = new DatasetProfileCriteria(); - LinkedList list = new LinkedList<>(); - list.push(oldDescriptionTemplateEntity.getGroupId()); - criteria.setGroupIds(list); - criteria.setAllVersions(false); - QueryableList datasetProfileQueryableList = apiContext.getOperationsContext().getDatabaseRepository().getDatasetProfileDao().getWithCriteria(criteria); - DescriptionTemplateEntity latestVersionDescriptionTemplateEntity = datasetProfileQueryableList.getSingle(); - - if (latestVersionDescriptionTemplateEntity.getVersion().equals(oldDescriptionTemplateEntity.getVersion())){ - eu.eudat.models.data.admin.composite.DatasetProfile sortedProfile = profile.toShort(); - DescriptionTemplateEntity modelDefinition = AdminManager.generateViewStyleDefinition(sortedProfile, apiContext, descriptionTemplateTypeService); -// modelDefinition.setLabel(oldDescriptionTemplate.getLabel()); - modelDefinition.setVersion((short) (oldDescriptionTemplateEntity.getVersion() + 1)); - modelDefinition.setGroupId(oldDescriptionTemplateEntity.getGroupId()); -// modelDefinition.setLanguage(oldDescriptionTemplate.getLanguage()); - apiContext.getOperationsContext().getDatabaseRepository().getDatasetProfileDao().createOrUpdate(modelDefinition); - DescriptionTemplateEntity descriptionTemplateEntity = apiContext.getOperationsContext().getDatabaseRepository().getDatasetProfileDao().createOrUpdate(modelDefinition); - this.storeDatasetProfileUsers(descriptionTemplateEntity, profile); - return modelDefinition; - } else { - throw new DatasetProfileNewVersionException("Version to update not the latest."); - } - } - - public void storeDatasetProfileUsers(DescriptionTemplateEntity entity, eu.eudat.models.data.admin.composite.DatasetProfile model) { - final List userDescriptionTemplateEntities = this.queryFactory.query(UserDescriptionTemplateQuery.class).isActive(IsActive.Active).descriptionTemplateIds(entity.getId()).collect(); - if (model.getUsers() != null && !model.getUsers().isEmpty()) { - model.getUsers().stream().filter(userInfoListingModel -> userDescriptionTemplateEntities.stream() - .filter(userDatasetProfile -> userDatasetProfile.getUser().equals(userInfoListingModel.getId())).count() == 0) - .forEach(userInfoListingModel -> { - UserDescriptionTemplateEntity userDatasetProfile1 = new UserDescriptionTemplateEntity(); - userDatasetProfile1.setDescriptionTemplate(entity.getId()); - UserInfo userInfo1 = null; - try { - userInfo1 = apiContext.getOperationsContext().getDatabaseRepository().getUserInfoDao().find(userInfoListingModel.getId()); - } catch (InvalidApplicationException e) { - throw new RuntimeException(e); - } - userDatasetProfile1.setUser(userInfo1.getId()); - userDatasetProfile1.setRole(UserDescriptionTemplateRole.Member); - apiContext.getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile1); - sendJoinMail(userDatasetProfile1); - }); -// userDescriptionTemplateEntities.stream().filter(userDatasetProfile -> model.getUsers().stream() -// .filter(userInfoListingModel -> userDatasetProfile.getUser().equals(userInfoListingModel.getId())).count() > 0 -// && userDatasetProfile.getRole() == UserDescriptionTemplateRole.Saved2).forEach(userDatasetProfile -> { -// userDatasetProfile.setRole(UserDescriptionTemplateRole.Member); -// apiContext.getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile); -// sendJoinMail(userDatasetProfile); +// public void storeDatasetProfileUsers(DescriptionTemplateEntity entity, eu.eudat.models.data.admin.composite.DatasetProfile model) { +// final List userDescriptionTemplateEntities = this.queryFactory.query(UserDescriptionTemplateQuery.class).isActive(IsActive.Active).descriptionTemplateIds(entity.getId()).collect(); +// if (model.getUsers() != null && !model.getUsers().isEmpty()) { +// model.getUsers().stream().filter(userInfoListingModel -> userDescriptionTemplateEntities.stream() +// .filter(userDatasetProfile -> userDatasetProfile.getUser().equals(userInfoListingModel.getId())).count() == 0) +// .forEach(userInfoListingModel -> { +// UserDescriptionTemplateEntity userDatasetProfile1 = new UserDescriptionTemplateEntity(); +// userDatasetProfile1.setDescriptionTemplate(entity.getId()); +// UserInfo userInfo1 = null; +// try { +// userInfo1 = apiContext.getOperationsContext().getDatabaseRepository().getUserInfoDao().find(userInfoListingModel.getId()); +// } catch (InvalidApplicationException e) { +// throw new RuntimeException(e); +// } +// userDatasetProfile1.setUser(userInfo1.getId()); +// userDatasetProfile1.setRole(UserDescriptionTemplateRole.Member); +// apiContext.getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile1); +// sendJoinMail(userDatasetProfile1); // }); - } - if (userDescriptionTemplateEntities != null && !userDescriptionTemplateEntities.isEmpty()) { - List toDelete = new ArrayList<>(); - - userDescriptionTemplateEntities.stream().filter(userDatasetProfile -> model.getUsers().stream() - .filter(userInfoListingModel -> userDatasetProfile.getUser().equals(userInfoListingModel.getId())).count() == 0) - .forEach(userDatasetProfile -> { - toDelete.add(userDatasetProfile); - apiContext.getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile); - }); - try { - this.deleterFactory.deleter(UserDescriptionTemplateDeleter.class).delete(toDelete); - } catch (InvalidApplicationException e) { - throw new RuntimeException(e); - } - - } - } +//// userDescriptionTemplateEntities.stream().filter(userDatasetProfile -> model.getUsers().stream() +//// .filter(userInfoListingModel -> userDatasetProfile.getUser().equals(userInfoListingModel.getId())).count() > 0 +//// && userDatasetProfile.getRole() == UserDescriptionTemplateRole.Saved2).forEach(userDatasetProfile -> { +//// userDatasetProfile.setRole(UserDescriptionTemplateRole.Member); +//// apiContext.getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile); +//// sendJoinMail(userDatasetProfile); +//// }); +// } +// if (userDescriptionTemplateEntities != null && !userDescriptionTemplateEntities.isEmpty()) { +// List toDelete = new ArrayList<>(); +// +// userDescriptionTemplateEntities.stream().filter(userDatasetProfile -> model.getUsers().stream() +// .filter(userInfoListingModel -> userDatasetProfile.getUser().equals(userInfoListingModel.getId())).count() == 0) +// .forEach(userDatasetProfile -> { +// toDelete.add(userDatasetProfile); +// apiContext.getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile); +// }); +// try { +// this.deleterFactory.deleter(UserDescriptionTemplateDeleter.class).delete(toDelete); +// } catch (InvalidApplicationException e) { +// throw new RuntimeException(e); +// } +// +// } +// } @Transactional public void retrieveUsers(DescriptionTemplateEntity entity, eu.eudat.models.data.admin.composite.DatasetProfile model) { @@ -457,31 +444,31 @@ public class DatasetProfileManager { } } - private void sendJoinMail(UserDescriptionTemplateEntity userDatasetProfile) { - SimpleMail mail = new SimpleMail(); - UserInfo user = null; - try { - user = this.apiContext.getOperationsContext().getDatabaseRepository().getUserInfoDao().find(userDatasetProfile.getUser()); - } catch (InvalidApplicationException e) { - throw new RuntimeException(e); - } - DescriptionTemplateEntity descriptionTemplate = this.queryFactory.query(DescriptionTemplateQuery.class).isActive(IsActive.Active).ids(userDatasetProfile.getDescriptionTemplate()).first(); - - mail.setSubject(environment.getProperty("admin.mail.subject").replace( "{templateName}", descriptionTemplate.getLabel())); - String content = apiContext.getUtilitiesService().getMailService().getMailTemplateContent(environment.getProperty("email.dataset.template")); - content = content.replace("{recipient}", user.getName()); - content = content.replace("{templateName}", descriptionTemplate.getLabel()); - content = content.replace("{host}", this.environment.getProperty("dmp.domain")); - content = content.replace("{templateID}", descriptionTemplate.getId().toString()); - mail.setContent(content); - mail.setTo(user.getEmail()); - try { - apiContext.getUtilitiesService().getMailService().sendSimpleMail(mail); - } catch (Exception ex) { - logger.error(ex.getMessage(), ex); - } - - } +// private void sendJoinMail(UserDescriptionTemplateEntity userDatasetProfile) { +// SimpleMail mail = new SimpleMail(); +// UserInfo user = null; +// try { +// user = this.apiContext.getOperationsContext().getDatabaseRepository().getUserInfoDao().find(userDatasetProfile.getUser()); +// } catch (InvalidApplicationException e) { +// throw new RuntimeException(e); +// } +// DescriptionTemplateEntity descriptionTemplate = this.queryFactory.query(DescriptionTemplateQuery.class).isActive(IsActive.Active).ids(userDatasetProfile.getDescriptionTemplate()).first(); +// +// mail.setSubject(environment.getProperty("admin.mail.subject").replace( "{templateName}", descriptionTemplate.getLabel())); +// String content = apiContext.getUtilitiesService().getMailService().getMailTemplateContent(environment.getProperty("email.dataset.template")); +// content = content.replace("{recipient}", user.getName()); +// content = content.replace("{templateName}", descriptionTemplate.getLabel()); +// content = content.replace("{host}", this.environment.getProperty("dmp.domain")); +// content = content.replace("{templateID}", descriptionTemplate.getId().toString()); +// mail.setContent(content); +// mail.setTo(user.getEmail()); +// try { +// apiContext.getUtilitiesService().getMailService().sendSimpleMail(mail); +// } catch (Exception ex) { +// logger.error(ex.getMessage(), ex); +// } +// +// } public List getSemantics(String query) { List semantics = configLoader.getSemantics(); diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/NotificationManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/NotificationManager.java index 35660e695..e6169b8db 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/NotificationManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/NotificationManager.java @@ -7,7 +7,7 @@ import eu.eudat.commons.enums.old.notification.ActiveStatus; import eu.eudat.commons.enums.old.notification.NotifyState; import eu.eudat.logic.services.ApiContext; import eu.eudat.logic.services.utilities.MailService; -import eu.eudat.models.data.mail.SimpleMail; +import eu.eudat.service.mail.SimpleMail; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/ConfirmationEmailServiceImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/ConfirmationEmailServiceImpl.java index 350469944..419b900a0 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/ConfirmationEmailServiceImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/ConfirmationEmailServiceImpl.java @@ -7,8 +7,7 @@ import eu.eudat.commons.scope.user.UserScope; import eu.eudat.data.dao.entities.EmailConfirmationDao; import eu.eudat.data.old.EmailConfirmation; import eu.eudat.data.old.UserInfo; -import eu.eudat.logic.services.ApiContext; -import eu.eudat.models.data.mail.SimpleMail; +import eu.eudat.service.mail.SimpleMail; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.env.Environment; diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/InvitationServiceImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/InvitationServiceImpl.java index de5c8a462..94e74e166 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/InvitationServiceImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/InvitationServiceImpl.java @@ -8,7 +8,7 @@ import eu.eudat.data.old.Invitation; import eu.eudat.data.old.UserDMP; import eu.eudat.data.old.UserInfo; import eu.eudat.models.data.invitation.Properties; -import eu.eudat.models.data.mail.SimpleMail; +import eu.eudat.service.mail.SimpleMail; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/MailService.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/MailService.java index 63b293a4f..d901b77fd 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/MailService.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/MailService.java @@ -1,6 +1,6 @@ package eu.eudat.logic.services.utilities; -import eu.eudat.models.data.mail.SimpleMail; +import eu.eudat.service.mail.SimpleMail; import jakarta.mail.MessagingException; diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/MailServiceImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/MailServiceImpl.java index 28b06880c..091a925c3 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/MailServiceImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/MailServiceImpl.java @@ -1,6 +1,6 @@ package eu.eudat.logic.services.utilities; -import eu.eudat.models.data.mail.SimpleMail; +import eu.eudat.service.mail.SimpleMail; import org.apache.commons.io.IOUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/ImportXmlBuilderDatasetProfile.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/ImportXmlBuilderDatasetProfile.java index 586f0acde..3c0bbc42e 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/ImportXmlBuilderDatasetProfile.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/ImportXmlBuilderDatasetProfile.java @@ -1,5 +1,5 @@ package eu.eudat.logic.utilities.documents.xml.datasetProfileXml; -import eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel.DatasetProfile; +import eu.eudat.commons.types.descriptiontemplate.importmodel.DescriptionTemplateImportXml; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -11,18 +11,18 @@ import java.io.*; public class ImportXmlBuilderDatasetProfile { private static final Logger logger = LoggerFactory.getLogger(ImportXmlBuilderDatasetProfile.class); - public DatasetProfile build(File xmlFile) throws IOException { - DatasetProfile datasetProfile = new DatasetProfile(); + public DescriptionTemplateImportXml build(File xmlFile) throws IOException { + DescriptionTemplateImportXml descriptionTemplateImportXml = new DescriptionTemplateImportXml(); JAXBContext jaxbContext = null; try { - jaxbContext = JAXBContext.newInstance(DatasetProfile.class); + jaxbContext = JAXBContext.newInstance(DescriptionTemplateImportXml.class); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); - datasetProfile = (DatasetProfile) unmarshaller.unmarshal(xmlFile); + descriptionTemplateImportXml = (DescriptionTemplateImportXml) unmarshaller.unmarshal(xmlFile); } catch (JAXBException e) { logger.error(e.getMessage(), e); } - return datasetProfile; + return descriptionTemplateImportXml; } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/DatasetProfile.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/DatasetProfile.java deleted file mode 100644 index 52676158e..000000000 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/DatasetProfile.java +++ /dev/null @@ -1,77 +0,0 @@ -package eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel; - - -import eu.eudat.commons.enums.DescriptionTemplateStatus; - -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 = "pages") -public class DatasetProfile { - - private String description; - private String language; - private String type; - - private List page; - - @XmlElement(name = "page") - public List getPage() { - return page; - } - - public void setPage(List 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 eu.eudat.models.data.admin.composite.DatasetProfile toAdminCompositeModel(String label){ - eu.eudat.models.data.admin.composite.DatasetProfile newDatasetEntityProfile = new eu.eudat.models.data.admin.composite.DatasetProfile(); - newDatasetEntityProfile.setLabel(label); - newDatasetEntityProfile.setStatus(DescriptionTemplateStatus.Draft.getValue()); - newDatasetEntityProfile.setDescription(description); - newDatasetEntityProfile.setLanguage(language); - newDatasetEntityProfile.setType(type); - List pagesDatasetEntity = new LinkedList<>(); - List sectionDatasetEntity = new LinkedList<>(); - for (Page xmlPage: page) { - pagesDatasetEntity.add(xmlPage.toAdminCompositeModelPage()); - for (int i = 0; i < xmlPage.getSections().size(); i++) { - sectionDatasetEntity.add(xmlPage.toAdminCompositeModelSection(i)); - } - } - newDatasetEntityProfile.setPages(pagesDatasetEntity); - newDatasetEntityProfile.setSections(sectionDatasetEntity); - - return newDatasetEntityProfile; - } -} diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/FieldSets.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/FieldSets.java deleted file mode 100644 index e9431de9d..000000000 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/FieldSets.java +++ /dev/null @@ -1,30 +0,0 @@ -package eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel; - -import jakarta.xml.bind.annotation.XmlElement; -import jakarta.xml.bind.annotation.XmlRootElement; -import java.util.LinkedList; -import java.util.List; - -@XmlRootElement(name = "field-Sets") -public class FieldSets { - - List
    fieldSet; - - @XmlElement(name = "field-Set") - public List
    getFieldSet() { - return fieldSet; - } - - public void setFieldSet(List
    fieldSet) { - this.fieldSet = fieldSet; - } - - public List toAdminCompositeModelSection(){ - List fieldSetEntity = new LinkedList<>(); - if(this.fieldSet!=null) - for (FieldSet xmlFieldSet:this.fieldSet){ - fieldSetEntity.add(xmlFieldSet.toAdminCompositeModelSection()); - } - return fieldSetEntity; - } -} diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Fields.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Fields.java deleted file mode 100644 index d60a03b84..000000000 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Fields.java +++ /dev/null @@ -1,38 +0,0 @@ -package eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel.Fields; - -import jakarta.xml.bind.annotation.XmlElement; -import jakarta.xml.bind.annotation.XmlRootElement; -import java.util.LinkedList; -import java.util.List; - -@XmlRootElement(name = "fields") -public class Fields { - - private List field; - - @XmlElement(name = "field") - public List getField() { - return field; - } - - public void setField(List field) { - this.field = field; - } - - public List toAdminCompositeModelSection() { - List fieldsEntity = new LinkedList<>(); - if (this.field != null) - for (Field xmlField : this.field) { - fieldsEntity.add(xmlField.toAdminCompositeModelSection()); - } - return fieldsEntity; - } - -} - - - - - - - diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Visible.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Visible.java deleted file mode 100644 index 786196c46..000000000 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/Visible.java +++ /dev/null @@ -1,46 +0,0 @@ -package eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel.Fields; - -import eu.eudat.commons.types.descriptiontemplate.RuleEntity; -import eu.eudat.commons.types.descriptiontemplate.todelete.VisibilityEntity; -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 = "visible") -public class Visible { - - private String style; - private List rule; - - @XmlAttribute(name = "style") - public String getStyle() { - return style; - } - - public void setStyle(String style) { - this.style = style; - } - @XmlElement(name = "rule") - public List getRule() { - return rule; - } - - public void setRule(List rule) { - this.rule = rule; - } - - public VisibilityEntity toAdminCompositeModelSection(){ - VisibilityEntity visibilityEntity = new VisibilityEntity(); - visibilityEntity.setStyle(this.style); - if(this.rule!=null) { - List ruleListEntity = new LinkedList<>(); - for (Rule xmlRule : this.rule) { - ruleListEntity.add(xmlRule.toAdminCompositeModelSection()); - } - visibilityEntity.setRules(ruleListEntity); - } - return visibilityEntity; - } -} \ No newline at end of file diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/validations.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/validations.java deleted file mode 100644 index 55d188f15..000000000 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Fields/validations.java +++ /dev/null @@ -1,25 +0,0 @@ -package eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel.Fields; - -import jakarta.xml.bind.annotation.XmlElement; -import jakarta.xml.bind.annotation.XmlRootElement; - -@XmlRootElement(name = "validations") -public class validations { - - Validation validation; - - @XmlElement(name = "validation") - public Validation getValidation() { - return validation; - } - - public void setValidation(Validation validation) { - this.validation = validation; - } - - public int toAdminCompositeModelSection() { - return validation.getType(); - } -} - - diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Page.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Page.java deleted file mode 100644 index 38886ca6b..000000000 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/xml/datasetProfileXml/datasetProfileModel/Page.java +++ /dev/null @@ -1,74 +0,0 @@ -package eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel; - -import jakarta.xml.bind.annotation.XmlAttribute; -import jakarta.xml.bind.annotation.XmlElement; -import jakarta.xml.bind.annotation.XmlRootElement; -import java.util.List; - -@XmlRootElement(name = "page") -public class Page { - private String id; - private int ordinal; - private String title; - private List sections; - - @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; - } - - @XmlAttribute(name = "title") - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - @XmlElement(name = "sections") - public List getSections() { - return sections; - } - - public void setSections(List sections) { - this.sections = sections; - } - - public eu.eudat.models.data.admin.components.datasetprofile.Page toAdminCompositeModelPage(){ - eu.eudat.models.data.admin.components.datasetprofile.Page pageEntity = new eu.eudat.models.data.admin.components.datasetprofile.Page(); - pageEntity.setId(this.id); - pageEntity.setOrdinal(this.ordinal); - pageEntity.setTitle(this.title); - return pageEntity; - } - - public eu.eudat.models.data.admin.components.datasetprofile.Section toAdminCompositeModelSection(int i){ - /* eu.eudat.models.data.admin.components.datasetprofile.Section sectionEntity =new eu.eudat.models.data.admin.components.datasetprofile.Section(); -// List sectionsListEntity = new LinkedList<>(); -// for (Section xmlsection:this.sections.section) { -// sectionsListEntity.add(xmlsection.toAdminCompositeModelSection()); -// } - if(this.sections.section!=null) - sectionEntity.setSections(this.sections.toAdminCompositeModelSection()); - if(this.sections.fieldSets.fieldSet!=null) - sectionEntity.setFieldSets(this.sections.toAdminCompositeModelSectionFieldSets()); - sectionEntity.setId(this.id); - sectionEntity.setOrdinal(this.ordinal); - sectionEntity.setTitle(this.title);*/ - return sections.get(i).toAdminCompositeModelSection(); - } -} diff --git a/dmp-backend/web/src/main/resources/config/permissions.yml b/dmp-backend/web/src/main/resources/config/permissions.yml index 15e923e43..a861e7bc5 100644 --- a/dmp-backend/web/src/main/resources/config/permissions.yml +++ b/dmp-backend/web/src/main/resources/config/permissions.yml @@ -147,6 +147,14 @@ permissions: clients: [ ] allowAnonymous: false allowAuthenticated: false + ImportDescriptionTemplate: + roles: + - Admin + - DatasetProfileManager + claims: [ ] + clients: [ ] + allowAnonymous: false + allowAuthenticated: false # Dmp BrowseDmp: roles: