From 22feac77d60f33aafd813d684f9d66ac15ba902f Mon Sep 17 00:00:00 2001
From: "Stefan E. Funk" <funk@sub.uni-goettingen.de>
Date: Thu, 5 Jan 2023 17:05:12 +0100
Subject: [PATCH] fix: add MA openaire rights tag

---
 .../middleware/RecordDelivererDatacite.java   | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDatacite.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDatacite.java
index 9c38f327..4268d0a3 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDatacite.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDatacite.java
@@ -578,33 +578,34 @@ public class RecordDelivererDatacite extends RecordDelivererAbstract {
             OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, rightsField + DOT_VALUE));
         rightsResultList.getRights().add(rights);
       }
-      // TODO Check open access right here!
-      if (rightsResultList.getRights().get(0).getValue() != null) {
-        Rights openAccesRight = new Rights();
-        openAccesRight.setRightsURI(EU_OPEN_ACCESS);
-        rightsResultList.getRights().add(openAccesRight);
-      }
 
       // **
       // DARIAH
       // **
 
       else if (this.dariah) {
-        Rights rights = new Rights();
         List<String> rList = OaipmhUtilities.listFieldLoader(this.jsonObj, rightsField);
         for (String r : rList) {
+          Rights rights = new Rights();
           // Set rights URI assuming every "http://" or "https://" really IS an URI.
           if (r.startsWith("http")) {
             rights.setRightsURI(r);
           }
           // Set value in every case, even if doubled with URI.
           rights.setValue(r);
-        }
 
-        rightsResultList.getRights().add(rights);
+          rightsResultList.getRights().add(rights);
+        }
       }
     }
 
+    // Set mandatory if applicable OpenAIRE rights tag!
+    if (rightsResultList.getRights().get(0).getValue() != null) {
+      Rights openAccesRight = new Rights();
+      openAccesRight.setRightsURI(EU_OPEN_ACCESS);
+      rightsResultList.getRights().add(openAccesRight);
+    }
+
     return rightsResultList;
   }
 
-- 
GitLab