From 4f831f19d74ae35e80bd3240779b25d6e4cd5924 Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Thu, 12 Jan 2023 16:21:11 +0100 Subject: [PATCH] improving corner case management --- .../analyser/SoftwareConceptAnalyser.java | 25 +++++++++++++------ src/test/resources/gcat-from-scratch.json | 2 +- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/gcube/common/software/analyser/SoftwareConceptAnalyser.java b/src/main/java/org/gcube/common/software/analyser/SoftwareConceptAnalyser.java index 82a0f28..b48f528 100644 --- a/src/main/java/org/gcube/common/software/analyser/SoftwareConceptAnalyser.java +++ b/src/main/java/org/gcube/common/software/analyser/SoftwareConceptAnalyser.java @@ -100,15 +100,12 @@ public class SoftwareConceptAnalyser { previous = softwareVersion; }finally { - /* Need to export the original file with the version doi */ - if(originalVersion.has(SoftwareVersion.DOI_URL_PROPERTY_NAME) - && originalVersion.get(SoftwareVersion.DOI_URL_PROPERTY_NAME).getNodeType()==JsonNodeType.NULL - && softwareVersion.getDOIURL()!=null) { + /* Need to export the original file with the DOI and Version DOI */ + if(softwareVersion.getDOIURL()!=null) { originalVersion.put(SoftwareVersion.DOI_URL_PROPERTY_NAME, softwareVersion.getDOIURL().toString()); } - if((!originalVersion.has(SoftwareVersion.VERSION_DOI_URL_PROPERTY_NAME) || originalVersion.get(SoftwareVersion.VERSION_DOI_URL_PROPERTY_NAME).getNodeType()==JsonNodeType.NULL) - && softwareVersion.getVersionDOIURL()!=null) { + if(softwareVersion.getVersionDOIURL()!=null) { originalVersion.put(SoftwareVersion.VERSION_DOI_URL_PROPERTY_NAME, softwareVersion.getVersionDOIURL().toString()); } @@ -116,7 +113,6 @@ public class SoftwareConceptAnalyser { URL doiURL = softwareVersion.getDOIURL(); softwareConcept.setDOIURL(doiURL); concept.put(SoftwareConcept.DOI_URL_PROPERTY_NAME, doiURL.toString()); - originalVersion.put(SoftwareVersion.DOI_URL_PROPERTY_NAME, doiURL.toString()); } } @@ -129,8 +125,21 @@ public class SoftwareConceptAnalyser { throw e; }finally { ObjectNode toBeExported = objectMapper.createObjectNode(); - toBeExported.replace(CONCEPT_PROPERTY_NAME, concept); + + if(concept.has(SoftwareConcept.DOI_URL_PROPERTY_NAME) && concept.get(SoftwareConcept.DOI_URL_PROPERTY_NAME).getNodeType()!=JsonNodeType.NULL) { + String conceptDOIURL = concept.get(SoftwareConcept.DOI_URL_PROPERTY_NAME).asText(); + + for(i=0; i