Change order of cutoff handling for paging
Change-Id: I2d943067e83a61bec2c795adc3134ba1d0c4b697
diff --git a/plugin/src/main/java/de/ids_mannheim/korap/plkexport/IdsExportService.java b/plugin/src/main/java/de/ids_mannheim/korap/plkexport/IdsExportService.java
index 1e2230d..ac882f4 100644
--- a/plugin/src/main/java/de/ids_mannheim/korap/plkexport/IdsExportService.java
+++ b/plugin/src/main/java/de/ids_mannheim/korap/plkexport/IdsExportService.java
@@ -245,19 +245,28 @@
);
}
+ // set filename to query
if (fname == null) {
fname = q;
}
- // format == json
- if (format.equals("json")) {
- if (cutoff) {
+ // If only one page should be exported there is no need
+ // for a temporary export file
+ if (cutoff) {
+
+ if (format.equals("json")) {
builder = Response.ok(resp);
builder.type(MediaType.APPLICATION_JSON);
+ }
+
+ else {
+ builder = Response.ok(getRtf(resp));
+ builder.type("application/rtf");
+ format = "rtf";
};
}
- // format == rtf
+ // Page through results
else {
ObjectMapper mapper = new ObjectMapper();
JsonFactory factory = mapper.getFactory();
@@ -268,64 +277,62 @@
* Get total results
*/
totalhits = actualObj.at("/meta").get("totalResults").asInt();
+
+
+ // Not yet supported
+ if (format.equals("json")) {
+ System.err.println("Not yet supported!");
+ };
- // If only one page should be exported there is no need
- // for a temporary export file
- if (cutoff) {
- String rtfresp = getRtf(resp);
- builder = Response.ok(rtfresp);
+ // format == rtf
+
+ /*
+ * Get number of pages and the number of hits
+ * which should be exported at the last page
+ */
+ int pg = 1;
+ int dr = totalhits % pageSize;
+ if (dr > 0) {
+ pg = totalhits / pageSize + 1;
+ }
+ else {
+ pg = totalhits / pageSize;
}
- if (!cutoff) {
-
- /*
- * Get number of pages and the number of hits
- * which should be exported at the last page
- */
- int pg = 1;
- int dr = totalhits % pageSize;
- if (dr > 0) {
- pg = totalhits / pageSize + 1;
- }
- else {
- pg = totalhits / pageSize;
- }
-
- /*
- * Create temporary file
- */
- File expTmp = createTempFile("idsexppl-", format);
- FileWriter fw = new FileWriter(expTmp, true);
- BufferedWriter bw = new BufferedWriter(fw);
- // better delete after it is not needed anymore
- expTmp.deleteOnExit();
+ /*
+ * Create temporary file
+ */
+ File expTmp = createTempFile("idsexppl-", format);
+ FileWriter fw = new FileWriter(expTmp, true);
+ BufferedWriter bw = new BufferedWriter(fw);
+ // better delete after it is not needed anymore
+ expTmp.deleteOnExit();
- int pos = 0;
- uri.queryParam("offset", "{offset}");
+ int pos = 0;
+ uri.queryParam("offset", "{offset}");
- for (int i = 1; i <= pg; i++) {
- // url = urlorg + "&page=" + i;
- // resource = client.target(url);
- resource = client.target(
- uri.build((i * pageSize) - pageSize)
- );
+ for (int i = 1; i <= pg; i++) {
+ // url = urlorg + "&page=" + i;
+ // resource = client.target(url);
+ resource = client.target(
+ uri.build((i * pageSize) - pageSize)
+ );
- reqBuilder = resource.request(MediaType.APPLICATION_JSON);
- resp = authBuilder(reqBuilder, xff, auth).get(String.class);
+ reqBuilder = resource.request(MediaType.APPLICATION_JSON);
+ resp = authBuilder(reqBuilder, xff, auth).get(String.class);
- if (i < pg) {
- pos = 2;
- }
- if (i == 1) {
- pos = 1;
- }
- if (pg == i) {
- pos = 3;
- }
- getRtf(expTmp, fw, resp, bw, pos, dr);
+ if (i < pg) {
+ pos = 2;
}
- builder = Response.ok(expTmp);
+ if (i == 1) {
+ pos = 1;
+ }
+ if (pg == i) {
+ pos = 3;
+ }
+ getRtf(expTmp, fw, resp, bw, pos, dr);
}
+ builder = Response.ok(expTmp);
builder.type("application/rtf");
format = "rtf";
@@ -338,8 +345,7 @@
'.' +
format
);
- Response response = builder.build();
- return response;
+ return builder.build();
}
@GET