diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreBuilder.java b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreBuilder.java index c9d9c5b1ae8510d53b60023aee3144947d0d80c9..607337234853dea29c823784ef2e456e618cfcac 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreBuilder.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreBuilder.java @@ -163,7 +163,9 @@ public final class DublinCoreBuilder { * @param identifiers */ public void setIdentifier(List<String> identifiers) { + for (String dcidentifier : identifiers) { + System.out.println("hooray"); ElementType identifierElement = new ElementType(); identifierElement.setValue(dcidentifier); JAXBElement<ElementType> dcCoreIdentifier = oaiDcObj.createIdentifier(identifierElement); diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java index 643ecf72ab7727d45e3a2db0d4af34732acd2aa2..6a77e7848b4ab402ceae46eee75df151eed6234f 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OAIPMHUtilities.java @@ -43,6 +43,7 @@ import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; +import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import info.textgrid.clients.AuthClient; @@ -472,8 +473,18 @@ public class OAIPMHUtilities { } else if (fieldPathForESIndex.length == 1) { fieldResulsts.add(resultFromGetRequestInES.get(fieldPathForESIndex[i]).toString()); - } else { - fieldResulsts.add(singlePath.get(fieldPathForESIndex[i]).toString()); + } else { + String res = singlePath.get(fieldPathForESIndex[i]).toString(); + if(res.startsWith("[")) { + JSONArray array = new JSONArray(res); + for(int j=0; j<array.length(); j++) { + String find = array.getString(j).toString(); + fieldResulsts.add(find); + } + }else { + fieldResulsts.add(singlePath.get(fieldPathForESIndex[i]).toString()); + } + } } } 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 f6cae25904f1cb6e7d3e93061cf720949105bdf2..b48168c8fc11d8f0043e4475c5233d343c5e1c41 100644 --- a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTestTG.java +++ b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTestTG.java @@ -110,13 +110,16 @@ public class OaiPmhTestTG { 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)); - /*for(String id : identifier) { + identifier = OAIPMHUtilities.fieldLoader(json, fieldsForIdentifier); + for(String id : identifier) { System.out.println(id); - }*/ + } + + result.setIdentifier(identifier); } @Test