From 24ac3dda1a63ded0cefa0cade0e3e78e79d21960 Mon Sep 17 00:00:00 2001 From: "Stefan E. Funk" <funk@sub.uni-goettingen.de> Date: Fri, 18 Jun 2021 10:27:04 +0200 Subject: [PATCH] Use utils for dividing values --- .../middleware/DublinCoreBuilder.java | 4 +- .../middleware/IdentifierListDelivererDC.java | 120 ++++++++++-------- .../textgrid/middleware/OaiPmhTestDH.java | 2 +- 3 files changed, 68 insertions(+), 58 deletions(-) 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 60733723..17386deb 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreBuilder.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreBuilder.java @@ -165,7 +165,9 @@ public final class DublinCoreBuilder { public void setIdentifier(List<String> identifiers) { for (String dcidentifier : identifiers) { - System.out.println("hooray"); + + // 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/IdentifierListDelivererDC.java b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java index ffc7b063..defda4a5 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/IdentifierListDelivererDC.java @@ -18,12 +18,11 @@ import org.elasticsearch.index.query.QueryBuilder; 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.JSONObject; +import info.textgrid.middleware.common.TextGridMimetypes; import info.textgrid.middleware.oaipmh.HeaderType; import info.textgrid.middleware.oaipmh.ListIdentifiersType; import info.textgrid.middleware.oaipmh.ResumptionTokenType; -import info.textgrid.middleware.common.TextGridMimetypes; - /** * <p> @@ -31,7 +30,8 @@ import info.textgrid.middleware.common.TextGridMimetypes; * </p> * * @author Maximilian Brodhun, SUB Göttingen - * @version 2019-10-28 + * @author Stefan E. Funk, SUB Göttingen + * @version 2021-06-18 * @since 2014-02-20 */ @@ -124,7 +124,7 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract { String[] includes = this.identifierListFields; String[] excludes = Strings.EMPTY_ARRAY; // TODO: necessary? - FetchSourceContext fetchSourceContext = new FetchSourceContext(true, includes, excludes); + // FetchSourceContext fetchSourceContext = new FetchSourceContext(true, includes, excludes); SearchRequest searchRequest = new SearchRequest(OAI_ESClient.getEsIndex()).searchType(SearchType.QUERY_THEN_FETCH); @@ -165,12 +165,12 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract { long size = listFurtherValues.getHits().totalHits; setResultSize(size); - System.out.println(" ## hits --> " + size); + // System.out.println(" ## hits --> " + size); for (SearchHit hit : listFurtherValues.getHits().getHits()) { i++; - System.out.println(" ## hit --> " + hit.getId()); + // System.out.println(" ## hit --> " + hit.getId()); // Handle TextGrid. if (this.textgrid) { @@ -190,44 +190,49 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract { // Handle DARIAH. else if (this.dariah) { - System.out.println(" ## dateOfObjectCreation --> " + this.dateOfObjectCreation); + // System.out.println(" ## dateOfObjectCreation --> " + this.dateOfObjectCreation); + + JSONObject json = new JSONObject(hit.getSourceAsMap()); // Get modifiedDate field. if (this.dateOfObjectCreation.contains(DH_ES_DIVIDER_CHAR)) { - // Divide object. - String dateOfObjectCreationEntries[] = - this.dateOfObjectCreation.split(DH_ES_DIVIDER_REGEXP); - - System.out.println(" ## divider --> " + DH_ES_DIVIDER_CHAR); - System.out.println(" ## length of dOOCD --> " + dateOfObjectCreationEntries.length); - System.out.println(" ## dOOCD --> " + dateOfObjectCreationEntries); - - if (dateOfObjectCreationEntries.length != 2) { - // FIXME Go to ERROR state! - } else { - String prefix = dateOfObjectCreationEntries[0]; - String suffix = dateOfObjectCreationEntries[1]; - - if (hit.getSourceAsMap().containsKey(prefix)) { - HashMap<String, Object> prefixMap = - (HashMap<String, Object>) hit.getSourceAsMap().get(prefix); - - System.out.println(" ## prefix value (" + prefix + ") --> " + prefixMap); - - this.datestamp = prefixMap.get(suffix).toString(); - } - } + this.datestamp = OAIPMHUtilities.fieldLoader(json, this.dateOfObjectCreation); + +// // Divide object. +// String dateOfObjectCreationEntries[] = +// this.dateOfObjectCreation.split(DH_ES_DIVIDER_REGEXP); +// +// // System.out.println(" ## divider --> " + DH_ES_DIVIDER_CHAR); +// // System.out.println(" ## length of dOOCD --> " + dateOfObjectCreationEntries.length); +// // System.out.println(" ## dOOCD --> " + dateOfObjectCreationEntries); +// +// if (dateOfObjectCreationEntries.length != 2) { +// // FIXME Go to ERROR state! +// } else { +// String prefix = dateOfObjectCreationEntries[0]; +// String suffix = dateOfObjectCreationEntries[1]; +// +// if (hit.getSourceAsMap().containsKey(prefix)) { +// +// HashMap<String, Object> prefixMap = +// (HashMap<String, Object>) hit.getSourceAsMap().get(prefix); +// +// // System.out.println(" ## prefix value (" + prefix + ") --> " + prefixMap); +// +// this.datestamp = prefixMap.get(suffix).toString(); +// } +// } } else { this.datestamp = hit.getSourceAsMap().get(this.dateOfObjectCreation).toString(); } // Convert datestamp. try { - System.out.println(" ## datestamp --> " + this.datestamp); + // System.out.println(" ## datestamp --> " + this.datestamp); this.datestamp = OAIPMHUtilities.convertDateFormat(this.datestamp).toXMLFormat(); - System.out.println(" ## datestamp converted --> " + this.datestamp); + // System.out.println(" ## datestamp converted --> " + this.datestamp); } catch (ParseException e) { log.debug(e); @@ -240,34 +245,37 @@ public class IdentifierListDelivererDC extends IdentifierListDelivererAbstract { // Get identifier field. String identifier = ""; if (this.identifierField.contains(DH_ES_DIVIDER_CHAR)) { - // Divide object. - String identifierEntries[] = this.identifierField.split(DH_ES_DIVIDER_REGEXP); - - System.out.println(" ## divider --> " + DH_ES_DIVIDER_CHAR); - System.out.println(" ## length of iE --> " + identifierEntries.length); - System.out.println(" ## iE --> " + identifierEntries); - - if (identifierEntries.length != 2) { - // FIXME Go to ERROR state! - } else { - String prefix = identifierEntries[0]; - String suffix = identifierEntries[1]; - - if (hit.getSourceAsMap().containsKey(prefix)) { - - HashMap<String, Object> prefixMap = - (HashMap<String, Object>) hit.getSourceAsMap().get(prefix); - - System.out.println(" ## prefix value (" + prefix + ") --> " + prefixMap); - identifier = prefixMap.get(suffix).toString(); - } - } + identifier = OAIPMHUtilities.fieldLoader(json, this.identifierField); + +// // Divide object. +// String identifierEntries[] = this.identifierField.split(DH_ES_DIVIDER_REGEXP); +// +// // System.out.println(" ## divider --> " + DH_ES_DIVIDER_CHAR); +// // System.out.println(" ## length of iE --> " + identifierEntries.length); +// // System.out.println(" ## iE --> " + identifierEntries); +// +// if (identifierEntries.length != 2) { +// // FIXME Go to ERROR state! +// } else { +// String prefix = identifierEntries[0]; +// String suffix = identifierEntries[1]; +// +// if (hit.getSourceAsMap().containsKey(prefix)) { +// +// HashMap<String, Object> prefixMap = +// (HashMap<String, Object>) hit.getSourceAsMap().get(prefix); +// +// // System.out.println(" ## prefix value (" + prefix + ") --> " + prefixMap); +// +// identifier = prefixMap.get(suffix).toString(); +// } +// } } else { identifier = hit.getSourceAsMap().get(this.identifierField).toString(); } - System.out.println(" ## identifier --> " + identifier); + // System.out.println(" ## identifier --> " + identifier); lit = setListIdentifierHeader(this.datestamp, identifier, lit, set); } diff --git a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTestDH.java b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTestDH.java index 03b1db95..0cb8240e 100644 --- a/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTestDH.java +++ b/oaipmh-core/src/test/java/info/textgrid/middleware/OaiPmhTestDH.java @@ -9,7 +9,7 @@ import info.textgrid.middleware.oaipmh.GranularityType; import info.textgrid.middleware.common.TextGridMimetypes; /** - * + * FIXME: Add documentation how to use this class, use SSH tunneling? */ @Ignore public class OaiPmhTestDH { -- GitLab