From 11d730c14eb878e6a810740d7af4e3526d169b6b Mon Sep 17 00:00:00 2001
From: Maximilian Behnert-Brodhun <behnert-brodhun@sub.uni-goettingen.de>
Date: Thu, 1 Jul 2021 13:44:34 +0200
Subject: [PATCH] use correct fieldLoader function for DC in ListRecords

---
 .../middleware/RecordListDelivererDC.java     | 32 +++++++++++-
 .../textgrid/middleware/OaiPmhTestTG.java     | 50 +++++++++++++++++++
 2 files changed, 80 insertions(+), 2 deletions(-)

diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java
index 96d0a3e8..d071ab60 100644
--- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java
@@ -324,6 +324,34 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract {
     }
   }
 
+  
+  /*public DublinCoreBuilder putContentIntoDCFieldLists(JSONObject json) {
+	  
+	 // DublinCoreBuilder result = new DublinCoreBuilder();
+	  //result.setContributor(DublinCoreFieldLoader.fillList(responseWorkValues, this.contributorList));
+	    /*result.setCoverage(DublinCoreFieldLoader.fillList(responseWorkValues, this.coverageList));
+	    result.setCreator(DublinCoreFieldLoader.fillList(responseWorkValues, this.creatorList));
+	    result.setDate(DublinCoreFieldLoader.fillList(responseWorkValues, this.dateList));
+
+	    result.setDescription(
+	        DublinCoreFieldLoader.fillList(responseWorkValues, this.descriptionList));*/
+	    //result.setFormat(DublinCoreFieldLoader.fillList(hit, this.formatList));
+	    
+	   // result.setIdentifier(OAIPMHUtilities.fieldLoader(json, fields));
+	    //result.setLanguage(DublinCoreFieldLoader.fillList(hit, this.languageList));
+	    //result.setPublisher(DublinCoreFieldLoader.fillList(hit, this.publisherList));
+	    //result.setRelation(DublinCoreFieldLoader.fillList(hit, this.relationList));
+	    //result.setRelation(
+	    //   DublinCoreFieldLoader.fillList(responseWorkValues, this.relationsForWorkList));
+	    //result.setRights(DublinCoreFieldLoader.fillList(hit, this.rightList));
+	    //result.setSource(DublinCoreFieldLoader.fillList(hit, this.sourceList));
+	    //result.setSubject(DublinCoreFieldLoader.fillList(hit, this.subjectList));
+	    //result.setTitle(DublinCoreFieldLoader.fillList(hit, this.titleList));
+	   //result.setType(DublinCoreFieldLoader.fillList(responseWorkValues, this.typeList));
+	  
+	  //return result;
+  //}*/
+  
   /**
    * @param hit
    * @param responseWorkValues
@@ -345,7 +373,7 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract {
         DublinCoreFieldLoader.fillList(responseWorkValues, this.descriptionList));
     result.setFormat(DublinCoreFieldLoader.fillList(hit, this.formatList));
     //result.setIdentifier(DublinCoreFieldLoader.fillList(hit, this.identifierList));
-    result.setIdentifier(OAIPMHUtilities.fieldLoader(new JSONObject(hit.getSourceAsMap()), fields));
+    result.setIdentifier(OAIPMHUtilities.fieldLoader(new JSONObject(hit.getSourceAsMap()), this.identifierList));
     result.setLanguage(DublinCoreFieldLoader.fillList(hit, this.languageList));
     result.setPublisher(DublinCoreFieldLoader.fillList(hit, this.publisherList));
     result.setRelation(DublinCoreFieldLoader.fillList(hit, this.relationList));
@@ -379,7 +407,7 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract {
     result.setDescription(DublinCoreFieldLoader.fillList(hit, this.descriptionList));
     result.setFormat(DublinCoreFieldLoader.fillList(hit, this.formatList));
     //result.setIdentifier(DublinCoreFieldLoader.fillList(hit, this.identifierList));
-    result.setIdentifier(OAIPMHUtilities.fieldLoader(new JSONObject(hit.getSourceAsMap()), fields));
+    result.setIdentifier(OAIPMHUtilities.fieldLoader(new JSONObject(hit.getSourceAsMap()), this.identifierList));
     result.setLanguage(DublinCoreFieldLoader.fillList(hit, this.languageList));
     result.setPublisher(DublinCoreFieldLoader.fillList(hit, this.publisherList));
     result.setRelation(DublinCoreFieldLoader.fillList(hit, this.relationList));
diff --git a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTestTG.java b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTestTG.java
index b48168c8..b23c9434 100644
--- a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTestTG.java
+++ b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTestTG.java
@@ -122,6 +122,56 @@ public class OaiPmhTestTG {
 	  result.setIdentifier(identifier);
   }
   
+  
+  @Test
+  public void testGetArrayFromESIndexForListRecords() {
+	  String jsonAsString = "{\r\n"
+	  		+ "        \"administrativeMetadata\": {\r\n"
+	  		+ "            \"dcterms:created\": \"2021-06-16T17:15:48.689\",\r\n"
+	  		+ "            \"dcterms:creator\": \"StefanFunk@dariah.eu\",\r\n"
+	  		+ "            \"dcterms:extent\": 154064,\r\n"
+	  		+ "            \"dcterms:identifier\": \"hdl:21.T11991/0000-001B-4D41-4\",\r\n"
+	  		+ "            \"dcterms:modified\": \"2021-06-16T17:15:48.689\"\r\n"
+	  		+ "        },\r\n"
+	  		+ "        \"descriptiveMetadata\": {\r\n"
+	  		+ "            \"dc:creator\": \"fu\",\r\n"
+	  		+ "            \"dc:description\": \"just some ictures\",\r\n"
+	  		+ "            \"dc:format\": \"image/jpeg\",\r\n"
+	  		+ "            \"dc:identifier\": [\r\n"
+	  		+ "                \"hdl:21.T11991/0000-001B-4D41-4\",\r\n"
+	  		+ "                \"doi:10.20375/0000-001B-4D41-4\"\r\n"
+	  		+ "            ],\r\n"
+	  		+ "            \"dc:relation\": \"hdl:21.T11991/0000-001B-4D28-1\",\r\n"
+	  		+ "            \"dc:rights\": \"free\",\r\n"
+	  		+ "            \"dc:title\": \"2017-07-12-Waffel copy 2.jpeg\"\r\n"
+	  		+ "        },\r\n"
+	  		+ "        \"technicalMetadata\": {\r\n"
+	  		+ "            \"externalIdentifier\": \"fmt/43\",\r\n"
+	  		+ "            \"externalIdentifierType\": \"puid\",\r\n"
+	  		+ "            \"format\": \"JPEG File Interchange Format\",\r\n"
+	  		+ "            \"mimetype\": \"image/jpeg\",\r\n"
+	  		+ "            \"valid\": \"true\",\r\n"
+	  		+ "            \"version\": \"1.01\",\r\n"
+	  		+ "            \"well-formed\": \"true\"\r\n"
+	  		+ "        }\r\n"
+	  		+ "    }";
+	  
+	  JSONObject json = new JSONObject(jsonAsString);
+	  //System.out.println(json);
+	  DublinCoreBuilder result = new DublinCoreBuilder();
+	  List<String> identifier = new ArrayList<String>();
+	  String[] fieldsForIdentifier = {"descriptiveMetadata.dc:identifier"};
+	  System.out.println(OAIPMHUtilities.fieldLoader(json, DARIAHConstants.IDENTIFIER));
+	  identifier = OAIPMHUtilities.fieldLoader(json, fieldsForIdentifier);
+	  for(String id : identifier) {
+		  System.out.println(id);
+	  }
+	  
+	  result.setIdentifier(identifier);
+	  
+	  System.out.println(result);
+  }
+  
   @Test
   @Ignore
   public void testOpenAireIdentifierList() {
-- 
GitLab