DescriptionTemplate refactor

This commit is contained in:
Efstratios Giannopoulos 2023-11-01 18:12:59 +02:00
parent 3c799063cc
commit ac15e33a87
73 changed files with 1244 additions and 697 deletions

View File

@ -40,7 +40,11 @@
<artifactId>repositorydepositbase</artifactId> <artifactId>repositorydepositbase</artifactId>
<version>1.0.4</version> <version>1.0.4</version>
</dependency> </dependency>
</dependencies> <dependency>
<groupId>org.eclipse.angus</groupId>
<artifactId>jakarta.mail</artifactId>
</dependency>
</dependencies>
<build> <build>
<plugins> <plugins>

View File

@ -29,6 +29,7 @@ public final class Permission {
public static String DeleteDescriptionTemplate = "DeleteDescriptionTemplate"; public static String DeleteDescriptionTemplate = "DeleteDescriptionTemplate";
public static String CloneDescriptionTemplate = "CloneDescriptionTemplate"; public static String CloneDescriptionTemplate = "CloneDescriptionTemplate";
public static String CreateNewVersionDescriptionTemplate = "CreateNewVersionDescriptionTemplate"; public static String CreateNewVersionDescriptionTemplate = "CreateNewVersionDescriptionTemplate";
public static String ImportDescriptionTemplate = "ImportDescriptionTemplate";
//DescriptionTemplateType //DescriptionTemplateType
public static String BrowseDescriptionTemplateType = "BrowseDescriptionTemplateType"; public static String BrowseDescriptionTemplateType = "BrowseDescriptionTemplateType";

View File

@ -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<PageImportXml> page;
@XmlElement(name = "page")
public List<PageImportXml> getPage() {
return page;
}
public void setPage(List<PageImportXml> page) {
this.page = page;
}
@XmlAttribute(name = "description")
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@XmlAttribute(name = "language")
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
@XmlAttribute(name = "type")
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public DescriptionTemplatePersist toPersistModel(String label, FieldDataHelperServiceProvider fieldDataHelperServiceProvider){
DescriptionTemplatePersist newDatasetEntityProfile = new DescriptionTemplatePersist();
newDatasetEntityProfile.setLabel(label);
newDatasetEntityProfile.setStatus(DescriptionTemplateStatus.Draft);
newDatasetEntityProfile.setDescription(description);
newDatasetEntityProfile.setLanguage(language);
newDatasetEntityProfile.setType(UUID.fromString(type));
DefinitionPersist definitionPersist = new DefinitionPersist();
List<PagePersist> pagesDatasetEntity = new LinkedList<>();
List<SectionPersist> sectionDatasetEntity = new LinkedList<>();
for (PageImportXml xmlPage: page) {
pagesDatasetEntity.add(xmlPage.toPersistModel());
for (int i = 0; i < xmlPage.getSections().size(); i++) {
sectionDatasetEntity.add(xmlPage.toPersistModel(i, fieldDataHelperServiceProvider));
}
}
definitionPersist.setPages(pagesDatasetEntity);
definitionPersist.setSections(sectionDatasetEntity);
newDatasetEntityProfile.setDefinition(definitionPersist);
return newDatasetEntityProfile;
}
public NewVersionDescriptionTemplatePersist toNewVersionPersistModel(UUID id, String label, FieldDataHelperServiceProvider fieldDataHelperServiceProvider){
NewVersionDescriptionTemplatePersist newDatasetEntityProfile = new NewVersionDescriptionTemplatePersist();
newDatasetEntityProfile.setId(id);
newDatasetEntityProfile.setLabel(label);
newDatasetEntityProfile.setStatus(DescriptionTemplateStatus.Draft);
newDatasetEntityProfile.setDescription(description);
newDatasetEntityProfile.setLanguage(language);
newDatasetEntityProfile.setType(UUID.fromString(type));
DefinitionPersist definitionPersist = new DefinitionPersist();
List<PagePersist> pagesDatasetEntity = new LinkedList<>();
List<SectionPersist> sectionDatasetEntity = new LinkedList<>();
for (PageImportXml xmlPage: page) {
pagesDatasetEntity.add(xmlPage.toPersistModel());
for (int i = 0; i < xmlPage.getSections().size(); i++) {
sectionDatasetEntity.add(xmlPage.toPersistModel(i, fieldDataHelperServiceProvider));
}
}
definitionPersist.setPages(pagesDatasetEntity);
definitionPersist.setSections(sectionDatasetEntity);
newDatasetEntityProfile.setDefinition(definitionPersist);
return newDatasetEntityProfile;
}
}

View File

@ -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.XmlAttribute;
import jakarta.xml.bind.annotation.XmlElement; import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement; import jakarta.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "field-Set") @XmlRootElement(name = "field-Set")
public class FieldSet { public class FieldSetImportXml {
private String id; private String id;
private int ordinal; private int ordinal;
private Fields fields; private FieldsImportXml fields;
private String numbering; private String numbering;
private Boolean commentField; private Boolean commentField;
private Multiplicity multiplicity; private MultiplicityImportXml multiplicity;
private String description; private String description;
private String extendedDescription; private String extendedDescription;
private String additionalInformation; private String additionalInformation;
@ -39,11 +41,11 @@ public class FieldSet {
} }
@XmlElement(name = "fields") @XmlElement(name = "fields")
public Fields getFields() { public FieldsImportXml getFields() {
return fields; return fields;
} }
public void setFields(Fields fields) { public void setFields(FieldsImportXml fields) {
this.fields = fields; this.fields = fields;
} }
@ -66,11 +68,11 @@ public class FieldSet {
} }
@XmlElement(name = "multiplicity") @XmlElement(name = "multiplicity")
public Multiplicity getMultiplicity() { public MultiplicityImportXml getMultiplicity() {
return multiplicity; return multiplicity;
} }
public void setMultiplicity(Multiplicity multiplicity) { public void setMultiplicity(MultiplicityImportXml multiplicity) {
this.multiplicity = multiplicity; this.multiplicity = multiplicity;
} }
@ -110,18 +112,18 @@ public class FieldSet {
this.title = title; this.title = title;
} }
public eu.eudat.models.data.admin.components.datasetprofile.FieldSet toAdminCompositeModelSection() { public FieldSetPersist toPersistModel(FieldDataHelperServiceProvider fieldDataHelperServiceProvider) {
eu.eudat.models.data.admin.components.datasetprofile.FieldSet fieldSet1Entity = new eu.eudat.models.data.admin.components.datasetprofile.FieldSet(); FieldSetPersist fieldSet1Entity = new FieldSetPersist();
fieldSet1Entity.setId(this.id); fieldSet1Entity.setId(this.id);
fieldSet1Entity.setOrdinal(this.ordinal); fieldSet1Entity.setOrdinal(this.ordinal);
fieldSet1Entity.setHasCommentField(this.commentField != null ? this.commentField : false); 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.setTitle(this.title);
fieldSet1Entity.setDescription(this.description); fieldSet1Entity.setDescription(this.description);
fieldSet1Entity.setExtendedDescription(this.extendedDescription); fieldSet1Entity.setExtendedDescription(this.extendedDescription);
fieldSet1Entity.setAdditionalInformation(this.additionalInformation); fieldSet1Entity.setAdditionalInformation(this.additionalInformation);
fieldSet1Entity.setFields(this.fields.toAdminCompositeModelSection()); fieldSet1Entity.setFields(this.fields.toPersistModel(fieldDataHelperServiceProvider));
return fieldSet1Entity; return fieldSet1Entity;
} }
} }

View File

@ -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<FieldSetImportXml> fieldSet;
@XmlElement(name = "field-Set")
public List<FieldSetImportXml> getFieldSet() {
return fieldSet;
}
public void setFieldSet(List<FieldSetImportXml> fieldSet) {
this.fieldSet = fieldSet;
}
public List<FieldSetPersist> toPersistModel(FieldDataHelperServiceProvider fieldDataHelperServiceProvider){
List<FieldSetPersist> fieldSetEntity = new LinkedList<>();
if(this.fieldSet!=null) {
for (FieldSetImportXml xmlFieldSet : this.fieldSet) {
fieldSetEntity.add(xmlFieldSet.toPersistModel(fieldDataHelperServiceProvider));
}
}
return fieldSetEntity;
}
}

View File

@ -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.XmlAttribute;
import jakarta.xml.bind.annotation.XmlRootElement; import jakarta.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "multiplicity") @XmlRootElement(name = "multiplicity")
public class Multiplicity { public class MultiplicityImportXml {
private int max; private int max;
private int min; private int min;
private String placeholder; private String placeholder;
@ -48,8 +48,8 @@ public class Multiplicity {
this.tableView = tableView; this.tableView = tableView;
} }
public MultiplicityEntity toAdminCompositeModelSection() { public MultiplicityPersist toPersistModel() {
MultiplicityEntity multiplicityEntity = new MultiplicityEntity(); MultiplicityPersist multiplicityEntity = new MultiplicityPersist();
multiplicityEntity.setMax(max); multiplicityEntity.setMax(max);
multiplicityEntity.setMin(min); multiplicityEntity.setMin(min);
multiplicityEntity.setPlaceholder(placeholder); multiplicityEntity.setPlaceholder(placeholder);

View File

@ -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<SectionsImportXml> 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<SectionsImportXml> getSections() {
return sections;
}
public void setSections(List<SectionsImportXml> 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);
}
}

View File

@ -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.XmlAttribute;
import jakarta.xml.bind.annotation.XmlElement; import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement; import jakarta.xml.bind.annotation.XmlRootElement;
@ -7,17 +9,17 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
@XmlRootElement(name = "section") @XmlRootElement(name = "section")
public class Section { public class SectionImportXml {
private String id; private String id;
private int ordinal; private int ordinal;
private String page; private String page;
private Boolean defaultVisibility; private Boolean defaultVisibility;
private FieldSets fieldSets; private FieldSetsImportXml fieldSets;
private String numbering; private String numbering;
private String description; private String description;
private String extendedDescription; private String extendedDescription;
private String title; private String title;
private List<Section> section; private List<SectionImportXml> section;
private Boolean multiplicity; private Boolean multiplicity;
@XmlAttribute(name = "id") @XmlAttribute(name = "id")
@ -57,11 +59,11 @@ public class Section {
} }
@XmlElement(name = "field-Sets") @XmlElement(name = "field-Sets")
public FieldSets getFieldSets() { public FieldSetsImportXml getFieldSets() {
return fieldSets; return fieldSets;
} }
public void setFieldSets(FieldSets fieldSets) { public void setFieldSets(FieldSetsImportXml fieldSets) {
this.fieldSets = fieldSets; this.fieldSets = fieldSets;
} }
@ -101,13 +103,31 @@ public class Section {
this.title = title; this.title = title;
} }
public eu.eudat.models.data.admin.components.datasetprofile.Section toAdminCompositeModelSection() { @XmlElement(name = "section")
eu.eudat.models.data.admin.components.datasetprofile.Section sectionEntity = new eu.eudat.models.data.admin.components.datasetprofile.Section(); public List<SectionImportXml> getSection() {
List<eu.eudat.models.data.admin.components.datasetprofile.Section> sectionsListEntity = new LinkedList<>(); return section;
}
public void setSection(List<SectionImportXml> 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<SectionPersist> sectionsListEntity = new LinkedList<>();
if (this.section != null) { if (this.section != null) {
for (Section xmlsection : this.section) { for (SectionImportXml xmlsection : this.section) {
sectionsListEntity.add(xmlsection.toAdminCompositeModelSection()); sectionsListEntity.add(xmlsection.toPersistModel(fieldDataHelperServiceProvider));
} }
} }
sectionEntity.setId(this.id); sectionEntity.setId(this.id);
@ -120,28 +140,10 @@ public class Section {
// for (FieldSets xmpFieldSets: this.fieldSets) { // for (FieldSets xmpFieldSets: this.fieldSets) {
// fieldSetsEntity.add(xmpFieldSets.toAdminCompositeModelSection()); // fieldSetsEntity.add(xmpFieldSets.toAdminCompositeModelSection());
// } // }
sectionEntity.setFieldSets(this.fieldSets.toAdminCompositeModelSection()); sectionEntity.setFieldSets(this.fieldSets.toPersistModel(fieldDataHelperServiceProvider));
sectionEntity.setSections(sectionsListEntity); sectionEntity.setSections(sectionsListEntity);
sectionEntity.setDefaultVisibility(this.defaultVisibility); sectionEntity.setDefaultVisibility(this.defaultVisibility);
return sectionEntity; return sectionEntity;
} }
@XmlElement(name = "section")
public List<Section> getSection() {
return section;
}
public void setSection(List<Section> section) {
this.section = section;
}
@XmlAttribute(name = "multiplicity")
public Boolean getMultiplicity() {
return multiplicity;
}
public void setMultiplicity(Boolean multiplicity) {
this.multiplicity = multiplicity;
}
} }

