(no commit message)
[cdmlib.git] / cdmlib-remote / src / main / java / eu / etaxonomy / cdm / remote / dto / ResultSetPageSTO.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9
10 package eu.etaxonomy.cdm.remote.dto;
11
12 import java.util.ArrayList;
13 import java.util.List;
14
15 /**
16 * Instances of this class represent page based subsets of the total set of results returned by a search query.
17 *
18 * @author a.kohlbecker
19 * @version 1.0
20 * @created 15.02.2008 15:26:06
21 *
22 */
23 public class ResultSetPageSTO<T extends BaseSTO> {
24
25 /**
26 * Total number of matching records. Maybe distributed across several pages
27 */
28 private long totalResultsCount;
29 /**
30 * Total number of pages
31 */
32 private int totalPageCount;
33 /**
34 * Then number of items per page. Defaults to 25
35 */
36 private int pageSize = 25;
37 /**
38 * The number of this page. First default page has index 1.
39 */
40 private int pageNumber = 1;
41 /**
42 * The number of records on this page
43 */
44 private int resultsOnPage;
45 /**
46 * A list containing the items for this result page.
47 * The number of items will not exceed the {@link #pageSize} value.
48 * The last page may contain less items.
49 */
50 private List<T> results = new ArrayList<T>();
51
52
53 public long getTotalResultsCount() {
54 return totalResultsCount;
55 }
56 public void setTotalResultsCount(long totalResultsCount) {
57 this.totalResultsCount = totalResultsCount;
58 this.totalPageCount = (int) Math.ceil(totalResultsCount / pageSize);
59 }
60 public int getPageSize() {
61 return pageSize;
62 }
63 public void setPageSize(int pageSize) {
64 this.pageSize = pageSize;
65 }
66 public int getPageNumber() {
67 return pageNumber;
68 }
69 public void setPageNumber(int pageNumber) {
70 this.pageNumber = pageNumber;
71 this.resultsOnPage = (int) (totalResultsCount-(pageNumber-1)*pageSize);
72 }
73 public int getTotalPageCount() {
74 return totalPageCount;
75 }
76 public List<T> getResults() {
77 return results;
78 }
79 public int getResultsOnPage() {
80 return resultsOnPage;
81 }
82 }