=== modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/PageRange.java' --- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/PageRange.java 2015-01-13 13:26:18 +0000 +++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/PageRange.java 2015-01-13 14:27:02 +0000 @@ -1,5 +1,8 @@ package org.hisp.dhis.system.util; +import java.util.ArrayList; +import java.util.List; + /* * Copyright (c) 2004-2014, University of Oslo * All rights reserved. @@ -135,4 +138,24 @@ return toIndex; } + + + /** + * Returns a list of all pages. Each item is an array where index 0 holds the + * from index and index 1 holds the to index. Resets the page. + */ + public List getPages() + { + List pages = new ArrayList<>(); + + while ( nextPage() ) + { + int[] range = { getFromIndex(), getToIndex() }; + pages.add( range ); + } + + reset(); + + return pages; + } } === modified file 'dhis-2/dhis-support/dhis-support-system/src/test/java/org/hisp/dhis/system/util/PageRangeTest.java' --- dhis-2/dhis-support/dhis-support-system/src/test/java/org/hisp/dhis/system/util/PageRangeTest.java 2015-01-13 13:26:18 +0000 +++ dhis-2/dhis-support/dhis-support-system/src/test/java/org/hisp/dhis/system/util/PageRangeTest.java 2015-01-13 14:27:02 +0000 @@ -28,7 +28,10 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import java.util.List; + import org.junit.Test; + import static org.junit.Assert.*; /** @@ -75,4 +78,20 @@ assertFalse( range.nextPage() ); } + + @Test + public void testGetPages() + { + PageRange range = new PageRange( 12 ).setPageSize( 5 ); + + List pages = range.getPages(); + + assertEquals( 3, pages.size() ); + assertEquals( 0, pages.get( 0 )[0] ); + assertEquals( 5, pages.get( 0 )[1] ); + assertEquals( 5, pages.get( 1 )[0] ); + assertEquals( 10, pages.get( 1 )[1] ); + assertEquals( 10, pages.get( 2 )[0] ); + assertEquals( 12, pages.get( 2 )[1] ); + } }