View File

@ -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.XmlAttribute;
import jakarta.xml.bind.annotation.XmlElement; import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement; import jakarta.xml.bind.annotation.XmlRootElement;
@ -8,7 +11,7 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
@XmlRootElement(name = "sections") @XmlRootElement(name = "sections")
public class Sections { public class SectionsImportXml {
private String id; private String id;
private int ordinal; private int ordinal;
private String page; private String page;
@ -16,8 +19,8 @@ public class Sections {
private String numbering; private String numbering;
private String description; private String description;
private String title; private String title;
private List<Section> section; private List<SectionImportXml> section;
private FieldSets fieldSets; private FieldSetsImportXml fieldSets;
private Boolean multiplicity; private Boolean multiplicity;
@XmlAttribute(name = "id") @XmlAttribute(name = "id")
@ -84,20 +87,20 @@ public class Sections {
} }
@XmlElement(name = "section") @XmlElement(name = "section")
public List<Section> getSection() { public List<SectionImportXml> getSection() {
return section; return section;
} }
public void setSection(List<Section> section) { public void setSection(List<SectionImportXml> section) {
this.section = section; this.section = section;
} }
@XmlElement(name = "field-Sets") @XmlElement(name = "field-Sets")
public FieldSets getFieldSets() { public FieldSetsImportXml getFieldSets() {
return fieldSets; return fieldSets;
} }
public void setFieldSets(FieldSets fieldSets) { public void setFieldSets(FieldSetsImportXml fieldSets) {
this.fieldSets = fieldSets; this.fieldSets = fieldSets;
} }
@ -110,24 +113,22 @@ public class Sections {
this.multiplicity = multiplicity; this.multiplicity = multiplicity;
} }
public eu.eudat.models.data.admin.components.datasetprofile.Section toAdminCompositeModelSection() { public SectionPersist toPersistModel(FieldDataHelperServiceProvider fieldDataHelperServiceProvider) {
eu.eudat.models.data.admin.components.datasetprofile.Section sectionEntity = new eu.eudat.models.data.admin.components.datasetprofile.Section(); SectionPersist sectionEntity = new SectionPersist();
List<eu.eudat.models.data.admin.components.datasetprofile.Section> sectionsListEntity = new LinkedList<>(); List<SectionPersist> sectionsListEntity = new LinkedList<>();
if (this.section != null) { if (this.section != null) {
for (Section xmlsection : this.section) { for (SectionImportXml xmlsection : this.section) {
sectionsListEntity.add(xmlsection.toAdminCompositeModelSection()); sectionsListEntity.add(xmlsection.toPersistModel(fieldDataHelperServiceProvider));
} }
} /*else { }
sectionsListEntity.add(new eu.eudat.models.data.admin.components.datasetprofile.Section());
}*/
sectionEntity.setId(this.id); sectionEntity.setId(this.id);
sectionEntity.setOrdinal(this.ordinal); sectionEntity.setOrdinal(this.ordinal);
sectionEntity.setTitle(this.title); sectionEntity.setTitle(this.title);
sectionEntity.setDefaultVisibility(this.defaultVisibility); sectionEntity.setDefaultVisibility(this.defaultVisibility);
sectionEntity.setDescription(description); sectionEntity.setDescription(description);
sectionEntity.setPage(this.page); sectionEntity.setPage(this.page);
sectionEntity.setFieldSets(toAdminCompositeModelSectionFieldSets()); sectionEntity.setFieldSets(toFieldSetPersistModel(fieldDataHelperServiceProvider));
sectionEntity.setMultiplicity(this.multiplicity); sectionEntity.setMultiplicity(this.multiplicity);
@ -135,8 +136,8 @@ public class Sections {
return sectionEntity; return sectionEntity;
} }
public List<eu.eudat.models.data.admin.components.datasetprofile.FieldSet> toAdminCompositeModelSectionFieldSets() { public List<FieldSetPersist> toFieldSetPersistModel(FieldDataHelperServiceProvider fieldDataHelperServiceProvider) {
return fieldSets.toAdminCompositeModelSection(); return fieldSets.toPersistModel(fieldDataHelperServiceProvider);
} }
} }

View File

@ -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.XmlAttribute;
import jakarta.xml.bind.annotation.XmlRootElement; import jakarta.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "defaultValue") @XmlRootElement(name = "defaultValue")
public class DefaultValue { public class DefaultValueImportXml {
private String type; private String type;
private String value; private String value;
@ -28,10 +27,7 @@ public class DefaultValue {
this.value = value; this.value = value;
} }
public DefaultValueEntity toAdminCompositeModelSection(){ public String toPersistModel(){
DefaultValueEntity defaultValueEntity =new DefaultValueEntity(); return value;
defaultValueEntity.setValue(value);
defaultValueEntity.setType(type);
return defaultValueEntity;
} }
} }

View File

