diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/OpenAireRecordList.java b/oaipmh-core/src/main/java/info/textgrid/middleware/OpenAireRecordList.java index d1dfbdd52e4e3ae94aca79425993c983096e2fb9..c09da5667ab97dd57d1ac5cd4a96f1cd04593812 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/OpenAireRecordList.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/OpenAireRecordList.java @@ -2,7 +2,11 @@ package info.textgrid.middleware; import java.io.IOException; import java.text.ParseException; +import java.util.ArrayList; +import java.util.List; import javax.xml.datatype.DatatypeConfigurationException; +import org.elasticsearch.index.query.QueryBuilder; +import org.elasticsearch.index.query.QueryBuilders; import info.textgrid.middleware.oaipmh.GetRecordType; import info.textgrid.middleware.oaipmh.HeaderType; import info.textgrid.middleware.oaipmh.ListRecordsType; @@ -86,6 +90,69 @@ public class OpenAireRecordList extends RecordListDelivererAbstract { return null; } + /** + * @param from + * @param to + * @param set + * @param resumptionToken + * @return + */ + private List<String> getUriList(String from, String to, String set, String resumptionToken) { + + System.out.println(" ## fields getUriList"); + for (int i = 0; i < this.fields.length; i++) { + System.out.println("\t" + this.fields[i]); + } + + List<String> result = new ArrayList<String>(); + + QueryBuilder query; + + // log.debug("rangefield: " + this.dateOfObjectCreation); + + QueryBuilder rangeQuery = QueryBuilders.rangeQuery(this.dateOfObjectCreation).from(from).to(to); + QueryBuilder filterSandBox = QueryBuilders.matchPhraseQuery("nearlyPublished", "true"); + + if (set != null && !set.equals("openaire_data")) { + String[] setParts = set.split(":"); + String queryField = setParts[0]; + String valueField = setParts[1]; + + // log.debug("queryField: " + queryField); + // log.debug("valueField: " + valueField); + + // I do not understand this, can possibly be deleted? + // String queryField = ""; + // String valueField = ""; + // + // if (setParts[0].equals(TGConstants.SET_FIELD_FOR_TEXTGRID)) { + // queryField = TGConstants.PROJECT_ID_FOR_TEXTGRID; + // valueField = setParts[1]; + // } + + QueryBuilder matchQuery = QueryBuilders.matchPhraseQuery(queryField, valueField); + if (this.textgrid) { + query = QueryBuilders.boolQuery().must(rangeQuery).must(matchQuery).mustNot(filterSandBox); + } else { + query = QueryBuilders.boolQuery().must(rangeQuery).must(matchQuery); + } + } else { + if (this.textgrid) { + query = QueryBuilders.boolQuery().must(rangeQuery).mustNot(filterSandBox); + } else { + query = QueryBuilders.boolQuery().must(rangeQuery); + } + } + + // log.debug("query:\n" + query); + + result = getFieldsFromESIndex(query, resumptionToken, set); + + // log.debug("result: " + result); + + return result; + } + // GETTER AND SETTER /* diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererAbstract.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererAbstract.java index 7784af013009b074b49de0a7d5680f57b7d9b942..8a81a5755fae3af4f067e1898f6466dcd3c4cb09 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererAbstract.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererAbstract.java @@ -63,68 +63,69 @@ public abstract class RecordListDelivererAbstract implements RecordListDeliverer this.dariah = dariah; } - /** - * @param from - * @param to - * @param set - * @param resumptionToken - * @return - */ - protected List<String> getUriList(String from, String to, String set, String resumptionToken) { - - System.out.println(" ## fields getUriList"); - for (int i = 0; i < this.fields.length; i++) { - System.out.println("\t" + this.fields[i]); - } - - List<String> result = new ArrayList<String>(); - - QueryBuilder query; - - log.debug("rangefield: " + this.dateOfObjectCreation); - - QueryBuilder rangeQuery = QueryBuilders.rangeQuery(this.dateOfObjectCreation).from(from).to(to); - QueryBuilder filterSandBox = QueryBuilders.matchPhraseQuery("nearlyPublished", "true"); - - if (set != null && !set.equals("openaire_data")) { - String[] setParts = set.split(":"); - String queryField = setParts[0]; - String valueField = setParts[1]; - - log.debug("queryField: " + queryField); - log.debug("valueField: " + valueField); - - // I do not understand this, can possibly be deleted? - // String queryField = ""; - // String valueField = ""; - // - // if (setParts[0].equals(TGConstants.SET_FIELD_FOR_TEXTGRID)) { - // queryField = TGConstants.PROJECT_ID_FOR_TEXTGRID; - // valueField = setParts[1]; - // } - - QueryBuilder matchQuery = QueryBuilders.matchPhraseQuery(queryField, valueField); - if (this.textgrid) { - query = QueryBuilders.boolQuery().must(rangeQuery).must(matchQuery).mustNot(filterSandBox); - } else { - query = QueryBuilders.boolQuery().must(rangeQuery).must(matchQuery); - } - } else { - if (this.textgrid) { - query = QueryBuilders.boolQuery().must(rangeQuery).mustNot(filterSandBox); - } else { - query = QueryBuilders.boolQuery().must(rangeQuery); - } - } - - log.debug("query:\n" + query); - - result = getFieldsFromESIndex(query, resumptionToken, set); - - log.debug("result: " + result); - - return result; - } + // /** + // * @param from + // * @param to + // * @param set + // * @param resumptionToken + // * @return + // */ + // protected List<String> getUriList(String from, String to, String set, String resumptionToken) { + // + // System.out.println(" ## fields getUriList"); + // for (int i = 0; i < this.fields.length; i++) { + // System.out.println("\t" + this.fields[i]); + // } + // + // List<String> result = new ArrayList<String>(); + // + // QueryBuilder query; + // + // log.debug("rangefield: " + this.dateOfObjectCreation); + // + // QueryBuilder rangeQuery = + // QueryBuilders.rangeQuery(this.dateOfObjectCreation).from(from).to(to); + // QueryBuilder filterSandBox = QueryBuilders.matchPhraseQuery("nearlyPublished", "true"); + // + // if (set != null && !set.equals("openaire_data")) { + // String[] setParts = set.split(":"); + // String queryField = setParts[0]; + // String valueField = setParts[1]; + // + // log.debug("queryField: " + queryField); + // log.debug("valueField: " + valueField); + // + // // I do not understand this, can possibly be deleted? + // // String queryField = ""; + // // String valueField = ""; + // // + // // if (setParts[0].equals(TGConstants.SET_FIELD_FOR_TEXTGRID)) { + // // queryField = TGConstants.PROJECT_ID_FOR_TEXTGRID; + // // valueField = setParts[1]; + // // } + // + // QueryBuilder matchQuery = QueryBuilders.matchPhraseQuery(queryField, valueField); + // if (this.textgrid) { + // query = QueryBuilders.boolQuery().must(rangeQuery).must(matchQuery).mustNot(filterSandBox); + // } else { + // query = QueryBuilders.boolQuery().must(rangeQuery).must(matchQuery); + // } + // } else { + // if (this.textgrid) { + // query = QueryBuilders.boolQuery().must(rangeQuery).mustNot(filterSandBox); + // } else { + // query = QueryBuilders.boolQuery().must(rangeQuery); + // } + // } + // + // log.debug("query:\n" + query); + // + // result = getFieldsFromESIndex(query, resumptionToken, set); + // + // log.debug("result: " + result); + // + // return result; + // } /** * @param query diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDATACITE.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDATACITE.java index 66dec57de025694b793374bc0b4fc9f01c7c6657..a4dba411dbe7893c0fab8a84426c58f47254a7e2 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDATACITE.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordListDelivererDATACITE.java @@ -59,57 +59,57 @@ public class RecordListDelivererDATACITE extends RecordListDelivererAbstract { ListRecordsType openAireRecordList = new ListRecordsType(); - for (String uri : getUriList(from, to, set, resumptionToken)) { - - log.debug("uri: " + uri); - - String eventuallyChangedUri = uri; - - // ** - // TextGrid - // ** - - if (this.textgrid) { - // We must remove the prefix, as ElasticSearch is storing the IDs without it. - eventuallyChangedUri = uri.replace("textgrid:", ""); - } - - // ** - // DARIAH - // ** - - else if (this.dariah) { - eventuallyChangedUri = uri; - } - - log.debug("eventuallyChangedUri: " + eventuallyChangedUri); - - try { - RecordDelivererDATACITE openAireRecord = - new RecordDelivererDATACITE(this.textgrid, this.dariah); - - // DAMIT GEHT'S: - // openAireRecord.setFields(this.fields); - // openAireRecord.setRepositoryObjectURIPrefix(this.repositoryObjectURIPrefix); - // openAireRecord.setDateOfObjectCreation(this.dateOfObjectCreation); - - System.out.println(" ## fields openAireRecord"); - for (int i = 0; i < openAireRecord.getFields().length; i++) { - System.out.println("\t" + openAireRecord.getFields()[i]); - } - - openAireRecordList.getRecord() - .add(openAireRecord.getRecordById(eventuallyChangedUri).getRecord()); - - // In IDIOM so: - // RecordDelivererIDIOM idiomRecord = new RecordDelivererIDIOM(true, false); - // recordList.getRecord() - // .add(idiomRecord.getRecordById(textgridURI.replace(".0", "")).getRecord()); - - } catch (DatatypeConfigurationException e) { - e.printStackTrace(); - } - } +// for (String uri : getUriList(from, to, set, resumptionToken)) { +// +// log.debug("uri: " + uri); +// +// String eventuallyChangedUri = uri; +// +// // ** +// // TextGrid +// // ** +// +// if (this.textgrid) { +// // We must remove the prefix, as ElasticSearch is storing the IDs without it. +// eventuallyChangedUri = uri.replace("textgrid:", ""); +// } +// +// // ** +// // DARIAH +// // ** +// +// else if (this.dariah) { +// eventuallyChangedUri = uri; +// } +// +// log.debug("eventuallyChangedUri: " + eventuallyChangedUri); +// +// try { +// RecordDelivererDATACITE openAireRecord = +// new RecordDelivererDATACITE(this.textgrid, this.dariah); +// +// // DAMIT GEHT'S: +// // openAireRecord.setFields(this.fields); +// // openAireRecord.setRepositoryObjectURIPrefix(this.repositoryObjectURIPrefix); +// // openAireRecord.setDateOfObjectCreation(this.dateOfObjectCreation); +// +// System.out.println(" ## fields openAireRecord"); +// for (int i = 0; i < openAireRecord.getFields().length; i++) { +// System.out.println("\t" + openAireRecord.getFields()[i]); +// } +// +// openAireRecordList.getRecord() +// .add(openAireRecord.getRecordById(eventuallyChangedUri).getRecord()); +// +// // In IDIOM so: +// // RecordDelivererIDIOM idiomRecord = new RecordDelivererIDIOM(true, false); +// // recordList.getRecord() +// // .add(idiomRecord.getRecordById(textgridURI.replace(".0", "")).getRecord()); +// +// } catch (DatatypeConfigurationException e) { +// e.printStackTrace(); +// } +// } // if (resTokenForResponse != null) { // System.out.println("RESTOKEN: ");