From fac6a93c0aad5c277f65bb1adae4bdd58820b97b Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Thu, 10 Feb 2022 13:21:21 +0200 Subject: [PATCH] Fix minor worldBuilder issue and a minor refactor --- .../main/java/eu/eudat/logic/managers/DatasetManager.java | 6 +++++- .../eudat/logic/utilities/documents/word/WordBuilder.java | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetManager.java index fdcd3d4b9..9ea5fabb3 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetManager.java @@ -664,12 +664,16 @@ public class DatasetManager { for (String validator : datasetProfileValidators) { - if ((obj.has(validator) && (obj.getString(validator) == null || obj.getString(validator).trim().isEmpty())) && isElementVisible(nodeList, validator, visibilityRuleService)) { + if (obj.has(validator) && isNullOrEmpty(obj.getString(validator)) && isElementVisible(nodeList, validator, visibilityRuleService)) { throw new Exception("Field value of " + validator + " must be filled."); } } } + private boolean isNullOrEmpty(String value) { + return value == null || value.trim().isEmpty(); + } + private boolean isElementVisible(NodeList nodeList, String id, VisibilityRuleService visibilityRuleService) { Element fieldSet = null; for (int i = 0; i < nodeList.getLength(); i++) { diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java index e491b3b9f..a5cb7d4a3 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java @@ -27,7 +27,9 @@ import java.io.IOException; import java.math.BigInteger; import java.text.SimpleDateFormat; import java.time.Instant; +import java.time.LocalDate; import java.time.ZoneId; +import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.time.temporal.TemporalAccessor; @@ -397,7 +399,7 @@ public class WordBuilder { try { instant = Instant.parse((String) field.getValue()); } catch (DateTimeParseException ex) { - instant = Instant.from(DateTimeFormatter.ofPattern("yyyy-MM-dd").withZone(ZoneId.systemDefault()).parse((String) field.getValue())); + instant = LocalDate.parse((String) field.getValue()).atStartOfDay().toInstant(ZoneOffset.UTC); } return field.getValue() != null ? DateTimeFormatter.ofPattern("yyyy-MM-dd").withZone(ZoneId.systemDefault()).format(instant) : ""; }