@ -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.FieldType;
import eu.eudat.commons.enums.FieldValidationType;
import eu.eudat.commons.types.descriptiontemplate.fielddata.BaseFieldDataEntity; import eu.eudat.commons.types.descriptiontemplate.fielddata.BaseFieldDataEntity;
import eu.eudat.commons.types.descriptiontemplate.fielddata.FieldDataHelper; 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 org.w3c.dom.Element;
import jakarta.xml.bind.annotation.XmlAttribute; import jakarta.xml.bind.annotation.XmlAttribute;
@ -12,7 +15,7 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
@XmlRootElement(name = "field") @XmlRootElement(name = "field")
public class Field { public class FieldImportXml {
private String id; private String id;
@ -20,17 +23,17 @@ public class Field {
private String numbering; private String numbering;
private List<validations> validations; private List<ValidationsImportXml> 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") @XmlAttribute(name = "id")
public String getId() { public String getId() {
@ -60,80 +63,82 @@ public class Field {
} }
@XmlElement(name = "validations") @XmlElement(name = "validations")
public List<eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel.Fields.validations> getValidations() { public List<ValidationsImportXml> getValidations() {
return validations; return validations;
} }
public void setValidations(List<eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel.Fields.validations> validations) { public void setValidations(List<ValidationsImportXml> validations) {
this.validations = validations; this.validations = validations;
} }
@XmlElement(name = "defaultValue") @XmlElement(name = "defaultValue")
public DefaultValue getDefaultValue() { public DefaultValueImportXml getDefaultValue() {
return defaultValue; return defaultValue;
} }
public void setDefaultValue(DefaultValue defaultValue) { public void setDefaultValue(DefaultValueImportXml defaultValue) {
this.defaultValue = defaultValue; this.defaultValue = defaultValue;
} }
@XmlElement(name = "visible") @XmlElement(name = "visible")
public Visible getVisible() { public VisibleImportXml getVisible() {
return visible; return visible;
} }
public void setVisible(Visible visible) { public void setVisible(VisibleImportXml visible) {
this.visible = visible; this.visible = visible;
} }
@XmlElement(name = "viewStyle") @XmlElement(name = "viewStyle")
public ViewStyle getViewStyle() { public ViewStyleImportXml getViewStyle() {
return viewStyle; return viewStyle;
} }
public void setViewStyle(ViewStyle viewStyle) { public void setViewStyle(ViewStyleImportXml viewStyle) {
this.viewStyle = viewStyle; this.viewStyle = viewStyle;
} }
@XmlElement(name = "data") @XmlElement(name = "data")
public Object getData() { public Element getData() {
return this.data; return this.data;
} }
public void setData(Object data) { public void setData(Element data) {
this.data = data; this.data = data;
} }
@XmlElement(name = "schematics") @XmlElement(name = "schematics")
public Schematics getSchematics() { public SchematicsImportXml getSchematics() {
return schematics; return schematics;
} }
public void setSchematics(Schematics schematics) { public void setSchematics(SchematicsImportXml schematics) {
this.schematics = schematics; this.schematics = schematics;
} }
public eu.eudat.models.data.admin.components.datasetprofile.Field toAdminCompositeModelSection() { public FieldPersist toPersistModel(FieldDataHelperServiceProvider fieldDataHelperServiceProvider) {
eu.eudat.models.data.admin.components.datasetprofile.Field fieldEntity =new eu.eudat.models.data.admin.components.datasetprofile.Field(); FieldPersist fieldEntity =new FieldPersist();
fieldEntity.setId(this.id); fieldEntity.setId(this.id);
fieldEntity.setOrdinal(this.ordinal); fieldEntity.setOrdinal(this.ordinal);
List<Integer> validationList = new LinkedList<>(); List<FieldValidationType> validationList = new LinkedList<>();
for(validations validation:this.validations){ for(ValidationsImportXml validation:this.validations){
if(validation.getValidation()!=null) if(validation.getValidation()!=null) {
validationList.add(validation.toAdminCompositeModelSection()); validationList.add(validation.toPersistModel());
}
} }
fieldEntity.setValidations(validationList); fieldEntity.setValidations(validationList);
fieldEntity.setDefaultValue(this.defaultValue.toAdminCompositeModelSection()); fieldEntity.setDefaultValue(this.defaultValue.toPersistModel());
fieldEntity.setVisible(this.visible.toAdminCompositeModelSection()); fieldEntity.setVisibilityRules(this.visible.toPersistModel());
fieldEntity.setViewStyle(this.viewStyle.toAdminCompositeModelSection()); FieldType fieldType = this.viewStyle.toPersistModel();
BaseFieldDataEntity data = new FieldDataHelper().toFieldData(null, FieldType.of(this.viewStyle.getRenderStyle()), (Element) this.data);
// fieldEntity.setData( data.fromXml((Element) this.data)); BaseFieldDataEntity<?> data = new FieldDataHelper().toFieldData(null, fieldType, (Element) this.data);
if (data != null) { 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<String> schematicsList = new LinkedList<>(); List<String> schematicsList = new LinkedList<>();
if (this.schematics != null && this.schematics.getSchematics() != null) { 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()) if (schematic != null && schematic.getSchematic() != null && !schematic.getSchematic().isEmpty())
schematicsList.add(schematic.getSchematic()); schematicsList.add(schematic.getSchematic());
} }

View File

@ -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<FieldImportXml> field;
@XmlElement(name = "field")
public List<FieldImportXml> getField() {
return field;
}
public void setField(List<FieldImportXml> field) {
this.field = field;
}
public List<FieldPersist> toPersistModel(FieldDataHelperServiceProvider fieldDataHelperServiceProvider) {
List<FieldPersist> fieldsEntity = new LinkedList<>();
if (this.field != null)
for (FieldImportXml xmlField : this.field) {
fieldsEntity.add(xmlField.toPersistModel(fieldDataHelperServiceProvider));
}
return fieldsEntity;
}
}

View File

@ -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.XmlAttribute;
import jakarta.xml.bind.annotation.XmlElement; import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement; import jakarta.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "rule") @XmlRootElement(name = "rule")
public class Rule { public class RuleImportXml {
private String ruleStyle; private String ruleStyle;
private String target; private String target;
private String type; private String type;
private Value value; private ValueImportXml value;
@XmlAttribute(name = "ruleStyle") @XmlAttribute(name = "ruleStyle")
public String getRuleStyle() { public String getRuleStyle() {
@ -38,18 +38,18 @@ public class Rule {
this.type = type; this.type = type;
} }
@XmlElement(name = "value") @XmlElement(name = "value")
public Value getValue() { public ValueImportXml getValue() {
return value; return value;
} }
public void setValue(Value value) { public void setValue(ValueImportXml value) {
this.value = value; this.value = value;
} }
public RuleEntity toAdminCompositeModelSection(){ public RulePersist toPersistModel(){
RuleEntity ruleEntity = new RuleEntity(); RulePersist ruleEntity = new RulePersist();
ruleEntity.setTarget(target); ruleEntity.setTarget(target);
ruleEntity.setValue(value.getValue()); ruleEntity.setValue(value.getValue());
return ruleEntity; return ruleEntity;
} }
} }

View File

@ -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.XmlRootElement;
import jakarta.xml.bind.annotation.XmlValue; import jakarta.xml.bind.annotation.XmlValue;
@XmlRootElement(name = "schematic") @XmlRootElement(name = "schematic")
public class Schematic { public class SchematicImportXml {
private String schematic; private String schematic;

View File

@ -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.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement; import jakarta.xml.bind.annotation.XmlRootElement;
import java.util.List; import java.util.List;
@XmlRootElement(name = "schematics") @XmlRootElement(name = "schematics")
public class Schematics { public class SchematicsImportXml {
private List<Schematic> schematics; private List<SchematicImportXml> schematics;
@XmlElement(name = "schematic") @XmlElement(name = "schematic")
public List<Schematic> getSchematics() { public List<SchematicImportXml> getSchematics() {
return schematics; return schematics;
} }
public void setSchematics(List<Schematic> schematics) { public void setSchematics(List<SchematicImportXml> schematics) {
this.schematics = schematics; this.schematics = schematics;
} }
} }

View File

@ -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.XmlAttribute;
import jakarta.xml.bind.annotation.XmlRootElement; import jakarta.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "validation") @XmlRootElement(name = "validation")
public class Validation { public class ValidationImportXml {
private int type; private int type;

View File

@ -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());
}
}

View File

@ -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.XmlAttribute;
import jakarta.xml.bind.annotation.XmlRootElement; import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlValue; import jakarta.xml.bind.annotation.XmlValue;
@XmlRootElement(name = "value") @XmlRootElement(name = "value")
public class Value { public class ValueImportXml {
private String type; private String type;
private String value; private String value;

View File

@ -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.enums.FieldType;
import eu.eudat.commons.types.descriptiontemplate.todelete.FieldDescriptionEntity;
import jakarta.xml.bind.annotation.XmlAttribute; import jakarta.xml.bind.annotation.XmlAttribute;
import jakarta.xml.bind.annotation.XmlRootElement; import jakarta.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "viewStyle") @XmlRootElement(name = "viewStyle")
public class ViewStyle { public class ViewStyleImportXml {
private String cssClass; private String cssClass;
private String renderStyle; private String renderStyle;
@ -29,10 +28,7 @@ public class ViewStyle {
this.renderStyle = renderStyle; this.renderStyle = renderStyle;
} }
public FieldDescriptionEntity toAdminCompositeModelSection(){ public FieldType toPersistModel(){
FieldDescriptionEntity fieldDescriptionEntity = new FieldDescriptionEntity(); return FieldType.of(this.renderStyle);
fieldDescriptionEntity.setCssClass(this.cssClass);
fieldDescriptionEntity.setFieldType(FieldType.of(this.renderStyle));
return fieldDescriptionEntity;
} }
} }

View File

@ -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<RuleImportXml> rule;
@XmlAttribute(name = "style")
public String getStyle() {
return style;
}
public void setStyle(String style) {
this.style = style;
}
@XmlElement(name = "rule")
public List<RuleImportXml> getRule() {
return rule;
}
public void setRule(List<RuleImportXml> rule) {
this.rule = rule;
}
public List<RulePersist> toPersistModel(){
List<RulePersist> rulePersists = new ArrayList<>();
if(this.rule!=null) {
for (RuleImportXml xmlRule : this.rule) {
rulePersists.add(xmlRule.toPersistModel());
}
}
return rulePersists;
}
}

View File

@ -3,7 +3,7 @@ package eu.eudat.model.persist.descriptiontemplatedefinition;
import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
public abstract class MultiplicityPersist { public class MultiplicityPersist {
@NotNull(message = "{validation.empty}") @NotNull(message = "{validation.empty}")
private Integer min = null; private Integer min = null;

View File

@ -10,10 +10,12 @@ import gr.cite.tools.exception.MyNotFoundException;
import gr.cite.tools.exception.MyValidationException; import gr.cite.tools.exception.MyValidationException;
import gr.cite.tools.fieldset.FieldSet; import gr.cite.tools.fieldset.FieldSet;
import jakarta.xml.bind.JAXBException; import jakarta.xml.bind.JAXBException;
import org.xml.sax.SAXException;
import javax.management.InvalidApplicationException; import javax.management.InvalidApplicationException;
import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerException;
import java.io.IOException;
import java.util.UUID; import java.util.UUID;
public interface DescriptionTemplateService { public interface DescriptionTemplateService {
@ -22,5 +24,5 @@ public interface DescriptionTemplateService {
void deleteAndSave(UUID id) throws MyForbiddenException, InvalidApplicationException; void deleteAndSave(UUID id) throws MyForbiddenException, InvalidApplicationException;
DescriptionTemplate buildClone(UUID id, FieldSet fields) throws MyForbiddenException, MyValidationException, MyApplicationException, MyNotFoundException; 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 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;
} }

View File

@ -10,9 +10,11 @@ import eu.eudat.commons.enums.UserDescriptionTemplateRole;
import eu.eudat.commons.scope.user.UserScope; import eu.eudat.commons.scope.user.UserScope;
import eu.eudat.commons.types.descriptiontemplate.*; import eu.eudat.commons.types.descriptiontemplate.*;
import eu.eudat.commons.types.descriptiontemplate.fielddata.BaseFieldDataEntity; import eu.eudat.commons.types.descriptiontemplate.fielddata.BaseFieldDataEntity;
import eu.eudat.commons.types.descriptiontemplate.importmodel.DescriptionTemplateImportXml;
import eu.eudat.convention.ConventionService; import eu.eudat.convention.ConventionService;
import eu.eudat.data.DescriptionTemplateEntity; import eu.eudat.data.DescriptionTemplateEntity;
import eu.eudat.data.UserDescriptionTemplateEntity; import eu.eudat.data.UserDescriptionTemplateEntity;
import eu.eudat.data.old.UserInfo;
import eu.eudat.errorcode.ErrorThesaurusProperties; import eu.eudat.errorcode.ErrorThesaurusProperties;
import eu.eudat.model.DescriptionTemplate; import eu.eudat.model.DescriptionTemplate;
import eu.eudat.model.builder.DescriptionTemplateBuilder; 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.DescriptionTemplateQuery;
import eu.eudat.query.UserDescriptionTemplateQuery; import eu.eudat.query.UserDescriptionTemplateQuery;
import eu.eudat.service.fielddatahelper.FieldDataHelperServiceProvider; 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.commons.web.authz.service.AuthorizationService;
import gr.cite.tools.data.builder.BuilderFactory; import gr.cite.tools.data.builder.BuilderFactory;
import gr.cite.tools.data.deleter.DeleterFactory; 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.fieldset.FieldSet;
import gr.cite.tools.logging.LoggerService; import gr.cite.tools.logging.LoggerService;
import gr.cite.tools.logging.MapLogEntry; import gr.cite.tools.logging.MapLogEntry;
import gr.cite.tools.validation.ValidationService;
import jakarta.persistence.EntityManager; import jakarta.persistence.EntityManager;
import jakarta.xml.bind.JAXBException; import jakarta.xml.bind.JAXBException;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -49,14 +54,19 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource; import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Service; 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.management.InvalidApplicationException;
import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerException;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.time.Instant; import java.time.Instant;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -80,6 +90,9 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic
private final FieldDataHelperServiceProvider fieldDataHelperServiceProvider; private final FieldDataHelperServiceProvider fieldDataHelperServiceProvider;
private final QueryFactory queryFactory; private final QueryFactory queryFactory;
private final ErrorThesaurusProperties errors; private final ErrorThesaurusProperties errors;
private final ValidationService validationService;
private final MailService mailService;
private final Environment environment;
@Autowired @Autowired
public DescriptionTemplateServiceImpl( public DescriptionTemplateServiceImpl(
@ -90,7 +103,7 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic
ConventionService conventionService, ConventionService conventionService,
MessageSource messageSource, MessageSource messageSource,
XmlHandlingService xmlHandlingService, XmlHandlingService xmlHandlingService,
FieldDataHelperServiceProvider fieldDataHelperServiceProvider, QueryFactory queryFactory, ErrorThesaurusProperties errors) { FieldDataHelperServiceProvider fieldDataHelperServiceProvider, QueryFactory queryFactory, ErrorThesaurusProperties errors, ValidationService validationService, MailService mailService, Environment environment) {
this.entityManager = entityManager; this.entityManager = entityManager;
this.userScope = userScope; this.userScope = userScope;
this.authorizationService = authorizationService; this.authorizationService = authorizationService;
@ -102,6 +115,9 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic
this.fieldDataHelperServiceProvider = fieldDataHelperServiceProvider; this.fieldDataHelperServiceProvider = fieldDataHelperServiceProvider;
this.queryFactory = queryFactory; this.queryFactory = queryFactory;
this.errors = errors; 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 { 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.setUser(userId);
data.setRole(UserDescriptionTemplateRole.Member); data.setRole(UserDescriptionTemplateRole.Member);
this.entityManager.persist(data); this.entityManager.persist(data);
this.sendJoinMail(data);
} }
} }
List<UUID> finalUsers = users; List<UUID> finalUsers = users;
List<UserDescriptionTemplateEntity> toDelete = items.stream().filter(x-> finalUsers.stream().noneMatch(y-> y.equals(x.getUser()))).collect(Collectors.toList()); List<UserDescriptionTemplateEntity> toDelete = items.stream().filter(x-> finalUsers.stream().noneMatch(y-> y.equals(x.getUser()))).collect(Collectors.toList());
this.deleterFactory.deleter(UserDescriptionTemplateDeleter.class).delete(toDelete); 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 { private void addOwner(DescriptionTemplateEntity descriptionTemplateEntity) throws InvalidApplicationException {
UserDescriptionTemplateEntity data = new UserDescriptionTemplateEntity(); UserDescriptionTemplateEntity data = new UserDescriptionTemplateEntity();
data.setId(UUID.randomUUID()); 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); 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);
}
}
} }

View File

@ -20,6 +20,7 @@ import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope; import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.w3c.dom.Element;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.EnumSet; import java.util.EnumSet;
@ -42,17 +43,17 @@ public class AutoCompleteFieldDataHelperService extends BaseFieldDataHelperServi
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public AutoCompleteDataEntity newDataInstanceInternal() {
return new AutoCompleteDataEntity(); return new AutoCompleteDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public AutoCompleteData newModelInstanceInternal() {
return new AutoCompleteData(); return new AutoCompleteData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public AutoCompleteDataPersist newPersistModelInstanceInternal() {
return new AutoCompleteDataPersist(); return new AutoCompleteDataPersist();
} }
@ -126,4 +127,56 @@ public class AutoCompleteFieldDataHelperService extends BaseFieldDataHelperServi
return data; 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;
}
} }

View File

