Skip to content
Snippets Groups Projects
Commit c1b2b193 authored by mbrodhu's avatar mbrodhu
Browse files

Enable empty resumption token in last duration

parent 8345f381
No related branches found
No related tags found
No related merge requests found
...@@ -168,57 +168,63 @@ public class OAIPMHUtilities { ...@@ -168,57 +168,63 @@ public class OAIPMHUtilities {
* @return A resumption token if applicable, null otherwise. * @return A resumption token if applicable, null otherwise.
*/ */
public static ResumptionTokenType getResumptionToken(final long completeListSize, public static ResumptionTokenType getResumptionToken(final long completeListSize,
final String resumptionToken, Map<String, Integer> cursorCollector, final String scrollID, final String resumptionToken, Map<String, Integer> cursorCollector, final String scrollID,
final int searchResponseSize, final int i) { final int searchResponseSize, final int i) {
log.info("Creating a ResumptionToken:\n " + log.info("Creating a ResumptionToken:\n " +
"CompleteListSize: " + completeListSize + "\n" + "CompleteListSize: " + completeListSize + "\n" +
"ResumptionToken: " + resumptionToken + "\n" + "ResumptionToken: " + resumptionToken + "\n" +
"CursorCollector: " + cursorCollector + "\n" + "CursorCollector: " + cursorCollector + "\n" +
"ScrollID: " + scrollID + "\n" + "ScrollID: " + scrollID + "\n" +
"SearchResponseSize: " + scrollID + "\n" + "SearchResponseSize: " + scrollID + "\n" +
"IterationStep: " + i); "IterationStep: " + i);
int cursor; int cursor;
// Three cases here: // Three cases here:
// 1. Complete list size is > searchResponseSize and a token already is existing: we need to // 1. Complete list size is > searchResponseSize and a token already is existing: we need to
// check hash map! // check hash map!
// 2. Complete list size is > searchResponseSize and we have no token: we do need one! // 2. Complete list size is > searchResponseSize and we have no token: we do need one!
// 3. Complete list size is <= searchResponseSize (we do not need a token! do nothing!) // 3. Complete list size is <= searchResponseSize (we do not need a token! do nothing!)
if (completeListSize > searchResponseSize) { if (completeListSize > searchResponseSize) {
ResumptionTokenType resTokenForResponse = new ResumptionTokenType(); ResumptionTokenType resTokenForResponse = new ResumptionTokenType();
if (resumptionToken != null && cursorCollector.containsKey(resumptionToken)) { if (resumptionToken != null && cursorCollector.containsKey(resumptionToken)) {
cursor = cursorCollector.get(resumptionToken).intValue() + i; cursor = cursorCollector.get(resumptionToken).intValue() + i;
resTokenForResponse.setCursor(BigInteger.valueOf((long) cursor)); if(cursor-searchResponseSize == 0) {
cursorCollector.put(scrollID, cursor); cursor *= 2;
} else { }
resTokenForResponse.setCursor(BigInteger.valueOf(searchResponseSize)); resTokenForResponse.setCursor(BigInteger.valueOf((long) cursor));
cursorCollector.put(scrollID, searchResponseSize); cursorCollector.put(scrollID, cursor);
cursor = 0; } else {
} resTokenForResponse.setCursor(BigInteger.valueOf(searchResponseSize));
cursorCollector.put(scrollID, searchResponseSize);
// Set resumption token string if cursor is less then complete list size: More objects can be cursor = searchResponseSize;
// delivered! resTokenForResponse.setCursor(BigInteger.valueOf((long) cursor));
if (cursor < completeListSize) {
resTokenForResponse.setValue(scrollID); }
}
// Set resumption token string if cursor is less then complete list size: More objects can be
// Remove resumption token string if cursor is bigger then or equal complete list size: This // delivered!
// is the last response, no more objects are available! if (cursor < completeListSize) {
if (cursor >= completeListSize) { resTokenForResponse.setValue(scrollID);
resTokenForResponse.setValue(""); }
}
// Remove resumption token string if cursor is bigger then or equal complete list size: This
// Set complete list size. // is the last response, no more objects are available!
resTokenForResponse.setCompleteListSize(BigInteger.valueOf(completeListSize)); if (cursor >= completeListSize) {
//cursor =;
return resTokenForResponse; resTokenForResponse.setValue("");
} }
return null; // Set complete list size.
} resTokenForResponse.setCompleteListSize(BigInteger.valueOf(completeListSize));
return resTokenForResponse;
}
return null;
}
} }
...@@ -97,6 +97,7 @@ public class RecordListDelivererIDIOM extends RecordListDelivererAbstract { ...@@ -97,6 +97,7 @@ public class RecordListDelivererIDIOM extends RecordListDelivererAbstract {
String scrollID = scrollResp.getScrollId(); String scrollID = scrollResp.getScrollId();
long completeListSize = scrollResp.getHits().totalHits(); long completeListSize = scrollResp.getHits().totalHits();
//long completeListSize = 70;
//System.out.println(completeListSize); //System.out.println(completeListSize);
//System.out.println(completeListSize + " || " + artefactURIs.size()); //System.out.println(completeListSize + " || " + artefactURIs.size());
if (completeListSize > 0) { if (completeListSize > 0) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment