diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java index 51ae51dafcd89176b7a5cb193283188ae2cbd63b..f1c719714ec82614f734ea84d3e85e2dfc3884ab 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java @@ -154,73 +154,121 @@ public class DublinCoreFieldLoader { return list; } - /** - * @param hit - * @param fields - * @return - */ - public static List<String> fillList(SearchHit hit, String[] fields) { - return fillList(hit, fields, ""); - } + // /** + // * @param hit + // * @param fields + // * @return + // */ + // public static List<String> fillList(SearchHit hit, String[] fields) { + // return fillList(hit, fields, ""); + // } + + // /** + // * @param hit + // * @param fields + // * @param prefix + // * @return + // */ + // public static List<String> fillList(SearchHit hit, String[] fields, String prefix) { + // + // List<String> list = new ArrayList<String>(); + // + // System.out.println("i. fields: " + fields); + // + // if (fields != null) { + // for (String field : fields) { + // + // System.out.println("ii. field: " + field); + // + // if (hit.getSourceAsMap().get(field) == null) { + // String[] requestedField = field.split(OAIPMHUtilities.ES_DIVIDER_REGEXP); + // Map<String, Object> nestedMap = hit.getSourceAsMap(); + // String valueOfRequestedField = null; + // Map<String, Object> nestedMap2 = null; + // // TODO Loop exactly what? --> Document! + // for (int i = 0; i < requestedField.length; i++) { + // + // System.out.println("iii. field[" + i + "]: " + requestedField[i]); + // + // if (i < requestedField.length - 1 && nestedMap != null + // && nestedMap.get(requestedField[i]) != null) { + // try { + // nestedMap2 = (Map<String, Object>) nestedMap.get(requestedField[i]); + // } catch (ClassCastException e) { + // e.printStackTrace(); + // } + // } + // if (i == requestedField.length - 1 && nestedMap2 != null + // && nestedMap2.get(requestedField[i]) != null) { + // valueOfRequestedField = nestedMap2.get(requestedField[i]).toString(); + // + // System.out + // .println("valueOfRequestedField.length(): " + valueOfRequestedField.length()); + // + // if (valueOfRequestedField.length() > 0) { + // // Only add list entry if prefix is empty or beginning with prefix otherwise! + // + // System.out.println("valueOfRequestedField: " + valueOfRequestedField); + // + // if (prefix.isEmpty() || valueOfRequestedField.startsWith(prefix)) { + // list.add(valueOfRequestedField); + // } + // } + // } + // nestedMap = nestedMap2; + // } + // } else { + // // Only add list entry if prefix is empty or beginning with prefix otherwise! + // String value = hit.getSourceAsMap().get(field).toString(); + // + // System.out.println("value: " + value); + // + // if (prefix.isEmpty() || value.startsWith(prefix)) { + // list.add(value); + // } + // } + // } + // } + // + // return list; + // } /** * @param hit * @param fields - * @param prefix * @return */ - public static List<String> fillList(SearchHit hit, String[] fields, String prefix) { + public static List<String> fillList(SearchHit hit, String[] fields) { List<String> list = new ArrayList<String>(); if (fields != null) { for (String field : fields) { if (hit.getSourceAsMap().get(field) == null) { - String[] requestedField = field.split(OAIPMHUtilities.ES_DIVIDER_REGEXP); + String[] requestedField = field.split("\\."); Map<String, Object> nestedMap = hit.getSourceAsMap(); String valueOfRequestedField = null; Map<String, Object> nestedMap2 = null; - // TODO Loop exactly what? --> Document! for (int i = 0; i < requestedField.length; i++) { - - System.out.println("field[" + i + "]: " + requestedField[i]); - if (i < requestedField.length - 1 && nestedMap != null && nestedMap.get(requestedField[i]) != null) { try { nestedMap2 = (Map<String, Object>) nestedMap.get(requestedField[i]); - } catch (ClassCastException e) { - e.printStackTrace(); + } catch (ClassCastException cce) { + } } - if (i == requestedField.length - 1 && nestedMap2 != null - && nestedMap2.get(requestedField[i]) != null) { + if (i == requestedField.length - 1 && + nestedMap2 != null && nestedMap2.get(requestedField[i]) != null) { valueOfRequestedField = nestedMap2.get(requestedField[i]).toString(); - - System.out - .println("valueOfRequestedField.length(): " + valueOfRequestedField.length()); - if (valueOfRequestedField.length() > 0) { - // Only add list entry if prefix is empty or beginning with prefix otherwise! - - System.out.println("valueOfRequestedField: " + valueOfRequestedField); - - if (prefix.isEmpty() || valueOfRequestedField.startsWith(prefix)) { - list.add(valueOfRequestedField); - } + list.add(valueOfRequestedField); } } nestedMap = nestedMap2; } } else { - // Only add list entry if prefix is empty or beginning with prefix otherwise! - String value = hit.getSourceAsMap().get(field).toString(); - - System.out.println("value: " + value); - - if (prefix.isEmpty() || value.startsWith(prefix)) { - list.add(value); - } + list.add(hit.getSourceAsMap().get(field).toString()); } } } 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 45931d16b81a66db32323c45db7c7933fdfd093f..99a8b99dbef439cf8c95c9a0459952fb6215fe24 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDC.java @@ -265,12 +265,17 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract { // DARIAH search! else if (this.dariah == true) { - List<String> identifierList = - DublinCoreFieldLoader.fillList(hit, DARIAHConstants.IDENTIFIER_LIST, "hdl:"); + // Get identifier field. + String identifier = OAIPMHUtilities.fieldLoader(json, this.identifierField); - System.out.println("identifierList: " + identifierList); + // List<String> identifierList = + // DublinCoreFieldLoader.fillList(hit, DARIAHConstants.IDENTIFIER_LIST, "hdl:"); - String setSpec = identifierList.get(0); + // System.out.println("identifierList: " + identifierList); + + // String setSpec = identifierList.get(0); + + String setSpec = identifier; System.out.println("setSpec: " + setSpec); @@ -285,8 +290,20 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract { e.printStackTrace(); } - buildRecord(recordList, set, hit.getSourceAsMap().get(this.identifierField).toString(), - dublinCoreBuilder, setSpec); + System.out.println("v. recordList: " + (recordList == null ? "NULL" : recordList)); + System.out.println("v. set: " + (set == null ? "NULL" : set)); + System.out.println("v. dublinCoreBuilder: " + + (dublinCoreBuilder == null ? "NULL" : dublinCoreBuilder)); + System.out.println("v. setSpec: " + (setSpec == null ? "NULL" : setSpec)); + // System.out.println("v. hit.krams: " + // + (hit.getSourceAsMap().get(this.identifierField).toString() == null ? "NULL" + // : hit.getSourceAsMap().get(this.identifierField).toString())); + + // buildRecord(recordList, set, + // hit.getSourceAsMap().get(this.identifierField).toString(), + // dublinCoreBuilder, setSpec); + + buildRecord(recordList, set, identifier, dublinCoreBuilder, setSpec); } } } @@ -439,12 +456,13 @@ public class RecordListDelivererDC extends RecordListDelivererAbstract { try { System.out.println(" ## getRecords() --> " - + (query != null ? "queryName=" + query.getName() : "query=NULL") + " - " - + (recordList != null ? recordList : "recordList=NULL") + " - " - + (resumptionToken != null ? resumptionToken : "resumptionToken=NULL") + " - " + + (query != null ? "queryName=" + query.getName() : "query=NULL") + " | " + + (recordList != null ? recordList : "recordList=NULL") + " | " + + (resumptionToken != null ? resumptionToken : "resumptionToken=NULL") + " | " + (set != null ? set : "set=NULL")); fetchFields(query, recordList, resumptionToken, set); + } catch (UnsupportedEncodingException e) { e.printStackTrace(); }