@ -2,20 +2,48 @@ package eu.eudat.service.fielddatahelper;
import eu.eudat.authorization.AuthorizationFlags; import eu.eudat.authorization.AuthorizationFlags;
import eu.eudat.commons.types.descriptiontemplate.fielddata.BaseFieldDataEntity; 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.BaseFieldData;
import eu.eudat.model.descriptiontemplatedefinition.fielddata.BooleanDecisionData;
import eu.eudat.model.persist.descriptiontemplatedefinition.fielddata.BaseFieldDataPersist; import eu.eudat.model.persist.descriptiontemplatedefinition.fielddata.BaseFieldDataPersist;
import eu.eudat.model.persist.descriptiontemplatedefinition.fielddata.BooleanDecisionDataPersist;
import gr.cite.tools.fieldset.FieldSet; import gr.cite.tools.fieldset.FieldSet;
import org.w3c.dom.Element;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public abstract class BaseFieldDataHelperService<M extends BaseFieldData, PM extends BaseFieldDataPersist, D extends BaseFieldDataEntity<?>> implements FieldDataHelperService { public abstract class BaseFieldDataHelperService<M extends BaseFieldData, PM extends BaseFieldDataPersist, D extends BaseFieldDataEntity<?>> implements FieldDataHelperService {
protected String subType; protected abstract D newDataInstanceInternal();
protected abstract M newModelInstanceInternal();
protected abstract PM newPersistModelInstanceInternal();
protected abstract List<M> buildInternal(FieldSet fieldSet, List<D> datas, EnumSet<AuthorizationFlags> authorizationFlags); protected abstract List<M> buildInternal(FieldSet fieldSet, List<D> datas, EnumSet<AuthorizationFlags> authorizationFlags);
protected abstract D applyPersistInternal(PM persist, D data); 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 @Override
public BaseFieldDataEntity<?> applyPersist(BaseFieldDataPersist persist){ public BaseFieldDataEntity<?> applyPersist(BaseFieldDataPersist persist){
BaseFieldDataEntity<?> instance = this.newDataInstance(); BaseFieldDataEntity<?> instance = this.newDataInstance();

View File

@ -17,6 +17,7 @@ import gr.cite.tools.fieldset.FieldSet;
import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope; import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.w3c.dom.Element;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.EnumSet; import java.util.EnumSet;
@ -36,17 +37,17 @@ public class BooleanDecisionFieldDataHelperService extends BaseFieldDataHelperSe
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public BooleanDecisionDataEntity newDataInstanceInternal() {
return new BooleanDecisionDataEntity(); return new BooleanDecisionDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public BooleanDecisionData newModelInstanceInternal() {
return new BooleanDecisionData(); return new BooleanDecisionData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public BooleanDecisionDataPersist newPersistModelInstanceInternal() {
return new BooleanDecisionDataPersist(); return new BooleanDecisionDataPersist();
} }
@ -58,7 +59,6 @@ public class BooleanDecisionFieldDataHelperService extends BaseFieldDataHelperSe
public Class<?> getModelClass() { public Class<?> getModelClass() {
return BooleanDecisionData.class; return BooleanDecisionData.class;
} }
@Override @Override
public Class<?> getPersistModelClass() { public Class<?> getPersistModelClass() {
return BooleanDecisionDataPersist.class; return BooleanDecisionDataPersist.class;
@ -73,4 +73,10 @@ public class BooleanDecisionFieldDataHelperService extends BaseFieldDataHelperSe
protected BooleanDecisionDataEntity applyPersistInternal(BooleanDecisionDataPersist persist, BooleanDecisionDataEntity data) { protected BooleanDecisionDataEntity applyPersistInternal(BooleanDecisionDataPersist persist, BooleanDecisionDataEntity data) {
return data; return data;
} }
@Override
protected BooleanDecisionDataPersist mapDataToPersist(BooleanDecisionDataEntity data, BooleanDecisionDataPersist persist) {
return persist;
}
} }

View File

@ -36,17 +36,17 @@ public class CheckBoxFieldDataHelperService extends BaseFieldDataHelperService<C
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public CheckBoxDataEntity newDataInstanceInternal() {
return new CheckBoxDataEntity(); return new CheckBoxDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public CheckBoxData newModelInstanceInternal() {
return new CheckBoxData(); return new CheckBoxData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public CheckBoxDataPersist newPersistModelInstanceInternal() {
return new CheckBoxDataPersist(); return new CheckBoxDataPersist();
} }
@ -73,4 +73,9 @@ public class CheckBoxFieldDataHelperService extends BaseFieldDataHelperService<C
protected CheckBoxDataEntity applyPersistInternal(CheckBoxDataPersist persist, CheckBoxDataEntity data) { protected CheckBoxDataEntity applyPersistInternal(CheckBoxDataPersist persist, CheckBoxDataEntity data) {
return data; return data;
} }
@Override
protected CheckBoxDataPersist mapDataToPersist(CheckBoxDataEntity data, CheckBoxDataPersist persist) {
return persist;
}
} }

View File

@ -34,17 +34,17 @@ public class CurrencyFieldDataHelperService extends BaseFieldDataHelperService<C
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public CurrencyDataEntity newDataInstanceInternal() {
return new CurrencyDataEntity(); return new CurrencyDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public CurrencyData newModelInstanceInternal() {
return new CurrencyData(); return new CurrencyData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public CurrencyDataPersist newPersistModelInstanceInternal() {
return new CurrencyDataPersist(); return new CurrencyDataPersist();
} }
@ -70,4 +70,9 @@ public class CurrencyFieldDataHelperService extends BaseFieldDataHelperService<C
protected CurrencyDataEntity applyPersistInternal(CurrencyDataPersist persist, CurrencyDataEntity data) { protected CurrencyDataEntity applyPersistInternal(CurrencyDataPersist persist, CurrencyDataEntity data) {
return data; return data;
} }
@Override
protected CurrencyDataPersist mapDataToPersist(CurrencyDataEntity data, CurrencyDataPersist persist) {
return persist;
}
} }

View File

@ -38,17 +38,17 @@ public class DataRepositoryFieldDataHelperService extends BaseFieldDataHelperSer
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public DataRepositoryDataEntity newDataInstanceInternal() {
return new DataRepositoryDataEntity(); return new DataRepositoryDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public DataRepositoryData newModelInstanceInternal() {
return new DataRepositoryData(); return new DataRepositoryData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public DataRepositoryDataPersist newPersistModelInstanceInternal() {
return new DataRepositoryDataPersist(); return new DataRepositoryDataPersist();
} }
@ -75,4 +75,10 @@ public class DataRepositoryFieldDataHelperService extends BaseFieldDataHelperSer
data.setMultiAutoComplete(persist.getMultiAutoComplete()); data.setMultiAutoComplete(persist.getMultiAutoComplete());
return data; return data;
} }
@Override
protected DataRepositoryDataPersist mapDataToPersist(DataRepositoryDataEntity data, DataRepositoryDataPersist persist) {
persist.setMultiAutoComplete(data.getMultiAutoComplete());
return persist;
}
} }

View File

@ -36,17 +36,17 @@ public class DatasetAutoCompleteFieldDataHelperService extends BaseFieldDataHelp
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public DatasetAutoCompleteDataEntity newDataInstanceInternal() {
return new DatasetAutoCompleteDataEntity(); return new DatasetAutoCompleteDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public DatasetAutoCompleteData newModelInstanceInternal() {
return new DatasetAutoCompleteData(); return new DatasetAutoCompleteData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public DatasetAutoCompleteDataPersist newPersistModelInstanceInternal() {
return new DatasetAutoCompleteDataPersist(); return new DatasetAutoCompleteDataPersist();
} }
@ -74,4 +74,10 @@ public class DatasetAutoCompleteFieldDataHelperService extends BaseFieldDataHelp
data.setMultiAutoComplete(persist.getMultiAutoComplete()); data.setMultiAutoComplete(persist.getMultiAutoComplete());
return data; return data;
} }
@Override
protected DatasetAutoCompleteDataPersist mapDataToPersist(DatasetAutoCompleteDataEntity data, DatasetAutoCompleteDataPersist persist) {
persist.setMultiAutoComplete(data.getMultiAutoComplete());
return persist;
}
} }

View File

@ -29,24 +29,23 @@ public class DatasetIdentifierFieldDataHelperService extends BaseFieldDataHelper
this.builderFactory = builderFactory; this.builderFactory = builderFactory;
} }
@Override @Override
public FieldType getFormType() { public FieldType getFormType() {
return FieldType.DATASET_IDENTIFIER; return FieldType.DATASET_IDENTIFIER;
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public DatasetIdentifierDataEntity newDataInstanceInternal() {
return new DatasetIdentifierDataEntity(); return new DatasetIdentifierDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public DatasetIdentifierData newModelInstanceInternal() {
return new DatasetIdentifierData(); return new DatasetIdentifierData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public DatasetIdentifierDataPersist newPersistModelInstanceInternal() {
return new DatasetIdentifierDataPersist(); return new DatasetIdentifierDataPersist();
} }
@ -72,4 +71,9 @@ public class DatasetIdentifierFieldDataHelperService extends BaseFieldDataHelper
protected DatasetIdentifierDataEntity applyPersistInternal(DatasetIdentifierDataPersist persist, DatasetIdentifierDataEntity data) { protected DatasetIdentifierDataEntity applyPersistInternal(DatasetIdentifierDataPersist persist, DatasetIdentifierDataEntity data) {
return data; return data;
} }
@Override
protected DatasetIdentifierDataPersist mapDataToPersist(DatasetIdentifierDataEntity data, DatasetIdentifierDataPersist persist) {
return persist;
}
} }

View File

@ -36,16 +36,16 @@ public class DatePickerFieldDataHelperService extends BaseFieldDataHelperService
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public DatePickerDataEntity newDataInstanceInternal() {
return new DatePickerDataEntity(); return new DatePickerDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public DatePickerData newModelInstanceInternal() {
return new DatePickerData(); return new DatePickerData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public DatePickerDataPersist newPersistModelInstanceInternal() {
return new DatePickerDataPersist(); return new DatePickerDataPersist();
} }
@ -71,4 +71,9 @@ public class DatePickerFieldDataHelperService extends BaseFieldDataHelperService
protected DatePickerDataEntity applyPersistInternal(DatePickerDataPersist persist, DatePickerDataEntity data) { protected DatePickerDataEntity applyPersistInternal(DatePickerDataPersist persist, DatePickerDataEntity data) {
return data; return data;
} }
@Override
protected DatePickerDataPersist mapDataToPersist(DatePickerDataEntity data, DatePickerDataPersist persist) {
return persist;
}
} }

View File

@ -36,17 +36,17 @@ public class DmpAutoCompleteFieldDataHelperService extends BaseFieldDataHelperSe
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public DmpAutoCompleteDataEntity newDataInstanceInternal() {
return new DmpAutoCompleteDataEntity(); return new DmpAutoCompleteDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public DmpAutoCompleteData newModelInstanceInternal() {
return new DmpAutoCompleteData(); return new DmpAutoCompleteData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public DmpAutoCompleteDataPersist newPersistModelInstanceInternal() {
return new DmpAutoCompleteDataPersist(); return new DmpAutoCompleteDataPersist();
} }
@ -74,4 +74,10 @@ public class DmpAutoCompleteFieldDataHelperService extends BaseFieldDataHelperSe
data.setMultiAutoComplete(persist.getMultiAutoComplete()); data.setMultiAutoComplete(persist.getMultiAutoComplete());
return data; return data;
} }
@Override
protected DmpAutoCompleteDataPersist mapDataToPersist(DmpAutoCompleteDataEntity data, DmpAutoCompleteDataPersist persist) {
persist.setMultiAutoComplete(data.getMultiAutoComplete());
return persist;
}
} }

View File

@ -36,17 +36,17 @@ public class ExternalDatasetFieldDataHelperService extends BaseFieldDataHelperSe
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public ExternalDatasetDataEntity newDataInstanceInternal() {
return new ExternalDatasetDataEntity(); return new ExternalDatasetDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public ExternalDatasetData newModelInstanceInternal() {
return new ExternalDatasetData(); return new ExternalDatasetData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public ExternalDatasetDataPersist newPersistModelInstanceInternal() {
return new ExternalDatasetDataPersist(); return new ExternalDatasetDataPersist();
} }
@ -74,4 +74,11 @@ public class ExternalDatasetFieldDataHelperService extends BaseFieldDataHelperSe
data.setType(persist.getType()); data.setType(persist.getType());
return data; return data;
} }
@Override
protected ExternalDatasetDataPersist mapDataToPersist(ExternalDatasetDataEntity data, ExternalDatasetDataPersist persist) {
persist.setMultiAutoComplete(data.getMultiAutoComplete());
persist.setType(data.getType());
return persist;
}
} }

