resultList;
+ @SerializedName("total_results") private long totalResults;
+ @SerializedName("results_from") private int resultFrom;
+ @SerializedName("results_to") private int resultTo;
+ @SerializedName("page_number") private int pageNumber;
+ transient private String nextParam;
+ transient private String previousParam;
public boolean isHasPrevious() {
return isHasPrevious;
diff --git a/src/main/java/org/lightcouch/View.java b/src/main/java/org/lightcouch/View.java
index 1802e63..c3c2a19 100644
--- a/src/main/java/org/lightcouch/View.java
+++ b/src/main/java/org/lightcouch/View.java
@@ -78,6 +78,14 @@ public class View {
private static final String NEXT = "n";
private static final String PREVIOUS = "p";
+ private static final String viewPath(String viewId) {
+ if (!viewId.contains("/"))
+ return viewId;
+
+ String[] parts = viewId.split("/");
+ return String.format("_design/%s/_view/%s", parts[0], parts[1]);
+ }
+
// view fields
private String key;
private String startKey;
@@ -95,29 +103,24 @@ public class View {
private Boolean inclusiveEnd;
private Boolean updateSeq;
- private CouchDbClientBase dbc;
- private Gson gson;
- private URIBuilder uriBuilder;
-
- private String allDocsKeys; // bulk docs
+ protected CouchDbClientBase dbc;
+ protected Gson gson;
+ protected URIBuilder uriBuilder;
+ protected String allDocsKeys; // bulk docs
+
View(CouchDbClientBase dbc, String viewId) {
assertNotEmpty(viewId, "View id");
this.dbc = dbc;
this.gson = dbc.getGson();
- String view = viewId;
- if(viewId.contains("/")) {
- String[] v = viewId.split("/");
- view = String.format("_design/%s/_view/%s", v[0], v[1]);
- }
- this.uriBuilder = URIBuilder.buildUri(dbc.getDBUri()).path(view);
+ this.uriBuilder = URIBuilder.buildUri(dbc.getDBUri()).path(viewPath(viewId));
}
// Query options
/**
- * Queries a view as an {@link InputStream}
+ * Queries a view as an {@link InputStream}, potentially requesting a non-default mime-type if given
* The stream should be properly closed after usage, as to avoid connection leaks.
* @return The result as an {@link InputStream}.
*/
@@ -126,7 +129,7 @@ public InputStream queryForStream() {
if(allDocsKeys != null) { // bulk docs
return getStream(dbc.post(uri, allDocsKeys));
}
-
+
return dbc.get(uri);
}
diff --git a/src/test/java/org/lightcouch/tests/PageAnnotationTest.java b/src/test/java/org/lightcouch/tests/PageAnnotationTest.java
new file mode 100644
index 0000000..0ff9482
--- /dev/null
+++ b/src/test/java/org/lightcouch/tests/PageAnnotationTest.java
@@ -0,0 +1,39 @@
+package org.lightcouch.tests;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Collections;
+
+import org.junit.Test;
+import org.lightcouch.Document;
+import org.lightcouch.Page;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+
+public class PageAnnotationTest {
+
+ @Test
+ public void properJsonSerialization() {
+ Page