diff --git a/backend/core/src/main/java/org/opencdmp/commons/types/descriptiontemplate/ExternalIdentifierEntity.java b/backend/core/src/main/java/org/opencdmp/commons/types/descriptiontemplate/ExternalIdentifierEntity.java deleted file mode 100644 index 96c1c5a1a..000000000 --- a/backend/core/src/main/java/org/opencdmp/commons/types/descriptiontemplate/ExternalIdentifierEntity.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.opencdmp.commons.types.descriptiontemplate; - -import jakarta.xml.bind.annotation.XmlAccessType; -import jakarta.xml.bind.annotation.XmlAccessorType; -import jakarta.xml.bind.annotation.XmlAttribute; - -@XmlAccessorType(XmlAccessType.FIELD) -public class ExternalIdentifierEntity { - - @XmlAttribute(name="identifier") - private String identifier; - - @XmlAttribute(name="type") - private String type; - - public String getIdentifier() { - return identifier; - } - - public void setIdentifier(String identifier) { - this.identifier = identifier; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - -} diff --git a/backend/core/src/main/java/org/opencdmp/commons/types/descriptiontemplate/RuleEntity.java b/backend/core/src/main/java/org/opencdmp/commons/types/descriptiontemplate/RuleEntity.java index ad35b184a..2170d0328 100644 --- a/backend/core/src/main/java/org/opencdmp/commons/types/descriptiontemplate/RuleEntity.java +++ b/backend/core/src/main/java/org/opencdmp/commons/types/descriptiontemplate/RuleEntity.java @@ -24,9 +24,7 @@ public class RuleEntity { @XmlElement(name = "booleanValue") private Boolean booleanValue; - @XmlElement(name="externalIdentifier") - private ExternalIdentifierEntity externalIdentifier; - + public String getTarget() { return this.target; } @@ -66,13 +64,5 @@ public class RuleEntity { public void setBooleanValue(Boolean booleanValue) { this.booleanValue = booleanValue; } - - public ExternalIdentifierEntity getExternalIdentifier() { - return this.externalIdentifier; - } - - public void setExternalIdentifier(ExternalIdentifierEntity externalIdentifier) { - this.externalIdentifier = externalIdentifier; - } } diff --git a/backend/core/src/main/java/org/opencdmp/commons/types/descriptiontemplate/importexport/DescriptionTemplateExternalIdentifierImportExport.java b/backend/core/src/main/java/org/opencdmp/commons/types/descriptiontemplate/importexport/DescriptionTemplateExternalIdentifierImportExport.java deleted file mode 100644 index 84fb3abab..000000000 --- a/backend/core/src/main/java/org/opencdmp/commons/types/descriptiontemplate/importexport/DescriptionTemplateExternalIdentifierImportExport.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.opencdmp.commons.types.descriptiontemplate.importexport; - -import jakarta.xml.bind.annotation.XmlAccessType; -import jakarta.xml.bind.annotation.XmlAccessorType; -import jakarta.xml.bind.annotation.XmlAttribute; - -@XmlAccessorType(XmlAccessType.FIELD) -public class DescriptionTemplateExternalIdentifierImportExport { - - @XmlAttribute(name="identifier") - private String identifier; - - @XmlAttribute(name="type") - private String type; - - public String getIdentifier() { - return identifier; - } - - public void setIdentifier(String identifier) { - this.identifier = identifier; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - -} diff --git a/backend/core/src/main/java/org/opencdmp/commons/types/descriptiontemplate/importexport/DescriptionTemplateRuleImportExport.java b/backend/core/src/main/java/org/opencdmp/commons/types/descriptiontemplate/importexport/DescriptionTemplateRuleImportExport.java index f5bac130a..af8a52329 100644 --- a/backend/core/src/main/java/org/opencdmp/commons/types/descriptiontemplate/importexport/DescriptionTemplateRuleImportExport.java +++ b/backend/core/src/main/java/org/opencdmp/commons/types/descriptiontemplate/importexport/DescriptionTemplateRuleImportExport.java @@ -25,9 +25,6 @@ public class DescriptionTemplateRuleImportExport { @XmlElement(name = "booleanValue") private Boolean booleanValue; - @XmlElement(name="externalIdentifier") - private DescriptionTemplateExternalIdentifierImportExport externalIdentifier; - public String getTarget() { return this.target; } @@ -67,12 +64,4 @@ public class DescriptionTemplateRuleImportExport { public void setBooleanValue(Boolean booleanValue) { this.booleanValue = booleanValue; } - - public DescriptionTemplateExternalIdentifierImportExport getExternalIdentifier() { - return this.externalIdentifier; - } - - public void setExternalIdentifier(DescriptionTemplateExternalIdentifierImportExport externalIdentifier) { - this.externalIdentifier = externalIdentifier; - } } \ No newline at end of file diff --git a/backend/core/src/main/java/org/opencdmp/model/builder/descriptiontemplatedefinition/ExternalIdentifierBuilder.java b/backend/core/src/main/java/org/opencdmp/model/builder/descriptiontemplatedefinition/ExternalIdentifierBuilder.java deleted file mode 100644 index 22440a434..000000000 --- a/backend/core/src/main/java/org/opencdmp/model/builder/descriptiontemplatedefinition/ExternalIdentifierBuilder.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.opencdmp.model.builder.descriptiontemplatedefinition; - -import org.opencdmp.authorization.AuthorizationFlags; -import org.opencdmp.commons.types.descriptiontemplate.ExternalIdentifierEntity; -import org.opencdmp.convention.ConventionService; -import org.opencdmp.model.builder.BaseBuilder; -import org.opencdmp.model.descriptiontemplatedefinition.ExternalIdentifier; -import org.opencdmp.service.fielddatahelper.FieldDataHelperServiceProvider; -import gr.cite.tools.data.builder.BuilderFactory; -import gr.cite.tools.exception.MyApplicationException; -import gr.cite.tools.fieldset.FieldSet; -import gr.cite.tools.logging.DataLogEntry; -import gr.cite.tools.logging.LoggerService; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.config.ConfigurableBeanFactory; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Component; - -import java.util.*; - -@Component("descriptiontemplatedefinition.ExternalIdentifierBuilder") -@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) -public class ExternalIdentifierBuilder extends BaseBuilder { - - private EnumSet authorize = EnumSet.of(AuthorizationFlags.None); - - @Autowired - public ExternalIdentifierBuilder( - ConventionService conventionService, BuilderFactory builderFactory, FieldDataHelperServiceProvider fieldDataHelperServiceProvider) { - super(conventionService, new LoggerService(LoggerFactory.getLogger(ExternalIdentifierBuilder.class))); - } - - public ExternalIdentifierBuilder authorize(EnumSet values) { - this.authorize = values; - return this; - } - - @Override - public List build(FieldSet fields, List data) throws MyApplicationException { - this.logger.debug("building for {} items requesting {} fields", Optional.ofNullable(data).map(List::size).orElse(0), Optional.ofNullable(fields).map(FieldSet::getFields).map(Set::size).orElse(0)); - this.logger.trace(new DataLogEntry("requested fields", fields)); - if (fields == null || data == null || fields.isEmpty()) - return new ArrayList<>(); - - - List models = new ArrayList<>(); - for (ExternalIdentifierEntity d : data) { - ExternalIdentifier m = new ExternalIdentifier(); - if (fields.hasField(this.asIndexer(ExternalIdentifier._identifier))) m.setIdentifier(d.getIdentifier()); - if (fields.hasField(this.asIndexer(ExternalIdentifier._type))) m.setType(d.getType()); - - models.add(m); - } - this.logger.debug("build {} items", Optional.of(models).map(List::size).orElse(0)); - return models; - } -} diff --git a/backend/core/src/main/java/org/opencdmp/model/builder/descriptiontemplatedefinition/RuleBuilder.java b/backend/core/src/main/java/org/opencdmp/model/builder/descriptiontemplatedefinition/RuleBuilder.java index 2e957f851..d32cf3618 100644 --- a/backend/core/src/main/java/org/opencdmp/model/builder/descriptiontemplatedefinition/RuleBuilder.java +++ b/backend/core/src/main/java/org/opencdmp/model/builder/descriptiontemplatedefinition/RuleBuilder.java @@ -3,7 +3,6 @@ package org.opencdmp.model.builder.descriptiontemplatedefinition; import gr.cite.tools.data.builder.BuilderFactory; import gr.cite.tools.data.query.QueryFactory; import gr.cite.tools.exception.MyApplicationException; -import gr.cite.tools.fieldset.BaseFieldSet; import gr.cite.tools.fieldset.FieldSet; import gr.cite.tools.logging.DataLogEntry; import gr.cite.tools.logging.LoggerService; @@ -11,11 +10,8 @@ import org.opencdmp.authorization.AuthorizationFlags; import org.opencdmp.commons.enums.FieldType; import org.opencdmp.commons.types.descriptiontemplate.RuleEntity; import org.opencdmp.convention.ConventionService; -import org.opencdmp.model.Reference; import org.opencdmp.model.builder.BaseBuilder; -import org.opencdmp.model.builder.ReferenceBuilder; import org.opencdmp.model.descriptiontemplatedefinition.Rule; -import org.opencdmp.query.ReferenceQuery; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.ConfigurableBeanFactory; @@ -23,7 +19,6 @@ import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import java.util.*; -import java.util.stream.Collectors; @Component @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) @@ -61,9 +56,6 @@ public class RuleBuilder extends BaseBuilder { return new ArrayList<>(); FieldType fieldType = this.fieldEntity != null && this.fieldEntity.getData() != null ? this.fieldEntity.getData().getFieldType() : FieldType.FREE_TEXT; - FieldSet externalIdentifierFields = fields.extractPrefixed(this.asPrefix(Rule._externalIdentifier)); - FieldSet referenceFields = fields.extractPrefixed(this.asPrefix(Rule._references)); - Map referenceItemsMap = FieldType.isReferenceType(fieldType) ? this.collectReferences(referenceFields, data) : null; List models = new ArrayList<>(); for (RuleEntity d : data) { @@ -73,47 +65,9 @@ public class RuleBuilder extends BaseBuilder { if (fields.hasField(this.asIndexer(Rule._booleanValue)) && FieldType.isBooleanType(fieldType)) m.setBooleanValue(d.getBooleanValue()); if (fields.hasField(this.asIndexer(Rule._textValue)) && FieldType.isTextType(fieldType)) m.setTextValue(d.getTextValue()); if (fields.hasField(this.asIndexer(Rule._textListValue)) && FieldType.isTextListType(fieldType)) m.setTextListValue(d.getTextListValue()); - if (!referenceFields.isEmpty() && FieldType.isReferenceType(fieldType) && referenceItemsMap != null && d.getTextListValue() != null && !d.getTextListValue().isEmpty()) { - m.setReferences(new ArrayList<>()); - for (UUID referenceId : d.getTextListValue().stream().map(UUID::fromString).toList()){ - if (referenceItemsMap.containsKey(referenceId)) m.getReferences().add(referenceItemsMap.get(referenceId)); - } - } - if (!externalIdentifierFields.isEmpty() && d.getExternalIdentifier() != null && FieldType.isExternalIdentifierType(fieldType)) m.setExternalIdentifier(this.builderFactory.builder(ExternalIdentifierBuilder.class).authorize(this.authorize).build(externalIdentifierFields, d.getExternalIdentifier())); - models.add(m); } this.logger.debug("build {} items", Optional.of(models).map(List::size).orElse(0)); return models; } - - private Map collectReferences(FieldSet fields, List data) throws MyApplicationException { - if (fields.isEmpty() || data.isEmpty()) - return null; - this.logger.debug("checking related - {}", Reference.class.getSimpleName()); - - Map itemMap; - if (!fields.hasOtherField(this.asIndexer(Reference._id))) { - itemMap = this.asEmpty( - data.stream().map(RuleEntity::getTextListValue).flatMap(List::stream).map(UUID::fromString).distinct().collect(Collectors.toList()), - x -> { - Reference item = new Reference(); - item.setId(x); - return item; - }, - Reference::getId); - } else { - FieldSet clone = new BaseFieldSet(fields.getFields()).ensure(Reference._id); - ReferenceQuery q = this.queryFactory.query(ReferenceQuery.class).authorize(this.authorize).ids(data.stream().map(RuleEntity::getTextListValue).flatMap(List::stream).map(UUID::fromString).distinct().collect(Collectors.toList())); - itemMap = this.builderFactory.builder(ReferenceBuilder.class).authorize(this.authorize).asForeignKey(q, clone, Reference::getId); - } - if (!fields.hasField(Reference._id)) { - itemMap.forEach((id, item) -> { - if (item != null) - item.setId(null); - }); - } - - return itemMap; - } } diff --git a/backend/core/src/main/java/org/opencdmp/model/descriptiontemplatedefinition/ExternalIdentifier.java b/backend/core/src/main/java/org/opencdmp/model/descriptiontemplatedefinition/ExternalIdentifier.java deleted file mode 100644 index 3f2e9ac6a..000000000 --- a/backend/core/src/main/java/org/opencdmp/model/descriptiontemplatedefinition/ExternalIdentifier.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.opencdmp.model.descriptiontemplatedefinition; - -public class ExternalIdentifier { - - private String identifier; - public static final String _identifier = "identifier"; - - private String type; - public static final String _type = "type"; - - public String getIdentifier() { - return identifier; - } - - public void setIdentifier(String identifier) { - this.identifier = identifier; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - -} diff --git a/backend/core/src/main/java/org/opencdmp/model/descriptiontemplatedefinition/Rule.java b/backend/core/src/main/java/org/opencdmp/model/descriptiontemplatedefinition/Rule.java index 5d3960959..41cf53575 100644 --- a/backend/core/src/main/java/org/opencdmp/model/descriptiontemplatedefinition/Rule.java +++ b/backend/core/src/main/java/org/opencdmp/model/descriptiontemplatedefinition/Rule.java @@ -1,7 +1,5 @@ package org.opencdmp.model.descriptiontemplatedefinition; -import org.opencdmp.model.Reference; - import java.time.Instant; import java.util.List; @@ -10,7 +8,6 @@ public class Rule { public final static String _target = "target"; private String target; - private String textValue; public static final String _textValue = "textValue"; @@ -23,13 +20,6 @@ public class Rule { private Boolean booleanValue; public static final String _booleanValue = "booleanValue"; - private List references; - public static final String _references = "references"; - - private ExternalIdentifier externalIdentifier; - public static final String _externalIdentifier = "externalIdentifier"; - - public String getTarget() { return this.target; } @@ -70,19 +60,4 @@ public class Rule { this.booleanValue = booleanValue; } - public List getReferences() { - return this.references; - } - - public void setReferences(List references) { - this.references = references; - } - - public ExternalIdentifier getExternalIdentifier() { - return this.externalIdentifier; - } - - public void setExternalIdentifier(ExternalIdentifier externalIdentifier) { - this.externalIdentifier = externalIdentifier; - } } diff --git a/backend/core/src/main/java/org/opencdmp/model/mapper/publicapi/DescriptionFieldToDatasetFieldMapper.java b/backend/core/src/main/java/org/opencdmp/model/mapper/publicapi/DescriptionFieldToDatasetFieldMapper.java index 1c1fe79be..525c7c947 100644 --- a/backend/core/src/main/java/org/opencdmp/model/mapper/publicapi/DescriptionFieldToDatasetFieldMapper.java +++ b/backend/core/src/main/java/org/opencdmp/model/mapper/publicapi/DescriptionFieldToDatasetFieldMapper.java @@ -1,6 +1,5 @@ package org.opencdmp.model.mapper.publicapi; -import org.opencdmp.commons.types.descriptiontemplate.ExternalIdentifierEntity; import org.opencdmp.commons.types.descriptiontemplate.RuleEntity; import org.opencdmp.model.publicapi.datasetwizard.DefaultValueEntity; import org.opencdmp.model.publicapi.datasetwizard.Field; @@ -31,11 +30,6 @@ public class DescriptionFieldToDatasetFieldMapper { ruleEntity.setDateValue(x.getDateValue()); ruleEntity.setBooleanValue(x.getBooleanValue()); ruleEntity.setTextListValue(x.getTextListValue()); - if (x.getExternalIdentifier() != null){ - ruleEntity.setExternalIdentifier(new ExternalIdentifierEntity()); - ruleEntity.getExternalIdentifier().setIdentifier(x.getExternalIdentifier().getIdentifier()); - ruleEntity.getExternalIdentifier().setType(x.getExternalIdentifier().getType()); - } ruleEntity.setTarget(x.getTarget()); return ruleEntity; }).toList()); diff --git a/backend/core/src/main/java/org/opencdmp/model/persist/descriptiontemplatedefinition/ExternalIdentifierPersist.java b/backend/core/src/main/java/org/opencdmp/model/persist/descriptiontemplatedefinition/ExternalIdentifierPersist.java deleted file mode 100644 index 21587447e..000000000 --- a/backend/core/src/main/java/org/opencdmp/model/persist/descriptiontemplatedefinition/ExternalIdentifierPersist.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.opencdmp.model.persist.descriptiontemplatedefinition; - -import org.opencdmp.commons.validation.BaseValidator; -import org.opencdmp.convention.ConventionService; -import org.opencdmp.errorcode.ErrorThesaurusProperties; -import gr.cite.tools.validation.specification.Specification; -import org.springframework.context.MessageSource; -import org.springframework.context.i18n.LocaleContextHolder; -import org.springframework.stereotype.Component; - -import java.util.Arrays; -import java.util.List; - -public class ExternalIdentifierPersist { - - private String identifier; - public static final String _identifier = "identifier"; - - private String type; - public static final String _type = "type"; - - public String getIdentifier() { - return identifier; - } - - public void setIdentifier(String identifier) { - this.identifier = identifier; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - @Component(PersistValidator.ValidatorName) - public static class PersistValidator extends BaseValidator { - - public static final String ValidatorName = "descriptiontemplatedefinition.ExternalIdentifierPersistPersistValidator"; - - private final MessageSource messageSource; - - protected PersistValidator(ConventionService conventionService, ErrorThesaurusProperties errors, MessageSource messageSource) { - super(conventionService, errors); - this.messageSource = messageSource; - } - - @Override - protected Class modelClass() { - return ExternalIdentifierPersist.class; - } - - @Override - protected List specifications(ExternalIdentifierPersist item) { - return Arrays.asList( - this.spec() - .must(() -> !this.isEmpty(item.getIdentifier())) - .failOn(ExternalIdentifierPersist._identifier).failWith(messageSource.getMessage("Validation_Required", new Object[]{ExternalIdentifierPersist._identifier}, LocaleContextHolder.getLocale())), - this.spec() - .must(() -> !this.isEmpty(item.getType())) - .failOn(ExternalIdentifierPersist._type).failWith(messageSource.getMessage("Validation_Required", new Object[]{ExternalIdentifierPersist._type}, LocaleContextHolder.getLocale())) - ); - } - } - -} diff --git a/backend/core/src/main/java/org/opencdmp/model/persist/descriptiontemplatedefinition/RulePersist.java b/backend/core/src/main/java/org/opencdmp/model/persist/descriptiontemplatedefinition/RulePersist.java index 9bce057cd..24540a289 100644 --- a/backend/core/src/main/java/org/opencdmp/model/persist/descriptiontemplatedefinition/RulePersist.java +++ b/backend/core/src/main/java/org/opencdmp/model/persist/descriptiontemplatedefinition/RulePersist.java @@ -38,10 +38,6 @@ public class RulePersist { private List references; public static final String _references = "references"; - - private ExternalIdentifierPersist externalIdentifier; - public static final String _externalIdentifier = "externalIdentifier"; - public String getTarget() { return this.target; } @@ -90,14 +86,6 @@ public class RulePersist { this.references = references; } - public ExternalIdentifierPersist getExternalIdentifier() { - return this.externalIdentifier; - } - - public void setExternalIdentifier(ExternalIdentifierPersist externalIdentifier) { - this.externalIdentifier = externalIdentifier; - } - @Component(RulePersistValidator.ValidatorName) @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public static class RulePersistValidator extends BaseValidator { @@ -143,10 +131,6 @@ public class RulePersist { .iff(()-> FieldType.isBooleanType(fieldType)) .must(() -> !this.isNull(item.getBooleanValue())) .failOn(RulePersist._booleanValue).failWith(this.messageSource.getMessage("Validation_Required", new Object[]{RulePersist._booleanValue}, LocaleContextHolder.getLocale())), - this.spec() - .iff(()-> FieldType.isExternalIdentifierType(fieldType)) - .must(() -> !this.isNull(item.getExternalIdentifier())) - .failOn(RulePersist._externalIdentifier).failWith(this.messageSource.getMessage("Validation_Required", new Object[]{RulePersist._externalIdentifier}, LocaleContextHolder.getLocale())), this.spec() .iff(()-> FieldType.isTextListType(fieldType)) .must(() -> !this.isNull(item.getTextListValue())) @@ -163,12 +147,7 @@ public class RulePersist { .iff(() -> FieldType.isReferenceType(fieldType) && !this.isListNullOrEmpty(item.getReferences())) .on(RulePersist._references) .over(item.getReferences()) - .using((itm) -> this.validatorFactory.validator(ReferencePersist.ReferencePersistValidator.class)), - this.refSpec() - .iff(() -> FieldType.isExternalIdentifierType(fieldType) && !this.isNull(item.getExternalIdentifier())) - .on(RulePersist._externalIdentifier) - .over(item.getExternalIdentifier()) - .using(() -> this.validatorFactory.validator(ExternalIdentifierPersist.PersistValidator.class)) + .using((itm) -> this.validatorFactory.validator(ReferencePersist.ReferencePersistValidator.class)) ); } } diff --git a/backend/core/src/main/java/org/opencdmp/model/publicapi/datasetwizard/Rule.java b/backend/core/src/main/java/org/opencdmp/model/publicapi/datasetwizard/Rule.java index dbbb62582..7eda2b043 100644 --- a/backend/core/src/main/java/org/opencdmp/model/publicapi/datasetwizard/Rule.java +++ b/backend/core/src/main/java/org/opencdmp/model/publicapi/datasetwizard/Rule.java @@ -47,7 +47,6 @@ public class Rule { else if (rule.getDateValue() != null) this.requiredValue = rule.getDateValue().toString(); else if (rule.getBooleanValue() != null) this.requiredValue = rule.getBooleanValue().toString(); else if (rule.getTextListValue() != null) this.requiredValue = String.join(", ", rule.getTextListValue()); - else if (rule.getExternalIdentifier() != null) this.requiredValue = rule.getExternalIdentifier().getIdentifier(); return this; } diff --git a/backend/core/src/main/java/org/opencdmp/service/descriptiontemplate/DescriptionTemplateServiceImpl.java b/backend/core/src/main/java/org/opencdmp/service/descriptiontemplate/DescriptionTemplateServiceImpl.java index b2d441bab..0c433915d 100644 --- a/backend/core/src/main/java/org/opencdmp/service/descriptiontemplate/DescriptionTemplateServiceImpl.java +++ b/backend/core/src/main/java/org/opencdmp/service/descriptiontemplate/DescriptionTemplateServiceImpl.java @@ -395,35 +395,21 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic data.setTarget(persist.getTarget()); if (FieldType.isTextType(fieldType)) { - if (FieldType.UPLOAD.equals(fieldType) && !this.conventionService.isNullOrEmpty(persist.getTextValue())){ - throw new NotImplementedException("Upload not supported"); - } else { - data.setTextValue(persist.getTextValue()); - } + if (FieldType.UPLOAD.equals(fieldType) && !this.conventionService.isNullOrEmpty(persist.getTextValue())) throw new NotImplementedException("Upload not supported"); + data.setTextValue(persist.getTextValue()); } else if (FieldType.isTextListType(fieldType)) { - if (FieldType.INTERNAL_ENTRIES_DMPS.equals(fieldType) && !this.conventionService.isListNullOrEmpty(persist.getTextListValue())){ - List ids = persist.getTextListValue().stream().map(UUID::fromString).toList(); - Set existingIds = this.queryFactory.query(DmpQuery.class).ids(ids).isActive(IsActive.Active).collectAs(new BaseFieldSet().ensure(Dmp._id)).stream().map(DmpEntity::getId).collect(Collectors.toSet()); - for (UUID id : ids){ - if (!existingIds.contains(id)) throw new MyNotFoundException(this.messageSource.getMessage("General_ItemNotFound", new Object[]{id, Dmp.class.getSimpleName()}, LocaleContextHolder.getLocale())); - } - } if (FieldType.INTERNAL_ENTRIES_DESCRIPTIONS.equals(fieldType) && !this.conventionService.isListNullOrEmpty(persist.getTextListValue())){ - List ids = persist.getTextListValue().stream().map(UUID::fromString).toList(); - Set existingIds = this.queryFactory.query(DescriptionQuery.class).ids(ids).isActive(IsActive.Active).collectAs(new BaseFieldSet().ensure(Description._id)).stream().map(DescriptionEntity::getId).collect(Collectors.toSet()); - for (UUID id : ids){ - if (!existingIds.contains(id)) throw new MyNotFoundException(this.messageSource.getMessage("General_ItemNotFound", new Object[]{id, Description.class.getSimpleName()}, LocaleContextHolder.getLocale())); - } - } + if (FieldType.INTERNAL_ENTRIES_DMPS.equals(fieldType) && !this.conventionService.isListNullOrEmpty(persist.getTextListValue())) throw new NotImplementedException("dmps not supported"); + if (FieldType.INTERNAL_ENTRIES_DESCRIPTIONS.equals(fieldType) && !this.conventionService.isListNullOrEmpty(persist.getTextListValue())) throw new NotImplementedException("descriptions not supported"); + if (FieldType.TAGS.equals(fieldType) && !this.conventionService.isListNullOrEmpty(persist.getTextListValue())) throw new NotImplementedException("tags not supported"); data.setTextListValue(persist.getTextListValue()); } else if (FieldType.isReferenceType(fieldType) ) { - List referenceIds = this.patchAndSaveReferences(persist.getReferences(), fieldEntity); - if (!referenceIds.isEmpty()) data.setTextListValue(referenceIds.stream().map(UUID::toString).toList()); + throw new NotImplementedException("reference not supported"); } else if (FieldType.isDateType(fieldType)) data.setDateValue(persist.getDateValue()); else if (FieldType.isBooleanType(fieldType)) data.setBooleanValue(persist.getBooleanValue()); - else if (FieldType.isExternalIdentifierType(fieldType) && persist.getExternalIdentifier() != null) data.setExternalIdentifier(this.buildExternalIdentifierEntity(persist.getExternalIdentifier())); + else if (FieldType.isExternalIdentifierType(fieldType)) throw new NotImplementedException("ExternalIdentifier not supported"); return data; } @@ -434,23 +420,13 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic if (persist == null) return data; if (FieldType.isTextType(fieldType)) { - if (FieldType.UPLOAD.equals(fieldType) && !this.conventionService.isNullOrEmpty(persist.getTextValue())){ - throw new NotImplementedException("Upload not supported"); - } else { - data.setTextValue(persist.getTextValue()); - } + if (FieldType.UPLOAD.equals(fieldType) && !this.conventionService.isNullOrEmpty(persist.getTextValue())) throw new NotImplementedException("Upload not supported"); + data.setTextValue(persist.getTextValue()); } else if (FieldType.isTextListType(fieldType)) { - if (FieldType.INTERNAL_ENTRIES_DMPS.equals(fieldType) && !this.conventionService.isListNullOrEmpty(persist.getTextListValue())){ - throw new NotImplementedException("dmps not supported"); - - } - if (FieldType.INTERNAL_ENTRIES_DESCRIPTIONS.equals(fieldType) && !this.conventionService.isListNullOrEmpty(persist.getTextListValue())){ - throw new NotImplementedException("descriptions not supported"); - } - if (FieldType.TAGS.equals(fieldType) && !this.conventionService.isListNullOrEmpty(persist.getTextListValue())){ - throw new NotImplementedException("tags not supported"); - } + if (FieldType.INTERNAL_ENTRIES_DMPS.equals(fieldType) && !this.conventionService.isListNullOrEmpty(persist.getTextListValue())) throw new NotImplementedException("dmps not supported"); + if (FieldType.INTERNAL_ENTRIES_DESCRIPTIONS.equals(fieldType) && !this.conventionService.isListNullOrEmpty(persist.getTextListValue())) throw new NotImplementedException("descriptions not supported"); + if (FieldType.TAGS.equals(fieldType) && !this.conventionService.isListNullOrEmpty(persist.getTextListValue())) throw new NotImplementedException("tags not supported"); data.setTextListValue(persist.getTextListValue()); } else if (FieldType.isReferenceType(fieldType) ) { @@ -464,14 +440,6 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic return data; } - private @NotNull ExternalIdentifierEntity buildExternalIdentifierEntity(ExternalIdentifierPersist persist){ - ExternalIdentifierEntity data = new ExternalIdentifierEntity(); - if (persist == null) return data; - - data.setIdentifier(persist.getIdentifier()); - data.setType(persist.getType()); - return data; - } private List patchAndSaveReferences(List models, FieldEntity fieldEntity) throws InvalidApplicationException { if (models == null) models = new ArrayList<>(); @@ -1080,11 +1048,6 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic xml.setBooleanValue(entity.getBooleanValue()); xml.setTextListValue(entity.getTextListValue()); xml.setTextValue(entity.getTextValue()); - if (entity.getExternalIdentifier() != null){ - xml.setExternalIdentifier(new DescriptionTemplateExternalIdentifierImportExport()); - xml.getExternalIdentifier().setIdentifier(entity.getExternalIdentifier().getIdentifier()); - xml.getExternalIdentifier().setType(entity.getExternalIdentifier().getType()); - } return xml; } diff --git a/backend/web/src/main/java/org/opencdmp/controllers/publicapi/PublicDatasetsDescriptionDocumentation.java b/backend/web/src/main/java/org/opencdmp/controllers/publicapi/PublicDatasetsDescriptionDocumentation.java index ad98285b0..045ecd8ef 100644 --- a/backend/web/src/main/java/org/opencdmp/controllers/publicapi/PublicDatasetsDescriptionDocumentation.java +++ b/backend/web/src/main/java/org/opencdmp/controllers/publicapi/PublicDatasetsDescriptionDocumentation.java @@ -195,8 +195,6 @@ public class PublicDatasetsDescriptionDocumentation { String.join(".", Description._descriptionTemplate, DescriptionTemplate._definition, Definition._pages, Page._sections, Section._fieldSets, FieldSet._fields, Field._visibilityRules, Rule._booleanValue), String.join(".", Description._descriptionTemplate, DescriptionTemplate._definition, Definition._pages, Page._sections, Section._fieldSets, FieldSet._fields, Field._visibilityRules, Rule._textListValue), String.join(".", Description._descriptionTemplate, DescriptionTemplate._definition, Definition._pages, Page._sections, Section._fieldSets, FieldSet._fields, Field._visibilityRules, Rule._textValue), - String.join(".", Description._descriptionTemplate, DescriptionTemplate._definition, Definition._pages, Page._sections, Section._fieldSets, FieldSet._fields, Field._visibilityRules, Rule._externalIdentifier), - String.join(".", Description._descriptionTemplate, DescriptionTemplate._definition, Definition._pages, Page._sections, Section._fieldSets, FieldSet._fields, Field._visibilityRules, Rule._references), Description._createdAt, Description._updatedAt, Description._finalizedAt diff --git a/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/DescriptionTemplateXmlMigrationService.java b/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/DescriptionTemplateXmlMigrationService.java index 33fb59fb8..ac36962d7 100644 --- a/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/DescriptionTemplateXmlMigrationService.java +++ b/dmp-migration-tool/web/src/main/java/eu/old/eudat/migration/DescriptionTemplateXmlMigrationService.java @@ -484,11 +484,14 @@ public class DescriptionTemplateXmlMigrationService { data.setTextListValue(valuesParsed == null ? List.of(textValue) : Arrays.stream(valuesParsed).toList()); } } - case DATASET_IDENTIFIER, VALIDATION -> { + case DATASET_IDENTIFIER -> { if(!this.conventionService.isNullOrEmpty(textValue)) { - org.opencdmp.commons.types.descriptiontemplate.ExternalIdentifierEntity externalIdentifierEntity = migrationTools.tryParseJsonAsObjectString(org.opencdmp.commons.types.descriptiontemplate.ExternalIdentifierEntity.class, textValue); - if (externalIdentifierEntity == null) throw new MyApplicationException("Could not parse dataset External Identifier : " + textValue); - data.setExternalIdentifier(externalIdentifierEntity); + throw new NotSupportedException("DATASET_IDENTIFIER validator not supported"); + } + } + case VALIDATION -> { + if(!this.conventionService.isNullOrEmpty(textValue)) { + throw new NotSupportedException("VALIDATION validator not supported"); } } case UPLOAD -> throw new NotSupportedException("Upload validator not supported");