View File

@ -6,6 +6,7 @@ import eu.eudat.commons.types.descriptiontemplate.fielddata.BaseFieldDataEntity;
import eu.eudat.model.descriptiontemplatedefinition.fielddata.BaseFieldData; import eu.eudat.model.descriptiontemplatedefinition.fielddata.BaseFieldData;
import eu.eudat.model.persist.descriptiontemplatedefinition.fielddata.BaseFieldDataPersist; import eu.eudat.model.persist.descriptiontemplatedefinition.fielddata.BaseFieldDataPersist;
import gr.cite.tools.fieldset.FieldSet; import gr.cite.tools.fieldset.FieldSet;
import org.w3c.dom.Element;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.List; import java.util.List;
@ -22,4 +23,5 @@ public interface FieldDataHelperService {
BaseFieldData buildOne(FieldSet fieldSet, BaseFieldDataEntity<?> data, EnumSet<AuthorizationFlags> authorizationFlags); BaseFieldData buildOne(FieldSet fieldSet, BaseFieldDataEntity<?> data, EnumSet<AuthorizationFlags> authorizationFlags);
BaseFieldDataEntity<?> applyPersist(BaseFieldDataPersist persist); BaseFieldDataEntity<?> applyPersist(BaseFieldDataPersist persist);
BaseFieldDataEntity<?> applyPersist(BaseFieldDataPersist persist, BaseFieldDataEntity<?> data); BaseFieldDataEntity<?> applyPersist(BaseFieldDataPersist persist, BaseFieldDataEntity<?> data);
BaseFieldDataPersist mapDataToPersist(BaseFieldDataEntity<?> data);
} }

View File

@ -36,17 +36,17 @@ public class FreeTextFieldDataHelperService extends BaseFieldDataHelperService<F
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public FreeTextDataEntity newDataInstanceInternal() {
return new FreeTextDataEntity(); return new FreeTextDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public FreeTextData newModelInstanceInternal() {
return new FreeTextData(); return new FreeTextData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public FreeTextDataPersist newPersistModelInstanceInternal() {
return new FreeTextDataPersist(); return new FreeTextDataPersist();
} }
@ -73,4 +73,9 @@ public class FreeTextFieldDataHelperService extends BaseFieldDataHelperService<F
protected FreeTextDataEntity applyPersistInternal(FreeTextDataPersist persist, FreeTextDataEntity data) { protected FreeTextDataEntity applyPersistInternal(FreeTextDataPersist persist, FreeTextDataEntity data) {
return data; return data;
} }
@Override
protected FreeTextDataPersist mapDataToPersist(FreeTextDataEntity data, FreeTextDataPersist persist) {
return persist;
}
} }

View File

@ -38,17 +38,17 @@ public class JournalRepositoryFieldDataHelperService extends BaseFieldDataHelper
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public JournalRepositoryDataEntity newDataInstanceInternal() {
return new JournalRepositoryDataEntity(); return new JournalRepositoryDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public JournalRepositoryData newModelInstanceInternal() {
return new JournalRepositoryData(); return new JournalRepositoryData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public JournalRepositoryDataPersist newPersistModelInstanceInternal() {
return new JournalRepositoryDataPersist(); return new JournalRepositoryDataPersist();
} }
@ -75,4 +75,10 @@ public class JournalRepositoryFieldDataHelperService extends BaseFieldDataHelper
data.setMultiAutoComplete(persist.getMultiAutoComplete()); data.setMultiAutoComplete(persist.getMultiAutoComplete());
return data; return data;
} }
@Override
protected JournalRepositoryDataPersist mapDataToPersist(JournalRepositoryDataEntity data, JournalRepositoryDataPersist persist) {
persist.setMultiAutoComplete(data.getMultiAutoComplete());
return persist;
}
} }

View File

@ -36,17 +36,17 @@ public class LicenseFieldDataHelperService extends BaseFieldDataHelperService<Li
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public LicenseDataEntity newDataInstanceInternal() {
return new LicenseDataEntity(); return new LicenseDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public LicenseData newModelInstanceInternal() {
return new LicenseData(); return new LicenseData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public LicenseDataPersist newPersistModelInstanceInternal() {
return new LicenseDataPersist(); return new LicenseDataPersist();
} }
@ -73,4 +73,10 @@ public class LicenseFieldDataHelperService extends BaseFieldDataHelperService<Li
data.setMultiAutoComplete(persist.getMultiAutoComplete()); data.setMultiAutoComplete(persist.getMultiAutoComplete());
return data; return data;
} }
@Override
protected LicenseDataPersist mapDataToPersist(LicenseDataEntity data, LicenseDataPersist persist) {
persist.setMultiAutoComplete(data.getMultiAutoComplete());
return persist;
}
} }

View File

@ -36,17 +36,17 @@ public class OrganizationFieldDataHelperService extends BaseFieldDataHelperServi
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public OrganizationDataEntity newDataInstanceInternal() {
return new OrganizationDataEntity(); return new OrganizationDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public OrganizationData newModelInstanceInternal() {
return new OrganizationData(); return new OrganizationData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public OrganizationDataPersist newPersistModelInstanceInternal() {
return new OrganizationDataPersist(); return new OrganizationDataPersist();
} }
@ -73,4 +73,10 @@ public class OrganizationFieldDataHelperService extends BaseFieldDataHelperServi
data.setMultiAutoComplete(persist.getMultiAutoComplete()); data.setMultiAutoComplete(persist.getMultiAutoComplete());
return data; return data;
} }
@Override
protected OrganizationDataPersist mapDataToPersist(OrganizationDataEntity data, OrganizationDataPersist persist) {
persist.setMultiAutoComplete(data.getMultiAutoComplete());
return persist;
}
} }

View File

@ -36,17 +36,17 @@ public class PublicationFieldDataHelperService extends BaseFieldDataHelperServic
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public PublicationDataEntity newDataInstanceInternal() {
return new PublicationDataEntity(); return new PublicationDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public PublicationData newModelInstanceInternal() {
return new PublicationData(); return new PublicationData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public PublicationDataPersist newPersistModelInstanceInternal() {
return new PublicationDataPersist(); return new PublicationDataPersist();
} }
@ -73,4 +73,10 @@ public class PublicationFieldDataHelperService extends BaseFieldDataHelperServic
data.setMultiAutoComplete(persist.getMultiAutoComplete()); data.setMultiAutoComplete(persist.getMultiAutoComplete());
return data; return data;
} }
@Override
protected PublicationDataPersist mapDataToPersist(PublicationDataEntity data, PublicationDataPersist persist) {
persist.setMultiAutoComplete(data.getMultiAutoComplete());
return persist;
}
} }

View File

@ -38,17 +38,17 @@ public class PublicationRepositoryFieldDataHelperService extends BaseFieldDataHe
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public PublicationRepositoryDataEntity newDataInstanceInternal() {
return new PublicationRepositoryDataEntity(); return new PublicationRepositoryDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public PublicationRepositoryData newModelInstanceInternal() {
return new PublicationRepositoryData(); return new PublicationRepositoryData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public PublicationRepositoryDataPersist newPersistModelInstanceInternal() {
return new PublicationRepositoryDataPersist(); return new PublicationRepositoryDataPersist();
} }
@ -75,4 +75,10 @@ public class PublicationRepositoryFieldDataHelperService extends BaseFieldDataHe
data.setMultiAutoComplete(persist.getMultiAutoComplete()); data.setMultiAutoComplete(persist.getMultiAutoComplete());
return data; return data;
} }
@Override
protected PublicationRepositoryDataPersist mapDataToPersist(PublicationRepositoryDataEntity data, PublicationRepositoryDataPersist persist) {
persist.setMultiAutoComplete(data.getMultiAutoComplete());
return persist;
}
} }

View File

@ -42,17 +42,17 @@ public class RadioBoxFieldDataHelperService extends BaseFieldDataHelperService<R
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public RadioBoxDataEntity newDataInstanceInternal() {
return new RadioBoxDataEntity(); return new RadioBoxDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public RadioBoxData newModelInstanceInternal() {
return new RadioBoxData(); return new RadioBoxData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public RadioBoxDataPersist newPersistModelInstanceInternal() {
return new RadioBoxDataPersist(); return new RadioBoxDataPersist();
} }
@ -84,7 +84,6 @@ public class RadioBoxFieldDataHelperService extends BaseFieldDataHelperService<R
} }
return data; return data;
} }
private @NotNull RadioBoxDataEntity.Option buildOption(RadioBoxOptionPersist persist){ private @NotNull RadioBoxDataEntity.Option buildOption(RadioBoxOptionPersist persist){
RadioBoxDataEntity.Option data = new RadioBoxDataEntity.Option(); RadioBoxDataEntity.Option data = new RadioBoxDataEntity.Option();
if (persist == null) return data; if (persist == null) return data;
@ -94,4 +93,26 @@ public class RadioBoxFieldDataHelperService extends BaseFieldDataHelperService<R
return data; return data;
} }
@Override
protected RadioBoxDataPersist mapDataToPersist(RadioBoxDataEntity data, RadioBoxDataPersist persist) {
if (!this.conventionService.isListNullOrEmpty(data.getOptions())){
persist.setOptions(new ArrayList<>());
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;
}
} }

View File

@ -36,17 +36,17 @@ public class RegistryFieldDataHelperService extends BaseFieldDataHelperService<R
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public RegistryDataEntity newDataInstanceInternal() {
return new RegistryDataEntity(); return new RegistryDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public RegistryData newModelInstanceInternal() {
return new RegistryData(); return new RegistryData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public RegistryDataPersist newPersistModelInstanceInternal() {
return new RegistryDataPersist(); return new RegistryDataPersist();
} }
@ -73,4 +73,10 @@ public class RegistryFieldDataHelperService extends BaseFieldDataHelperService<R
data.setMultiAutoComplete(persist.getMultiAutoComplete()); data.setMultiAutoComplete(persist.getMultiAutoComplete());
return data; return data;
} }
@Override
protected RegistryDataPersist mapDataToPersist(RegistryDataEntity data, RegistryDataPersist persist) {
persist.setMultiAutoComplete(data.getMultiAutoComplete());
return persist;
}
} }

View File

@ -36,17 +36,17 @@ public class ResearcherAutoCompleteFieldDataHelperService extends BaseFieldDataH
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public ResearcherAutoCompleteDataEntity newDataInstanceInternal() {
return new ResearcherAutoCompleteDataEntity(); return new ResearcherAutoCompleteDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public ResearcherAutoCompleteData newModelInstanceInternal() {
return new ResearcherAutoCompleteData(); return new ResearcherAutoCompleteData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public ResearcherAutoCompleteDataPersist newPersistModelInstanceInternal() {
return new ResearcherAutoCompleteDataPersist(); return new ResearcherAutoCompleteDataPersist();
} }
@ -73,4 +73,10 @@ public class ResearcherAutoCompleteFieldDataHelperService extends BaseFieldDataH
data.setMultiAutoComplete(persist.getMultiAutoComplete()); data.setMultiAutoComplete(persist.getMultiAutoComplete());
return data; return data;
} }
@Override
protected ResearcherAutoCompleteDataPersist mapDataToPersist(ResearcherAutoCompleteDataEntity data, ResearcherAutoCompleteDataPersist persist) {
persist.setMultiAutoComplete(data.getMultiAutoComplete());
return persist;
}
} }

View File

@ -36,17 +36,17 @@ public class ResearcherFieldDataHelperService extends BaseFieldDataHelperService
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public ResearcherDataEntity newDataInstanceInternal() {
return new ResearcherDataEntity(); return new ResearcherDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public ResearcherData newModelInstanceInternal() {
return new ResearcherData(); return new ResearcherData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public ResearcherDataPersist newPersistModelInstanceInternal() {
return new ResearcherDataPersist(); return new ResearcherDataPersist();
} }
@ -73,4 +73,10 @@ public class ResearcherFieldDataHelperService extends BaseFieldDataHelperService
data.setMultiAutoComplete(persist.getMultiAutoComplete()); data.setMultiAutoComplete(persist.getMultiAutoComplete());
return data; return data;
} }
@Override
protected ResearcherDataPersist mapDataToPersist(ResearcherDataEntity data, ResearcherDataPersist persist) {
persist.setMultiAutoComplete(data.getMultiAutoComplete());
return persist;
}
} }

