From 22d3d131ccf2930a5d6a25c52edaa05dec92bd25 Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Fri, 17 Dec 2021 16:21:32 +0200 Subject: [PATCH] Even more improvements to RDA mapping (partial contribution by M.Aldo) and fixed issue with RDA Additional Options --- .../web/src/main/java/eu/eudat/models/rda/Contact.java | 4 ++-- .../web/src/main/java/eu/eudat/models/rda/ContactId.java | 4 ++-- .../web/src/main/java/eu/eudat/models/rda/Contributor.java | 4 ++-- .../web/src/main/java/eu/eudat/models/rda/ContributorId.java | 4 ++-- dmp-backend/web/src/main/java/eu/eudat/models/rda/Cost.java | 4 ++-- .../web/src/main/java/eu/eudat/models/rda/DatasetId.java | 4 ++-- dmp-backend/web/src/main/java/eu/eudat/models/rda/DmpId.java | 4 ++-- .../web/src/main/java/eu/eudat/models/rda/FunderId.java | 4 ++-- .../web/src/main/java/eu/eudat/models/rda/Funding.java | 4 ++-- dmp-backend/web/src/main/java/eu/eudat/models/rda/Host.java | 4 ++-- .../web/src/main/java/eu/eudat/models/rda/License.java | 4 ++-- .../src/main/java/eu/eudat/models/rda/MetadataStandardId.java | 4 ++-- .../web/src/main/java/eu/eudat/models/rda/Project.java | 4 ++-- .../java/eu/eudat/models/rda/mapper/DatasetIdRDAMapper.java | 3 +++ .../java/eu/eudat/models/rda/mapper/DatasetRDAMapper.java | 1 + .../main/java/eu/eudat/models/rda/mapper/HostRDAMapper.java | 2 +- 16 files changed, 31 insertions(+), 27 deletions(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/rda/Contact.java b/dmp-backend/web/src/main/java/eu/eudat/models/rda/Contact.java index 606a3ae2c..bbd5e40f9 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/rda/Contact.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/rda/Contact.java @@ -133,12 +133,12 @@ public class Contact implements Serializable this.name = name; } - @JsonAnyGetter + @JsonProperty("additional_properties") public Map getAdditionalProperties() { return this.additionalProperties; } - @JsonAnySetter + @JsonProperty("additional_properties") public void setAdditionalProperty(String name, Object value) { this.additionalProperties.put(name, value); } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/rda/ContactId.java b/dmp-backend/web/src/main/java/eu/eudat/models/rda/ContactId.java index 60454ea6c..11bd8b54e 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/rda/ContactId.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/rda/ContactId.java @@ -100,12 +100,12 @@ public class ContactId implements Serializable this.type = type; } - @JsonAnyGetter + @JsonProperty("additional_properties") public Map getAdditionalProperties() { return this.additionalProperties; } - @JsonAnySetter + @JsonProperty("additional_properties") public void setAdditionalProperty(String name, Object value) { this.additionalProperties.put(name, value); } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/rda/Contributor.java b/dmp-backend/web/src/main/java/eu/eudat/models/rda/Contributor.java index 21dfe68c8..c53c2551d 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/rda/Contributor.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/rda/Contributor.java @@ -168,12 +168,12 @@ public class Contributor implements Serializable this.role = role; } - @JsonAnyGetter + @JsonProperty("additional_properties") public Map getAdditionalProperties() { return this.additionalProperties; } - @JsonAnySetter + @JsonProperty("additional_properties") public void setAdditionalProperty(String name, Object value) { this.additionalProperties.put(name, value); } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/rda/ContributorId.java b/dmp-backend/web/src/main/java/eu/eudat/models/rda/ContributorId.java index 4045f5e0e..c92a5227a 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/rda/ContributorId.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/rda/ContributorId.java @@ -101,12 +101,12 @@ public class ContributorId implements Serializable this.type = type; } - @JsonAnyGetter + @JsonProperty("additional_properties") public Map getAdditionalProperties() { return this.additionalProperties; } - @JsonAnySetter + @JsonProperty("additional_properties") public void setAdditionalProperty(String name, Object value) { this.additionalProperties.put(name, value); } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/rda/Cost.java b/dmp-backend/web/src/main/java/eu/eudat/models/rda/Cost.java index db32ff641..ee5b3289f 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/rda/Cost.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/rda/Cost.java @@ -162,12 +162,12 @@ public class Cost implements Serializable this.value = value; } - @JsonAnyGetter + @JsonProperty("additional_properties") public Map getAdditionalProperties() { return this.additionalProperties; } - @JsonAnySetter + @JsonProperty("additional_properties") public void setAdditionalProperty(String name, Object value) { this.additionalProperties.put(name, value); } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/rda/DatasetId.java b/dmp-backend/web/src/main/java/eu/eudat/models/rda/DatasetId.java index 6c1219c1c..02108950b 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/rda/DatasetId.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/rda/DatasetId.java @@ -109,12 +109,12 @@ public class DatasetId implements Serializable this.type = type; } - @JsonAnyGetter + @JsonProperty("additional_properties") public Map getAdditionalProperties() { return this.additionalProperties; } - @JsonAnySetter + @JsonProperty("additional_properties") public void setAdditionalProperty(String name, Object value) { this.additionalProperties.put(name, value); } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/rda/DmpId.java b/dmp-backend/web/src/main/java/eu/eudat/models/rda/DmpId.java index 7240efaa4..d277fbdd9 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/rda/DmpId.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/rda/DmpId.java @@ -101,12 +101,12 @@ public class DmpId implements Serializable this.type = type; } - @JsonAnyGetter + @JsonProperty("additional_properties") public Map getAdditionalProperties() { return this.additionalProperties; } - @JsonAnySetter + @JsonProperty("additional_properties") public void setAdditionalProperty(String name, Object value) { this.additionalProperties.put(name, value); } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/rda/FunderId.java b/dmp-backend/web/src/main/java/eu/eudat/models/rda/FunderId.java index 12b8bb8f7..4033f415c 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/rda/FunderId.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/rda/FunderId.java @@ -101,12 +101,12 @@ public class FunderId implements Serializable this.type = type; } - @JsonAnyGetter + @JsonProperty("additional_properties") public Map getAdditionalProperties() { return this.additionalProperties; } - @JsonAnySetter + @JsonProperty("additional_properties") public void setAdditionalProperty(String name, Object value) { this.additionalProperties.put(name, value); } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/rda/Funding.java b/dmp-backend/web/src/main/java/eu/eudat/models/rda/Funding.java index 0cc378e7c..0b8aa8c53 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/rda/Funding.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/rda/Funding.java @@ -133,12 +133,12 @@ public class Funding implements Serializable this.grantId = grantId; } - @JsonAnyGetter + @JsonProperty("additional_properties") public Map getAdditionalProperties() { return this.additionalProperties; } - @JsonAnySetter + @JsonProperty("additional_properties") public void setAdditionalProperty(String name, Object value) { this.additionalProperties.put(name, value); } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/rda/Host.java b/dmp-backend/web/src/main/java/eu/eudat/models/rda/Host.java index bfa6ec615..2227460df 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/rda/Host.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/rda/Host.java @@ -391,12 +391,12 @@ public class Host implements Serializable this.url = url; } - @JsonAnyGetter + @JsonProperty("additional_properties") public Map getAdditionalProperties() { return this.additionalProperties; } - @JsonAnySetter + @JsonProperty("additional_properties") public void setAdditionalProperty(String name, Object value) { this.additionalProperties.put(name, value); } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/rda/License.java b/dmp-backend/web/src/main/java/eu/eudat/models/rda/License.java index 1527f5503..e622e14cc 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/rda/License.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/rda/License.java @@ -100,12 +100,12 @@ public class License implements Serializable this.startDate = startDate; } - @JsonAnyGetter + @JsonProperty("additional_properties") public Map getAdditionalProperties() { return this.additionalProperties; } - @JsonAnySetter + @JsonProperty("additional_properties") public void setAdditionalProperty(String name, Object value) { this.additionalProperties.put(name, value); } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/rda/MetadataStandardId.java b/dmp-backend/web/src/main/java/eu/eudat/models/rda/MetadataStandardId.java index 06b54a1f1..a693f34a5 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/rda/MetadataStandardId.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/rda/MetadataStandardId.java @@ -101,12 +101,12 @@ public class MetadataStandardId implements Serializable this.type = type; } - @JsonAnyGetter + @JsonProperty("additional_properties") public Map getAdditionalProperties() { return this.additionalProperties; } - @JsonAnySetter + @JsonProperty("additional_properties") public void setAdditionalProperty(String name, Object value) { this.additionalProperties.put(name, value); } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/rda/Project.java b/dmp-backend/web/src/main/java/eu/eudat/models/rda/Project.java index 09c231ca3..4854fa609 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/rda/Project.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/rda/Project.java @@ -199,12 +199,12 @@ public class Project implements Serializable this.title = title; } - @JsonAnyGetter + @JsonProperty("additional_properties") public Map getAdditionalProperties() { return this.additionalProperties; } - @JsonAnySetter + @JsonProperty("additional_properties") public void setAdditionalProperty(String name, Object value) { this.additionalProperties.put(name, value); } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/DatasetIdRDAMapper.java b/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/DatasetIdRDAMapper.java index 1cdb473fd..345fdebff 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/DatasetIdRDAMapper.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/DatasetIdRDAMapper.java @@ -29,6 +29,9 @@ public class DatasetIdRDAMapper { for (JsonNode node: nodes) { String rdaProperty = node.get("rdaProperty").asText(); String rdaValue = node.get("value").asText(); + if(rdaValue == null || rdaValue.isEmpty()){ + continue; + } ObjectMapper mapper = new ObjectMapper(); try { diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/DatasetRDAMapper.java b/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/DatasetRDAMapper.java index e84192c51..c8f0a0d53 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/DatasetRDAMapper.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/DatasetRDAMapper.java @@ -93,6 +93,7 @@ public class DatasetRDAMapper { }*/ List qaList = qaNodes.stream() .map(qaNode -> qaNode.get("value").asText()) + .filter(qaNode -> !qaNode.isEmpty()) .collect(Collectors.toList()); rda.setDataQualityAssurance(qaList); }else{ diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/HostRDAMapper.java b/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/HostRDAMapper.java index d58f2cc5b..43c0bad7d 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/HostRDAMapper.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/HostRDAMapper.java @@ -22,7 +22,7 @@ public class HostRDAMapper { int firstDiff = MyStringUtils.getFirstDifference(numbering, node.get("numbering").asText()); if (firstDiff == -1 || firstDiff > 2) { String rdaValue = node.get("value").asText(); - if(rdaValue == null || rdaValue.isEmpty()){ + if(rdaValue == null || (rdaValue.isEmpty() && !node.get("value").isArray())){ continue; } for (ExportPropertyName propertyName: ExportPropertyName.values()) {