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 {
* @return A resumption token if applicable, null otherwise.
*/
public static ResumptionTokenType getResumptionToken(final long completeListSize,
final String resumptionToken, Map<String, Integer> cursorCollector, final String scrollID,
final int searchResponseSize, final int i) {
log.info("Creating a ResumptionToken:\n " +
"CompleteListSize: " + completeListSize + "\n" +
"ResumptionToken: " + resumptionToken + "\n" +
"CursorCollector: " + cursorCollector + "\n" +
"ScrollID: " + scrollID + "\n" +
"SearchResponseSize: " + scrollID + "\n" +
"IterationStep: " + i);
int cursor;
// Three cases here:
// 1. Complete list size is > searchResponseSize and a token already is existing: we need to
// check hash map!
// 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!)
if (completeListSize > searchResponseSize) {
ResumptionTokenType resTokenForResponse = new ResumptionTokenType();
if (resumptionToken != null && cursorCollector.containsKey(resumptionToken)) {
cursor = cursorCollector.get(resumptionToken).intValue() + i;
resTokenForResponse.setCursor(BigInteger.valueOf((long) cursor));
cursorCollector.put(scrollID, cursor);
} else {
resTokenForResponse.setCursor(BigInteger.valueOf(searchResponseSize));
cursorCollector.put(scrollID, searchResponseSize);
cursor = 0;
}
// Set resumption token string if cursor is less then complete list size: More objects can be
// delivered!
if (cursor < completeListSize) {
resTokenForResponse.setValue(scrollID);
}
// Remove resumption token string if cursor is bigger then or equal complete list size: This
// is the last response, no more objects are available!
if (cursor >= completeListSize) {
resTokenForResponse.setValue("");
}
// Set complete list size.
resTokenForResponse.setCompleteListSize(BigInteger.valueOf(completeListSize));
return resTokenForResponse;
}
return null;
}
final String resumptionToken, Map<String, Integer> cursorCollector, final String scrollID,
final int searchResponseSize, final int i) {
log.info("Creating a ResumptionToken:\n " +
"CompleteListSize: " + completeListSize + "\n" +
"ResumptionToken: " + resumptionToken + "\n" +
"CursorCollector: " + cursorCollector + "\n" +
"ScrollID: " + scrollID + "\n" +
"SearchResponseSize: " + scrollID + "\n" +
"IterationStep: " + i);
int cursor;
// Three cases here:
// 1. Complete list size is > searchResponseSize and a token already is existing: we need to
// check hash map!
// 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!)
if (completeListSize > searchResponseSize) {
ResumptionTokenType resTokenForResponse = new ResumptionTokenType();
if (resumptionToken != null && cursorCollector.containsKey(resumptionToken)) {
cursor = cursorCollector.get(resumptionToken).intValue() + i;
if(cursor-searchResponseSize == 0) {
cursor *= 2;
}
resTokenForResponse.setCursor(BigInteger.valueOf((long) cursor));
cursorCollector.put(scrollID, cursor);
} else {
resTokenForResponse.setCursor(BigInteger.valueOf(searchResponseSize));
cursorCollector.put(scrollID, searchResponseSize);
cursor = searchResponseSize;
resTokenForResponse.setCursor(BigInteger.valueOf((long) cursor));
}
// Set resumption token string if cursor is less then complete list size: More objects can be
// delivered!
if (cursor < completeListSize) {
resTokenForResponse.setValue(scrollID);
}
// Remove resumption token string if cursor is bigger then or equal complete list size: This
// is the last response, no more objects are available!
if (cursor >= completeListSize) {
//cursor =;
resTokenForResponse.setValue("");
}
// Set complete list size.
resTokenForResponse.setCompleteListSize(BigInteger.valueOf(completeListSize));
return resTokenForResponse;
}
return null;
}
}
......@@ -97,6 +97,7 @@ public class RecordListDelivererIDIOM extends RecordListDelivererAbstract {
String scrollID = scrollResp.getScrollId();
long completeListSize = scrollResp.getHits().totalHits();
//long completeListSize = 70;
//System.out.println(completeListSize);
//System.out.println(completeListSize + " || " + artefactURIs.size());
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