View File

@ -36,17 +36,17 @@ public class RichTextAreaDataFieldDataHelperService extends BaseFieldDataHelperS
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public RichTextAreaDataEntity newDataInstanceInternal() {
return new RichTextAreaDataEntity(); return new RichTextAreaDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public RichTextAreaData newModelInstanceInternal() {
return new RichTextAreaData(); return new RichTextAreaData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public RichTextAreaDataPersist newPersistModelInstanceInternal() {
return new RichTextAreaDataPersist(); return new RichTextAreaDataPersist();
} }
@ -73,4 +73,9 @@ public class RichTextAreaDataFieldDataHelperService extends BaseFieldDataHelperS
protected RichTextAreaDataEntity applyPersistInternal(RichTextAreaDataPersist persist, RichTextAreaDataEntity data) { protected RichTextAreaDataEntity applyPersistInternal(RichTextAreaDataPersist persist, RichTextAreaDataEntity data) {
return data; return data;
} }
@Override
protected RichTextAreaDataPersist mapDataToPersist(RichTextAreaDataEntity data, RichTextAreaDataPersist persist) {
return persist;
}
} }

View File

@ -36,17 +36,17 @@ public class ServiceFieldDataHelperService extends BaseFieldDataHelperService<Se
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public ServiceDataEntity newDataInstanceInternal() {
return new ServiceDataEntity(); return new ServiceDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public ServiceData newModelInstanceInternal() {
return new ServiceData(); return new ServiceData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public ServiceDataPersist newPersistModelInstanceInternal() {
return new ServiceDataPersist(); return new ServiceDataPersist();
} }
@ -73,4 +73,10 @@ public class ServiceFieldDataHelperService extends BaseFieldDataHelperService<Se
data.setMultiAutoComplete(persist.getMultiAutoComplete()); data.setMultiAutoComplete(persist.getMultiAutoComplete());
return data; return data;
} }
@Override
protected ServiceDataPersist mapDataToPersist(ServiceDataEntity data, ServiceDataPersist persist) {
persist.setMultiAutoComplete(data.getMultiAutoComplete());
return persist;
}
} }

View File

@ -36,17 +36,17 @@ public class TagFieldDataHelperService extends BaseFieldDataHelperService<TagDat
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public TagDataEntity newDataInstanceInternal() {
return new TagDataEntity(); return new TagDataEntity();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public TagDataPersist newPersistModelInstanceInternal() {
return new TagDataPersist(); return new TagDataPersist();
} }
@Override @Override
public BaseFieldData newModelInstance() { public TagData newModelInstanceInternal() {
return new TagData(); return new TagData();
} }
@ -73,4 +73,9 @@ public class TagFieldDataHelperService extends BaseFieldDataHelperService<TagDat
protected TagDataEntity applyPersistInternal(TagDataPersist persist, TagDataEntity data) { protected TagDataEntity applyPersistInternal(TagDataPersist persist, TagDataEntity data) {
return data; return data;
} }
@Override
protected TagDataPersist mapDataToPersist(TagDataEntity data, TagDataPersist persist) {
return persist;
}
} }

View File

@ -36,17 +36,17 @@ public class TaxonomyFieldDataHelperService extends BaseFieldDataHelperService<T
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public TaxonomyDataEntity newDataInstanceInternal() {
return new TaxonomyDataEntity(); return new TaxonomyDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public TaxonomyData newModelInstanceInternal() {
return new TaxonomyData(); return new TaxonomyData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public TaxonomyDataPersist newPersistModelInstanceInternal() {
return new TaxonomyDataPersist(); return new TaxonomyDataPersist();
} }
@ -73,4 +73,10 @@ public class TaxonomyFieldDataHelperService extends BaseFieldDataHelperService<T
data.setMultiAutoComplete(persist.getMultiAutoComplete()); data.setMultiAutoComplete(persist.getMultiAutoComplete());
return data; return data;
} }
@Override
protected TaxonomyDataPersist mapDataToPersist(TaxonomyDataEntity data, TaxonomyDataPersist persist) {
persist.setMultiAutoComplete(data.getMultiAutoComplete());
return persist;
}
} }

View File

@ -36,17 +36,17 @@ public class TextAreaFieldDataHelperService extends BaseFieldDataHelperService<T
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public TextAreaDataEntity newDataInstanceInternal() {
return new TextAreaDataEntity(); return new TextAreaDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public TextAreaData newModelInstanceInternal() {
return new TextAreaData(); return new TextAreaData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public TextAreaDataPersist newPersistModelInstanceInternal() {
return new TextAreaDataPersist(); return new TextAreaDataPersist();
} }
@ -72,4 +72,9 @@ public class TextAreaFieldDataHelperService extends BaseFieldDataHelperService<T
protected TextAreaDataEntity applyPersistInternal(TextAreaDataPersist persist, TextAreaDataEntity data) { protected TextAreaDataEntity applyPersistInternal(TextAreaDataPersist persist, TextAreaDataEntity data) {
return data; return data;
} }
@Override
protected TextAreaDataPersist mapDataToPersist(TextAreaDataEntity data, TextAreaDataPersist persist) {
return persist;
}
} }

View File

@ -39,17 +39,17 @@ public class UploadFieldDataHelperService extends BaseFieldDataHelperService<Upl
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public UploadDataEntity newDataInstanceInternal() {
return new UploadDataEntity(); return new UploadDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public UploadData newModelInstanceInternal() {
return new UploadData(); return new UploadData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public UploadDataPersist newPersistModelInstanceInternal() {
return new UploadDataPersist(); return new UploadDataPersist();
} }
@ -81,7 +81,7 @@ public class UploadFieldDataHelperService extends BaseFieldDataHelperService<Upl
} }
return data; return data;
} }
private @NotNull UploadDataEntity.Option buildOption(UploadOptionPersist persist){ private @NotNull UploadDataEntity.Option buildOption(UploadOptionPersist persist){
UploadDataEntity.Option data = new UploadDataEntity.Option(); UploadDataEntity.Option data = new UploadDataEntity.Option();
if (persist == null) return data; if (persist == null) return data;
@ -91,4 +91,25 @@ public class UploadFieldDataHelperService extends BaseFieldDataHelperService<Upl
return data; return data;
} }
@Override
protected UploadDataPersist mapDataToPersist(UploadDataEntity data, UploadDataPersist persist) {
if (!this.conventionService.isListNullOrEmpty(data.getTypes())){
persist.setTypes(new ArrayList<>());
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;
}
} }

View File

@ -36,17 +36,17 @@ public class ValidationFieldDataHelperService extends BaseFieldDataHelperService
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public ValidationDataEntity newDataInstanceInternal() {
return new ValidationDataEntity(); return new ValidationDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public ValidationData newModelInstanceInternal() {
return new ValidationData(); return new ValidationData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public ValidationDataPersist newPersistModelInstanceInternal() {
return new ValidationDataPersist(); return new ValidationDataPersist();
} }
@ -72,4 +72,9 @@ public class ValidationFieldDataHelperService extends BaseFieldDataHelperService
protected ValidationDataEntity applyPersistInternal(ValidationDataPersist persist, ValidationDataEntity data) { protected ValidationDataEntity applyPersistInternal(ValidationDataPersist persist, ValidationDataEntity data) {
return data; return data;
} }
@Override
protected ValidationDataPersist mapDataToPersist(ValidationDataEntity data, ValidationDataPersist persist) {
return persist;
}
} }

View File

@ -38,17 +38,17 @@ public class WordListFieldDataHelperService extends BaseFieldDataHelperService<W
} }
@Override @Override
public BaseFieldDataEntity<?> newDataInstance() { public WordListDataEntity newDataInstanceInternal() {
return new WordListDataEntity(); return new WordListDataEntity();
} }
@Override @Override
public BaseFieldData newModelInstance() { public WordListData newModelInstanceInternal() {
return new WordListData(); return new WordListData();
} }
@Override @Override
public BaseFieldDataPersist newPersistModelInstance() { public WordListDataPersist newPersistModelInstanceInternal() {
return new WordListDataPersist(); return new WordListDataPersist();
} }
@ -81,6 +81,7 @@ public class WordListFieldDataHelperService extends BaseFieldDataHelperService<W
} }
return data; return data;
} }
private @NotNull ComboBoxDataEntity.Option buildOption(ComboBoxOptionPersist persist){ private @NotNull ComboBoxDataEntity.Option buildOption(ComboBoxOptionPersist persist){
ComboBoxDataEntity.Option data = new ComboBoxDataEntity.Option(); ComboBoxDataEntity.Option data = new ComboBoxDataEntity.Option();
if (persist == null) return data; if (persist == null) return data;
@ -93,4 +94,28 @@ public class WordListFieldDataHelperService extends BaseFieldDataHelperService<W
return data; return data;
} }
@Override
protected WordListDataPersist mapDataToPersist(WordListDataEntity data, WordListDataPersist persist) {
persist.setMultiList(data.getMultiList());
if (!this.conventionService.isListNullOrEmpty(data.getOptions())){
persist.setOptions(new ArrayList<>());
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;
}
} }

View File

@ -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();
}

View File

@ -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<String> imageSources = parseImages(mail.getContent());
List<String> 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<String> parseImages(String content) {
List<String> 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<String> 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;
}
}

View File

