24
24
*
25
25
* @author Oliver Gierke
26
26
* @author Thomas Darimont
27
+ * @author Anastasiia Smirnova
28
+ * @author Mark Paluch
27
29
*/
28
30
public class PageRequest extends AbstractPageRequest {
29
31
@@ -83,8 +85,15 @@ public static PageRequest of(int page, int size, Direction direction, String...
83
85
return of (page , size , Sort .by (direction , properties ));
84
86
}
85
87
86
- public static PageRequestBuilder pageRequest () {
87
- return new PageRequestBuilder ();
88
+ /**
89
+ * Creates a new {@link PageRequest} for the first page (page number {@code 0}) given {@code pageSize} .
90
+ *
91
+ * @param pageSize the size of the page to be returned, must be greater than 0.
92
+ * @return a new {@link PageRequest}.
93
+ * @since 2.5
94
+ */
95
+ public static PageRequest ofSize (int pageSize ) {
96
+ return PageRequest .of (0 , pageSize );
88
97
}
89
98
90
99
/*
@@ -142,6 +151,41 @@ public boolean equals(@Nullable Object obj) {
142
151
return super .equals (that ) && this .sort .equals (that .sort );
143
152
}
144
153
154
+ /**
155
+ * Creates a new {@link PageRequest} with {@code pageNumber} applied.
156
+ *
157
+ * @param pageNumber
158
+ * @return a new {@link PageRequest}.
159
+ * @since 2.5
160
+ */
161
+ @ Override
162
+ public PageRequest withPage (int pageNumber ) {
163
+ return new PageRequest (pageNumber , getPageSize (), getSort ());
164
+ }
165
+
166
+ /**
167
+ * Creates a new {@link PageRequest} with {@link Direction} and {@code properties} applied.
168
+ *
169
+ * @param direction must not be {@literal null}.
170
+ * @param properties must not be {@literal null}.
171
+ * @return a new {@link PageRequest}.
172
+ * @since 2.5
173
+ */
174
+ public PageRequest withSort (Direction direction , String ... properties ) {
175
+ return new PageRequest (getPageNumber (), getPageSize (), Sort .by (direction , properties ));
176
+ }
177
+
178
+ /**
179
+ * Creates a new {@link PageRequest} with {@link Sort} applied.
180
+ *
181
+ * @param sort must not be {@literal null}.
182
+ * @return a new {@link PageRequest}.
183
+ * @since 2.5
184
+ */
185
+ public PageRequest withSort (Sort sort ) {
186
+ return new PageRequest (getPageNumber (), getPageSize (), sort );
187
+ }
188
+
145
189
/*
146
190
* (non-Javadoc)
147
191
* @see java.lang.Object#hashCode()
@@ -160,29 +204,4 @@ public String toString() {
160
204
return String .format ("Page request [number: %d, size %d, sort: %s]" , getPageNumber (), getPageSize (), sort );
161
205
}
162
206
163
- public static final class PageRequestBuilder {
164
-
165
- private Sort sort = Sort .unsorted ();
166
- private int page ;
167
- private int size ;
168
-
169
- public PageRequestBuilder sort (Sort sort ) {
170
- this .sort = sort ;
171
- return this ;
172
- }
173
-
174
- public PageRequestBuilder page (int page ) {
175
- this .page = page ;
176
- return this ;
177
- }
178
-
179
- public PageRequestBuilder size (int size ) {
180
- this .size = size ;
181
- return this ;
182
- }
183
-
184
- public PageRequest build () {
185
- return PageRequest .of (page , size , sort );
186
- }
187
- }
188
207
}
0 commit comments