1 /*
2 * Copyright 2012-2025 CodeLibs Project and the Others.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13 * either express or implied. See the License for the specific language
14 * governing permissions and limitations under the License.
15 */
16 package org.codelibs.fess.app.pager;
17
18 import java.io.Serializable;
19 import java.util.List;
20
21 import org.codelibs.fess.util.ComponentUtil;
22
23 /**
24 * Pager for Kuromoji.
25 */
26 public class KuromojiPager implements Serializable {
27
28 private static final long serialVersionUID = 1L;
29
30 /**
31 * Default constructor.
32 */
33 public KuromojiPager() {
34 // no-op
35 }
36
37 /** The total number of records. */
38 private int allRecordCount;
39
40 /** The total number of pages. */
41 private int allPageCount;
42
43 /** Whether a previous page exists. */
44 private boolean existPrePage;
45
46 /** Whether a next page exists. */
47 private boolean existNextPage;
48
49 /** The list of page numbers. */
50 private List<Integer> pageNumberList;
51
52 /** The number of items per page. */
53 private int pageSize;
54
55 /** The current page number. */
56 private int currentPageNumber;
57
58 /** The ID of the Kuromoji dictionary. */
59 public String id;
60
61 /**
62 * Clears the pager fields.
63 */
64 public void clear() {
65 allRecordCount = 0;
66 allPageCount = 0;
67 existPrePage = false;
68 existNextPage = false;
69 pageSize = getDefaultPageSize();
70 currentPageNumber = getDefaultCurrentPageNumber();
71
72 id = null;
73 }
74
75 /**
76 * Returns the default page size.
77 *
78 * @return The default page size.
79 */
80 protected int getDefaultPageSize() {
81 return ComponentUtil.getFessConfig().getPagingPageSizeAsInteger();
82 }
83
84 /**
85 * Returns the default current page number.
86 *
87 * @return The default current page number.
88 */
89 protected int getDefaultCurrentPageNumber() {
90 return 1;
91 }
92
93 /**
94 * Returns the total number of records.
95 *
96 * @return The total number of records.
97 */
98 public int getAllRecordCount() {
99 return allRecordCount;
100 }
101
102 /**
103 * Sets the total number of records.
104 *
105 * @param allRecordCount The total number of records.
106 */
107 public void setAllRecordCount(final int allRecordCount) {
108 this.allRecordCount = allRecordCount;
109 }
110
111 /**
112 * Returns the total number of pages.
113 *
114 * @return The total number of pages.
115 */
116 public int getAllPageCount() {
117 return allPageCount;
118 }
119
120 /**
121 * Sets the total number of pages.
122 *
123 * @param allPageCount The total number of pages.
124 */
125 public void setAllPageCount(final int allPageCount) {
126 this.allPageCount = allPageCount;
127 }
128
129 /**
130 * Returns true if a previous page exists.
131 *
132 * @return True if a previous page exists.
133 */
134 public boolean isExistPrePage() {
135 return existPrePage;
136 }
137
138 /**
139 * Sets whether a previous page exists.
140 *
141 * @param existPrePage True if a previous page exists.
142 */
143 public void setExistPrePage(final boolean existPrePage) {
144 this.existPrePage = existPrePage;
145 }
146
147 /**
148 * Returns true if a next page exists.
149 *
150 * @return True if a next page exists.
151 */
152 public boolean isExistNextPage() {
153 return existNextPage;
154 }
155
156 /**
157 * Sets whether a next page exists.
158 *
159 * @param existNextPage True if a next page exists.
160 */
161 public void setExistNextPage(final boolean existNextPage) {
162 this.existNextPage = existNextPage;
163 }
164
165 /**
166 * Returns the page size.
167 *
168 * @return The page size.
169 */
170 public int getPageSize() {
171 if (pageSize <= 0) {
172 pageSize = getDefaultPageSize();
173 }
174 return pageSize;
175 }
176
177 /**
178 * Sets the page size.
179 *
180 * @param pageSize The page size.
181 */
182 public void setPageSize(final int pageSize) {
183 this.pageSize = pageSize;
184 }
185
186 /**
187 * Returns the current page number.
188 *
189 * @return The current page number.
190 */
191 public int getCurrentPageNumber() {
192 if (currentPageNumber <= 0) {
193 currentPageNumber = getDefaultCurrentPageNumber();
194 }
195 return currentPageNumber;
196 }
197
198 /**
199 * Sets the current page number.
200 *
201 * @param currentPageNumber The current page number.
202 */
203 public void setCurrentPageNumber(final int currentPageNumber) {
204 this.currentPageNumber = currentPageNumber;
205 }
206
207 /**
208 * Returns the list of page numbers.
209 *
210 * @return The list of page numbers.
211 */
212 public List<Integer> getPageNumberList() {
213 return pageNumberList;
214 }
215
216 /**
217 * Sets the list of page numbers.
218 *
219 * @param pageNumberList The list of page numbers.
220 */
221 public void setPageNumberList(final List<Integer> pageNumberList) {
222 this.pageNumberList = pageNumberList;
223 }
224 }