@ -1,4 +1,4 @@
package eu.eudat.models.data.mail; package eu.eudat.service.mail;
public class SimpleMail { public class SimpleMail {

View File

@ -1,9 +1,9 @@
package eu.eudat.controllers; package eu.eudat.controllers;
import eu.eudat.authorization.Permission; import eu.eudat.authorization.Permission;
import eu.eudat.commons.enums.DescriptionTemplateStatus;
import eu.eudat.commons.enums.UserDescriptionTemplateRole; import eu.eudat.commons.enums.UserDescriptionTemplateRole;
import eu.eudat.commons.scope.user.UserScope; import eu.eudat.commons.scope.user.UserScope;
import eu.eudat.commons.types.descriptiontemplate.importmodel.DescriptionTemplateImportXml;
import eu.eudat.data.DescriptionTemplateEntity; import eu.eudat.data.DescriptionTemplateEntity;
import eu.eudat.data.UserDescriptionTemplateEntity; import eu.eudat.data.UserDescriptionTemplateEntity;
import eu.eudat.data.old.UserInfo; 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.models.data.helpers.responses.ResponseItem;
import eu.eudat.query.DescriptionTemplateTypeQuery; import eu.eudat.query.DescriptionTemplateTypeQuery;
import eu.eudat.service.descriptiontemplatetype.DescriptionTemplateTypeService; import eu.eudat.service.descriptiontemplatetype.DescriptionTemplateTypeService;
import eu.eudat.service.fielddatahelper.FieldDataHelperService;
import eu.eudat.types.ApiMessageCode; import eu.eudat.types.ApiMessageCode;
import eu.eudat.types.MetricNames;
import gr.cite.commons.web.authz.service.AuthorizationService; import gr.cite.commons.web.authz.service.AuthorizationService;
import gr.cite.tools.data.query.QueryFactory; import gr.cite.tools.data.query.QueryFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -28,7 +28,6 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
import jakarta.validation.Valid;
import javax.management.InvalidApplicationException; import javax.management.InvalidApplicationException;
import java.io.IOException; import java.io.IOException;
@ -49,9 +48,11 @@ public class Admin extends BaseController {
private final QueryFactory queryFactory; private final QueryFactory queryFactory;
private final DescriptionTemplateTypeService descriptionTemplateTypeService; private final DescriptionTemplateTypeService descriptionTemplateTypeService;
private final FieldDataHelperService fieldDataHelperService;
@Autowired @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); super(apiContext);
this.datasetProfileManager = datasetProfileManager; this.datasetProfileManager = datasetProfileManager;
this.userManager = userManager; this.userManager = userManager;
@ -61,6 +62,7 @@ public class Admin extends BaseController {
this.userScope = userScope; this.userScope = userScope;
this.queryFactory = queryFactory; this.queryFactory = queryFactory;
this.descriptionTemplateTypeService = descriptionTemplateTypeService; this.descriptionTemplateTypeService = descriptionTemplateTypeService;
this.fieldDataHelperService = fieldDataHelperService;
} }
// @Transactional // @Transactional
@ -195,29 +197,29 @@ public class Admin extends BaseController {
} }
} }
@RequestMapping(method = RequestMethod.POST, value = {"/upload", "/upload/{id}"}) // @RequestMapping(method = RequestMethod.POST, value = {"/upload", "/upload/{id}"})
public ResponseEntity<Object> setDatasetProfileXml(@RequestParam("file") MultipartFile file, // public ResponseEntity<Object> setDatasetProfileXml(@RequestParam("file") MultipartFile file,
@PathVariable(value = "id", required = false) String id) throws Exception { // @PathVariable(value = "id", required = false) String id) throws Exception {
this.authorizationService.authorizeForce(Permission.AdminRole, Permission.DatasetProfileManagerRole); // this.authorizationService.authorizeForce(Permission.AdminRole, Permission.DatasetProfileManagerRole);
//
eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel.DatasetProfile descriptionTemplateImportXmlModel = this.datasetProfileManager.createDatasetProfileFromXml(file); // DescriptionTemplateImportXml descriptionTemplateImportXmlModel = this.datasetProfileManager.createDatasetProfileFromXml(file);
eu.eudat.models.data.admin.composite.DatasetProfile datasetProfileEntity = descriptionTemplateImportXmlModel.toAdminCompositeModel(file.getOriginalFilename()); // eu.eudat.models.data.admin.composite.DatasetProfile datasetProfileEntity = descriptionTemplateImportXmlModel.toPersistModel(file.getOriginalFilename(), this.fieldDataHelperService);
DescriptionTemplateEntity modelDefinition; // DescriptionTemplateEntity modelDefinition;
if (id == null) { // if (id == null) {
modelDefinition = AdminManager.generateViewStyleDefinition(datasetProfileEntity, getApiContext(), descriptionTemplateTypeService); // modelDefinition = AdminManager.generateViewStyleDefinition(datasetProfileEntity, getApiContext(), descriptionTemplateTypeService);
DescriptionTemplateEntity descriptionTemplateEntity = this.getApiContext().getOperationsContext().getDatabaseRepository().getDatasetProfileDao().createOrUpdate(modelDefinition); // DescriptionTemplateEntity descriptionTemplateEntity = this.getApiContext().getOperationsContext().getDatabaseRepository().getDatasetProfileDao().createOrUpdate(modelDefinition);
UserDescriptionTemplateEntity userDatasetProfile = new UserDescriptionTemplateEntity(); // UserDescriptionTemplateEntity userDatasetProfile = new UserDescriptionTemplateEntity();
userDatasetProfile.setDescriptionTemplate(descriptionTemplateEntity.getId()); // userDatasetProfile.setDescriptionTemplate(descriptionTemplateEntity.getId());
UserInfo userInfo = getApiContext().getOperationsContext().getDatabaseRepository().getUserInfoDao().find(userScope.getUserId()); // UserInfo userInfo = getApiContext().getOperationsContext().getDatabaseRepository().getUserInfoDao().find(userScope.getUserId());
userDatasetProfile.setUser(userInfo.getId()); // userDatasetProfile.setUser(userInfo.getId());
userDatasetProfile.setRole(UserDescriptionTemplateRole.Owner); // userDatasetProfile.setRole(UserDescriptionTemplateRole.Owner);
getApiContext().getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile); // getApiContext().getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile);
} else { // } else {
modelDefinition = datasetProfileManager.createNewVersionDatasetProfile(id, datasetProfileEntity); // modelDefinition = datasetProfileManager.createNewVersionDatasetProfile(id, datasetProfileEntity);
} // }
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<List<DescriptionTemplateEntity>>() // return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<List<DescriptionTemplateEntity>>()
.status(ApiMessageCode.SUCCESS_MESSAGE).message("")); // .status(ApiMessageCode.SUCCESS_MESSAGE).message(""));
} // }
@RequestMapping(method = RequestMethod.GET, value = {"/getSemantics"}, produces = "application/json") @RequestMapping(method = RequestMethod.GET, value = {"/getSemantics"}, produces = "application/json")

View File

@ -32,10 +32,13 @@ import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import org.xml.sax.SAXException;
import javax.management.InvalidApplicationException; import javax.management.InvalidApplicationException;
import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerException;
import java.io.IOException;
import java.util.*; import java.util.*;
@RestController @RestController
@ -164,4 +167,22 @@ public class DescriptionTemplateController {
//this.auditService.trackIdentity(AuditableAction.IdentityTracking_Action); //this.auditService.trackIdentity(AuditableAction.IdentityTracking_Action);
return persisted; 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<String, Object>("file", file),
new AbstractMap.SimpleEntry<String, Object>("id", id),
new AbstractMap.SimpleEntry<String, Object>("fields", fieldSet)
));
//this.auditService.trackIdentity(AuditableAction.IdentityTracking_Action);
return model;
}
} }

View File

@ -5,7 +5,7 @@ import eu.eudat.data.old.UserInfo;
import eu.eudat.logic.services.ApiContext; import eu.eudat.logic.services.ApiContext;
import eu.eudat.models.data.ContactEmail.ContactEmailModel; import eu.eudat.models.data.ContactEmail.ContactEmailModel;
import eu.eudat.models.data.ContactEmail.PublicContactEmailModel; 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.core.env.Environment;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

View File

