Skip to content

Commit 7e14d06

Browse files
committed
let's make BasicPage constructor take start, pageLength, and totalSize so we don't end up with a BasicPage missing those key fields
1 parent 03adf2f commit 7e14d06

File tree

2 files changed

+20
-10
lines changed

2 files changed

+20
-10
lines changed

src/main/java/com/marklogic/client/impl/BasicPage.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,15 @@
2121
public class BasicPage<T> implements Page<T> {
2222
private Iterable<T> iterable;
2323
private long start;
24+
private Long size = null;
2425
private long pageSize;
2526
private long totalSize;
2627

27-
public BasicPage(Iterable<T> iterable) {
28+
public BasicPage(Iterable<T> iterable, long start, long pageSize, long totalSize) {
2829
this.iterable = iterable;
30+
this.start = start;
31+
this.pageSize = pageSize;
32+
this.totalSize = totalSize;
2933
}
3034

3135
public Iterator<T> iterator() {
@@ -59,7 +63,13 @@ public BasicPage<T> setTotalSize(long totalSize) {
5963
return this;
6064
}
6165

66+
public BasicPage<T> setSize(long size) {
67+
this.size = new Long(size);
68+
return this;
69+
}
70+
6271
public long size() {
72+
if ( size != null ) return size.longValue();
6373
if ( hasNextPage() ) {
6474
return getPageSize();
6575
} else if ((getTotalSize() % getPageSize()) == 0) {

src/test/java/com/marklogic/client/test/PageTest.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@
2828
**/
2929
public class PageTest {
3030
class TestPage extends BasicPage<Object> {
31-
TestPage(Iterable<Object> iterable) {
32-
super(iterable);
31+
TestPage(Iterable<Object> iterable, long start, long pageSize, long totalSize) {
32+
super(iterable, start, pageSize, totalSize);
3333
}
3434
}
3535
@Test
3636
public void testTestPage() {
3737
Iterable<Object> iterable = new HashSet<Object>();
3838

39-
Page<Object> page = new TestPage(iterable).setStart(1).setPageSize(10).setTotalSize(100);
39+
Page<Object> page = new TestPage(iterable, 1, 10, 100);
4040
assertEquals("Unexpected size", 10, page.size());
4141
assertEquals("Unexpected totalPages", 10, page.getTotalPages());
4242
assertEquals("Unexpected hasContent", true, page.hasContent());
@@ -45,7 +45,7 @@ public void testTestPage() {
4545
assertEquals("Unexpected isFirstPage", true, page.isFirstPage());
4646
assertEquals("Unexpected isLastPage", false, page.isLastPage());
4747

48-
page = new TestPage(iterable).setStart(2).setPageSize(10).setTotalSize(100);
48+
page = new TestPage(iterable, 2, 10, 100);
4949
assertEquals("Unexpected size", 10, page.size());
5050
assertEquals("Unexpected totalPages", 10, page.getTotalPages());
5151
assertEquals("Unexpected hasContent", true, page.hasContent());
@@ -54,7 +54,7 @@ public void testTestPage() {
5454
assertEquals("Unexpected isFirstPage", true, page.isFirstPage());
5555
assertEquals("Unexpected isLastPage", false, page.isLastPage());
5656

57-
page = new TestPage(iterable).setStart(10).setPageSize(10).setTotalSize(100);
57+
page = new TestPage(iterable, 10, 10, 100);
5858
assertEquals("Unexpected size", 10, page.size());
5959
assertEquals("Unexpected totalPages", 10, page.getTotalPages());
6060
assertEquals("Unexpected hasContent", true, page.hasContent());
@@ -63,7 +63,7 @@ public void testTestPage() {
6363
assertEquals("Unexpected isFirstPage", false, page.isFirstPage());
6464
assertEquals("Unexpected isLastPage", false, page.isLastPage());
6565

66-
page = new TestPage(iterable).setStart(12).setPageSize(10).setTotalSize(100);
66+
page = new TestPage(iterable, 12, 10, 100);
6767
assertEquals("Unexpected size", 10, page.size());
6868
assertEquals("Unexpected totalPages", 10, page.getTotalPages());
6969
assertEquals("Unexpected hasContent", true, page.hasContent());
@@ -72,7 +72,7 @@ public void testTestPage() {
7272
assertEquals("Unexpected isFirstPage", false, page.isFirstPage());
7373
assertEquals("Unexpected isLastPage", false, page.isLastPage());
7474

75-
page = new TestPage(iterable).setStart(22).setPageSize(20).setTotalSize(100);
75+
page = new TestPage(iterable, 22, 20, 100);
7676
assertEquals("Unexpected size", 20, page.size());
7777
assertEquals("Unexpected totalPages", 5, page.getTotalPages());
7878
assertEquals("Unexpected hasContent", true, page.hasContent());
@@ -81,7 +81,7 @@ public void testTestPage() {
8181
assertEquals("Unexpected isFirstPage", false, page.isFirstPage());
8282
assertEquals("Unexpected isLastPage", false, page.isLastPage());
8383

84-
page = new TestPage(iterable).setStart(18).setPageSize(20).setTotalSize(20);
84+
page = new TestPage(iterable, 18, 20, 20);
8585
assertEquals("Unexpected size", 20, page.size());
8686
assertEquals("Unexpected totalPages", 1, page.getTotalPages());
8787
assertEquals("Unexpected hasContent", true, page.hasContent());
@@ -90,7 +90,7 @@ public void testTestPage() {
9090
assertEquals("Unexpected isFirstPage", true, page.isFirstPage());
9191
assertEquals("Unexpected isLastPage", true, page.isLastPage());
9292

93-
page = new TestPage(iterable).setStart(905).setPageSize(100).setTotalSize(990);
93+
page = new TestPage(iterable, 905, 100, 990);
9494
assertEquals("Unexpected size", 90, page.size());
9595
assertEquals("Unexpected totalPages", 10, page.getTotalPages());
9696
assertEquals("Unexpected hasContent", true, page.hasContent());

0 commit comments

Comments
 (0)