@ -1,15 +1,10 @@
package eu.eudat.logic.managers; package eu.eudat.logic.managers;
import eu.eudat.commons.enums.IsActive; import eu.eudat.commons.enums.IsActive;
import eu.eudat.commons.enums.UserDescriptionTemplateRole;
import eu.eudat.commons.scope.user.UserScope; import eu.eudat.commons.scope.user.UserScope;
import eu.eudat.data.UserDescriptionTemplateEntity; import eu.eudat.data.UserDescriptionTemplateEntity;
import eu.eudat.data.DescriptionTemplateEntity; import eu.eudat.data.DescriptionTemplateEntity;
import eu.eudat.data.dao.criteria.DatasetProfileCriteria;
import eu.eudat.data.old.UserInfo; 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.*;
import eu.eudat.logic.proxy.config.configloaders.ConfigLoader; import eu.eudat.logic.proxy.config.configloaders.ConfigLoader;
import eu.eudat.logic.proxy.config.entities.GeneralUrls; 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.commons.types.xml.XmlBuilder;
import eu.eudat.logic.utilities.documents.helpers.FileEnvelope; 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.ExportXmlBuilderDatasetProfile;
import eu.eudat.logic.utilities.documents.xml.datasetProfileXml.ImportXmlBuilderDatasetProfile;
import eu.eudat.commons.types.descriptiontemplate.fielddata.AutoCompleteDataEntity; 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.commons.types.descriptiontemplate.FieldEntity;
import eu.eudat.models.data.externaldataset.ExternalAutocompleteFieldModel; import eu.eudat.models.data.externaldataset.ExternalAutocompleteFieldModel;
import eu.eudat.models.data.listingmodels.UserInfoListingModel; 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.DescriptionTemplateQuery;
import eu.eudat.query.DescriptionTemplateTypeQuery; import eu.eudat.query.DescriptionTemplateTypeQuery;
import eu.eudat.query.UserDescriptionTemplateQuery; import eu.eudat.query.UserDescriptionTemplateQuery;
import eu.eudat.queryable.QueryableList;
import eu.eudat.service.descriptiontemplatetype.DescriptionTemplateTypeService; import eu.eudat.service.descriptiontemplatetype.DescriptionTemplateTypeService;
import eu.eudat.types.MetricNames;
import gr.cite.commons.web.authz.service.AuthorizationService; import gr.cite.commons.web.authz.service.AuthorizationService;
import gr.cite.tools.data.deleter.DeleterFactory; import gr.cite.tools.data.deleter.DeleterFactory;
import gr.cite.tools.data.query.QueryFactory; 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.core.env.Environment;
import org.springframework.http.*; import org.springframework.http.*;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.w3c.dom.Element; import org.w3c.dom.Element;
import org.w3c.dom.Node; import org.w3c.dom.Node;
@ -339,102 +326,102 @@ public class DatasetProfileManager {
return fileEnvelope; return fileEnvelope;
} }
public DatasetProfile createDatasetProfileFromXml(MultipartFile multiPartFile) { // public DescriptionTemplateImportXml createDatasetProfileFromXml(MultipartFile multiPartFile) {
ImportXmlBuilderDatasetProfile xmlBuilder = new ImportXmlBuilderDatasetProfile(); // ImportXmlBuilderDatasetProfile xmlBuilder = new ImportXmlBuilderDatasetProfile();
try { // try {
File localFile = convert(multiPartFile); // File localFile = convert(multiPartFile);
eu.eudat.logic.utilities.documents.xml.datasetProfileXml.datasetProfileModel.DatasetProfile profile = xmlBuilder.build(localFile); // DescriptionTemplateImportXml profile = xmlBuilder.build(localFile);
Files.deleteIfExists(localFile.toPath()); // Files.deleteIfExists(localFile.toPath());
metricsManager.increaseValue(MetricNames.DATASET_TEMPLATE, 1, MetricNames.DRAFT); // metricsManager.increaseValue(MetricNames.DATASET_TEMPLATE, 1, MetricNames.DRAFT);
return profile; // return profile;
} catch (IOException e) { // } catch (IOException e) {
logger.error(e.getMessage(), e); // logger.error(e.getMessage(), e);
} // }
return null; // return null;
} // }
private File convert(MultipartFile file) throws IOException { // private File convert(MultipartFile file) throws IOException {
File convFile = new File(this.environment.getProperty("temp.temp") + file.getOriginalFilename()); // File convFile = new File(this.environment.getProperty("temp.temp") + file.getOriginalFilename());
convFile.createNewFile(); // convFile.createNewFile();
FileOutputStream fos = new FileOutputStream(convFile); // FileOutputStream fos = new FileOutputStream(convFile);
fos.write(file.getBytes()); // fos.write(file.getBytes());
fos.close(); // fos.close();
return convFile; // 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<UUID> list = new LinkedList<>();
// list.push(oldDescriptionTemplateEntity.getGroupId());
// criteria.setGroupIds(list);
// criteria.setAllVersions(false);
// QueryableList<DescriptionTemplateEntity> 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 { // public void storeDatasetProfileUsers(DescriptionTemplateEntity entity, eu.eudat.models.data.admin.composite.DatasetProfile model) {
// Getting the DescriptionTemplate which we will create its new version. // final List<UserDescriptionTemplateEntity> userDescriptionTemplateEntities = this.queryFactory.query(UserDescriptionTemplateQuery.class).isActive(IsActive.Active).descriptionTemplateIds(entity.getId()).collect();
DescriptionTemplateEntity oldDescriptionTemplateEntity = apiContext.getOperationsContext().getDatabaseRepository().getDatasetProfileDao().find(UUID.fromString(id)); // if (model.getUsers() != null && !model.getUsers().isEmpty()) {
// model.getUsers().stream().filter(userInfoListingModel -> userDescriptionTemplateEntities.stream()
// Getting the DescriptionTemplate with the latest Version. // .filter(userDatasetProfile -> userDatasetProfile.getUser().equals(userInfoListingModel.getId())).count() == 0)
DatasetProfileCriteria criteria = new DatasetProfileCriteria(); // .forEach(userInfoListingModel -> {
LinkedList<UUID> list = new LinkedList<>(); // UserDescriptionTemplateEntity userDatasetProfile1 = new UserDescriptionTemplateEntity();
list.push(oldDescriptionTemplateEntity.getGroupId()); // userDatasetProfile1.setDescriptionTemplate(entity.getId());
criteria.setGroupIds(list); // UserInfo userInfo1 = null;
criteria.setAllVersions(false); // try {
QueryableList<DescriptionTemplateEntity> datasetProfileQueryableList = apiContext.getOperationsContext().getDatabaseRepository().getDatasetProfileDao().getWithCriteria(criteria); // userInfo1 = apiContext.getOperationsContext().getDatabaseRepository().getUserInfoDao().find(userInfoListingModel.getId());
DescriptionTemplateEntity latestVersionDescriptionTemplateEntity = datasetProfileQueryableList.getSingle(); // } catch (InvalidApplicationException e) {
// throw new RuntimeException(e);
if (latestVersionDescriptionTemplateEntity.getVersion().equals(oldDescriptionTemplateEntity.getVersion())){ // }
eu.eudat.models.data.admin.composite.DatasetProfile sortedProfile = profile.toShort(); // userDatasetProfile1.setUser(userInfo1.getId());
DescriptionTemplateEntity modelDefinition = AdminManager.generateViewStyleDefinition(sortedProfile, apiContext, descriptionTemplateTypeService); // userDatasetProfile1.setRole(UserDescriptionTemplateRole.Member);
// modelDefinition.setLabel(oldDescriptionTemplate.getLabel()); // apiContext.getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile1);
modelDefinition.setVersion((short) (oldDescriptionTemplateEntity.getVersion() + 1)); // sendJoinMail(userDatasetProfile1);
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<UserDescriptionTemplateEntity> 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);
// }); // });
} //// userDescriptionTemplateEntities.stream().filter(userDatasetProfile -> model.getUsers().stream()
if (userDescriptionTemplateEntities != null && !userDescriptionTemplateEntities.isEmpty()) { //// .filter(userInfoListingModel -> userDatasetProfile.getUser().equals(userInfoListingModel.getId())).count() > 0
List<UserDescriptionTemplateEntity> toDelete = new ArrayList<>(); //// && userDatasetProfile.getRole() == UserDescriptionTemplateRole.Saved2).forEach(userDatasetProfile -> {
//// userDatasetProfile.setRole(UserDescriptionTemplateRole.Member);
userDescriptionTemplateEntities.stream().filter(userDatasetProfile -> model.getUsers().stream() //// apiContext.getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile);
.filter(userInfoListingModel -> userDatasetProfile.getUser().equals(userInfoListingModel.getId())).count() == 0) //// sendJoinMail(userDatasetProfile);
.forEach(userDatasetProfile -> { //// });
toDelete.add(userDatasetProfile); // }
apiContext.getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile); // if (userDescriptionTemplateEntities != null && !userDescriptionTemplateEntities.isEmpty()) {
}); // List<UserDescriptionTemplateEntity> toDelete = new ArrayList<>();
try { //
this.deleterFactory.deleter(UserDescriptionTemplateDeleter.class).delete(toDelete); // userDescriptionTemplateEntities.stream().filter(userDatasetProfile -> model.getUsers().stream()
} catch (InvalidApplicationException e) { // .filter(userInfoListingModel -> userDatasetProfile.getUser().equals(userInfoListingModel.getId())).count() == 0)
throw new RuntimeException(e); // .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 @Transactional
public void retrieveUsers(DescriptionTemplateEntity entity, eu.eudat.models.data.admin.composite.DatasetProfile model) { 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) { // private void sendJoinMail(UserDescriptionTemplateEntity userDatasetProfile) {
SimpleMail mail = new SimpleMail(); // SimpleMail mail = new SimpleMail();
UserInfo user = null; // UserInfo user = null;
try { // try {
user = this.apiContext.getOperationsContext().getDatabaseRepository().getUserInfoDao().find(userDatasetProfile.getUser()); // user = this.apiContext.getOperationsContext().getDatabaseRepository().getUserInfoDao().find(userDatasetProfile.getUser());
} catch (InvalidApplicationException e) { // } catch (InvalidApplicationException e) {
throw new RuntimeException(e); // throw new RuntimeException(e);
} // }
DescriptionTemplateEntity descriptionTemplate = this.queryFactory.query(DescriptionTemplateQuery.class).isActive(IsActive.Active).ids(userDatasetProfile.getDescriptionTemplate()).first(); // 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())); // mail.setSubject(environment.getProperty("admin.mail.subject").replace( "{templateName}", descriptionTemplate.getLabel()));
String content = apiContext.getUtilitiesService().getMailService().getMailTemplateContent(environment.getProperty("email.dataset.template")); // String content = apiContext.getUtilitiesService().getMailService().getMailTemplateContent(environment.getProperty("email.dataset.template"));
content = content.replace("{recipient}", user.getName()); // content = content.replace("{recipient}", user.getName());
content = content.replace("{templateName}", descriptionTemplate.getLabel()); // content = content.replace("{templateName}", descriptionTemplate.getLabel());
content = content.replace("{host}", this.environment.getProperty("dmp.domain")); // content = content.replace("{host}", this.environment.getProperty("dmp.domain"));
content = content.replace("{templateID}", descriptionTemplate.getId().toString()); // content = content.replace("{templateID}", descriptionTemplate.getId().toString());
mail.setContent(content); // mail.setContent(content);
mail.setTo(user.getEmail()); // mail.setTo(user.getEmail());
try { // try {
apiContext.getUtilitiesService().getMailService().sendSimpleMail(mail); // apiContext.getUtilitiesService().getMailService().sendSimpleMail(mail);
} catch (Exception ex) { // } catch (Exception ex) {
logger.error(ex.getMessage(), ex); // logger.error(ex.getMessage(), ex);
} // }
//
} // }
public List<String> getSemantics(String query) { public List<String> getSemantics(String query) {
List<Semantic> semantics = configLoader.getSemantics(); List<Semantic> semantics = configLoader.getSemantics();

View File

@ -7,7 +7,7 @@ import eu.eudat.commons.enums.old.notification.ActiveStatus;
import eu.eudat.commons.enums.old.notification.NotifyState; import eu.eudat.commons.enums.old.notification.NotifyState;
import eu.eudat.logic.services.ApiContext; import eu.eudat.logic.services.ApiContext;
import eu.eudat.logic.services.utilities.MailService; 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.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;

View File

@ -7,8 +7,7 @@ import eu.eudat.commons.scope.user.UserScope;
import eu.eudat.data.dao.entities.EmailConfirmationDao; import eu.eudat.data.dao.entities.EmailConfirmationDao;
import eu.eudat.data.old.EmailConfirmation; import eu.eudat.data.old.EmailConfirmation;
import eu.eudat.data.old.UserInfo; import eu.eudat.data.old.UserInfo;
import eu.eudat.logic.services.ApiContext; import eu.eudat.service.mail.SimpleMail;
import eu.eudat.models.data.mail.SimpleMail;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;

View File

@ -8,7 +8,7 @@ import eu.eudat.data.old.Invitation;
import eu.eudat.data.old.UserDMP; import eu.eudat.data.old.UserDMP;
import eu.eudat.data.old.UserInfo; import eu.eudat.data.old.UserInfo;
import eu.eudat.models.data.invitation.Properties; 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.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;

View File

@ -1,6 +1,6 @@
package eu.eudat.logic.services.utilities; package eu.eudat.logic.services.utilities;
import eu.eudat.models.data.mail.SimpleMail; import eu.eudat.service.mail.SimpleMail;
import jakarta.mail.MessagingException; import jakarta.mail.MessagingException;

View File

@ -1,6 +1,6 @@
package eu.eudat.logic.services.utilities; 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.apache.commons.io.IOUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;

View File

@ -1,5 +1,5 @@
package eu.eudat.logic.utilities.documents.xml.datasetProfileXml; 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.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -11,18 +11,18 @@ import java.io.*;
public class ImportXmlBuilderDatasetProfile { public class ImportXmlBuilderDatasetProfile {
private static final Logger logger = LoggerFactory.getLogger(ImportXmlBuilderDatasetProfile.class); private static final Logger logger = LoggerFactory.getLogger(ImportXmlBuilderDatasetProfile.class);
public DatasetProfile build(File xmlFile) throws IOException { public DescriptionTemplateImportXml build(File xmlFile) throws IOException {
DatasetProfile datasetProfile = new DatasetProfile(); DescriptionTemplateImportXml descriptionTemplateImportXml = new DescriptionTemplateImportXml();
JAXBContext jaxbContext = null; JAXBContext jaxbContext = null;
try { try {
jaxbContext = JAXBContext.newInstance(DatasetProfile.class); jaxbContext = JAXBContext.newInstance(DescriptionTemplateImportXml.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
datasetProfile = (DatasetProfile) unmarshaller.unmarshal(xmlFile); descriptionTemplateImportXml = (DescriptionTemplateImportXml) unmarshaller.unmarshal(xmlFile);
} catch (JAXBException e) { } catch (JAXBException e) {
logger.error(e.getMessage(), e); logger.error(e.getMessage(), e);
} }
return datasetProfile; return descriptionTemplateImportXml;
} }

View File

@ -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> page;
@XmlElement(name = "page")
public List<Page> getPage() {
return page;
}
public void setPage(List<Page> 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<eu.eudat.models.data.admin.components.datasetprofile.Page> pagesDatasetEntity = new LinkedList<>();
List<eu.eudat.models.data.admin.components.datasetprofile.Section> 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;
}
}

View File

@ -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> fieldSet;
@XmlElement(name = "field-Set")
public List<FieldSet> getFieldSet() {
return fieldSet;
}
public void setFieldSet(List<FieldSet> fieldSet) {
this.fieldSet = fieldSet;
}
public List<eu.eudat.models.data.admin.components.datasetprofile.FieldSet> toAdminCompositeModelSection(){
List<eu.eudat.models.data.admin.components.datasetprofile.FieldSet> fieldSetEntity = new LinkedList<>();
if(this.fieldSet!=null)
for (FieldSet xmlFieldSet:this.fieldSet){
fieldSetEntity.add(xmlFieldSet.toAdminCompositeModelSection());
}
return fieldSetEntity;
}
}

View File

@ -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> field;
@XmlElement(name = "field")
public List<Field> getField() {
return field;
}
public void setField(List<Field> field) {
this.field = field;
}
public List<eu.eudat.models.data.admin.components.datasetprofile.Field> toAdminCompositeModelSection() {
List<eu.eudat.models.data.admin.components.datasetprofile.Field> fieldsEntity = new LinkedList<>();
if (this.field != null)
for (Field xmlField : this.field) {
fieldsEntity.add(xmlField.toAdminCompositeModelSection());
}
return fieldsEntity;
}
}

View File

@ -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> rule;
@XmlAttribute(name = "style")
public String getStyle() {
return style;
}
public void setStyle(String style) {
this.style = style;
}
@XmlElement(name = "rule")
public List<Rule> getRule() {
return rule;
}
public void setRule(List<Rule> rule) {
this.rule = rule;
}
public VisibilityEntity toAdminCompositeModelSection(){
VisibilityEntity visibilityEntity = new VisibilityEntity();
visibilityEntity.setStyle(this.style);
if(this.rule!=null) {
List<RuleEntity> ruleListEntity = new LinkedList<>();
for (Rule xmlRule : this.rule) {
ruleListEntity.add(xmlRule.toAdminCompositeModelSection());
}
visibilityEntity.setRules(ruleListEntity);
}
return visibilityEntity;
}
}

View File

@ -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();
}
}

View File

@ -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> 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<Sections> getSections() {
return sections;
}
public void setSections(List<Sections> 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<eu.eudat.models.data.admin.components.datasetprofile.Section> 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();
}
}

View File

@ -147,6 +147,14 @@ permissions:
clients: [ ] clients: [ ]
allowAnonymous: false allowAnonymous: false
allowAuthenticated: false allowAuthenticated: false
ImportDescriptionTemplate:
roles:
- Admin
- DatasetProfileManager
claims: [ ]
clients: [ ]
allowAnonymous: false
allowAuthenticated: false
# Dmp # Dmp
BrowseDmp: BrowseDmp:
roles: roles: