48
48
import org .springframework .data .redis .connection .RedisListCommands .Position ;
49
49
import org .springframework .data .redis .connection .RedisNode .NodeType ;
50
50
import org .springframework .data .redis .connection .RedisStringCommands .SetOption ;
51
- import org .springframework .data .redis .connection .RedisZSetCommands .Range .Boundary ;
52
51
import org .springframework .data .redis .connection .SortParameters .Order ;
53
52
import org .springframework .data .redis .connection .convert .Converters ;
54
53
import org .springframework .data .redis .connection .convert .StringToRedisClientInfoConverter ;
@@ -257,19 +256,6 @@ public static List<RedisClientInfo> toListOfRedisClientInformation(String client
257
256
return StringToRedisClientInfoConverter .INSTANCE .convert (clientList .split ("\\ r?\\ n" ));
258
257
}
259
258
260
- private static String boundaryToString (Boundary boundary , String inclPrefix , String exclPrefix ) {
261
-
262
- String prefix = boundary .isIncluding () ? inclPrefix : exclPrefix ;
263
- String value = null ;
264
- if (boundary .getValue () instanceof byte []) {
265
- value = toString ((byte []) boundary .getValue ());
266
- } else {
267
- value = boundary .getValue ().toString ();
268
- }
269
-
270
- return prefix + value ;
271
- }
272
-
273
259
/**
274
260
* Convert a {@link Limit} to a Lettuce {@link io.lettuce.core.Limit}.
275
261
*
@@ -290,81 +276,44 @@ public static io.lettuce.core.Limit toLimit(Limit limit) {
290
276
* @since 2.0
291
277
*/
292
278
public static <T > Range <T > toRange (org .springframework .data .domain .Range <T > range ) {
293
- return Range . from ( lowerBoundaryOf ( range , false ), upperBoundaryOf ( range , false ) );
279
+ return toRange ( range , false );
294
280
}
295
281
296
282
/**
297
- * Convert a {@link org.springframework.data.redis.connection.RedisZSetCommands .Range} to a lettuce {@link Range}.
283
+ * Convert a {@link org.springframework.data.domain .Range} to a lettuce {@link Range}.
298
284
*
299
285
* @param range
300
286
* @param convertNumberToBytes
301
287
* @return
302
288
* @since 2.2
303
289
*/
304
- public static <T > Range <T > toRange (org .springframework .data .domain .Range <T > range ,
305
- boolean convertNumberToBytes ) {
306
- return Range .from (lowerBoundaryOf (range , convertNumberToBytes ), upperBoundaryOf (range , convertNumberToBytes ));
290
+ @ SuppressWarnings ({ "rawtypes" , "unchecked" })
291
+ public static <T > Range <T > toRange (org .springframework .data .domain .Range <T > range , boolean convertNumberToBytes ) {
292
+
293
+ Range .Boundary upper = RangeConverter .convertBound (range .getUpperBound (), convertNumberToBytes , null ,
294
+ it -> it .getBytes (StandardCharsets .UTF_8 ));
295
+ Range .Boundary lower = RangeConverter .convertBound (range .getLowerBound (), convertNumberToBytes , null ,
296
+ it -> it .getBytes (StandardCharsets .UTF_8 ));
297
+
298
+ return Range .from (lower , upper );
307
299
}
308
300
309
301
/**
310
- * Convert a {@link org.springframework.data.redis.connection.RedisZSetCommands.Range} to a lettuce {@link Range} and
311
- * reverse boundaries.
302
+ * Convert a {@link org.springframework.data.domain.Range} to a lettuce {@link Range} and reverse boundaries.
312
303
*
313
304
* @param range
314
305
* @return
315
306
* @since 2.0
316
307
*/
308
+ @ SuppressWarnings ({ "rawtypes" , "unchecked" })
317
309
public static <T > Range <T > toRevRange (org .springframework .data .domain .Range <T > range ) {
318
- return Range .from (upperBoundaryOf (range , false ), lowerBoundaryOf (range , false ));
319
- }
320
-
321
- @ SuppressWarnings ("unchecked" )
322
- private static <T > Range .Boundary <T > lowerBoundaryOf (
323
- org .springframework .data .domain .Range <T > range , boolean convertNumberToBytes ) {
324
- return (Range .Boundary <T >) rangeToBoundaryArgumentConverter (false , convertNumberToBytes ).convert (range );
325
- }
326
-
327
- @ SuppressWarnings ("unchecked" )
328
- private static <T > Range .Boundary <T > upperBoundaryOf (
329
- org .springframework .data .domain .Range <T > range , boolean convertNumberToBytes ) {
330
- return (Range .Boundary <T >) rangeToBoundaryArgumentConverter (true , convertNumberToBytes ).convert (range );
331
- }
332
310
333
- private static Converter <org .springframework .data .domain .Range <?>, Range .Boundary <?>> rangeToBoundaryArgumentConverter (
334
- boolean upper , boolean convertNumberToBytes ) {
311
+ Range .Boundary upper = RangeConverter .convertBound (range .getUpperBound (), false , null ,
312
+ it -> it .getBytes (StandardCharsets .UTF_8 ));
313
+ Range .Boundary lower = RangeConverter .convertBound (range .getLowerBound (), false , null ,
314
+ it -> it .getBytes (StandardCharsets .UTF_8 ));
335
315
336
- return (source ) -> {
337
-
338
- org .springframework .data .domain .Range .Bound <?> sourceBoundary = upper ? source .getUpperBound ()
339
- : source .getLowerBound ();
340
- if (sourceBoundary == null || !sourceBoundary .isBounded ()) {
341
- return Range .Boundary .unbounded ();
342
- }
343
-
344
- boolean inclusive = sourceBoundary .isInclusive ();
345
- Object value = sourceBoundary .getValue ().get ();
346
-
347
- if (value instanceof Number ) {
348
-
349
- if (convertNumberToBytes ) {
350
- value = value .toString ();
351
- } else {
352
- return inclusive ? Range .Boundary .including ((Number ) value ) : Range .Boundary .excluding ((Number ) value );
353
- }
354
- }
355
-
356
- if (value instanceof String ) {
357
-
358
- if (!StringUtils .hasText ((String ) value ) || ObjectUtils .nullSafeEquals (value , "+" )
359
- || ObjectUtils .nullSafeEquals (value , "-" )) {
360
- return Range .Boundary .unbounded ();
361
- }
362
- return inclusive ? Range .Boundary .including (value .toString ().getBytes (StandardCharsets .UTF_8 ))
363
- : Range .Boundary .excluding (value .toString ().getBytes (StandardCharsets .UTF_8 ));
364
- }
365
-
366
- return inclusive ? Range .Boundary .including ((byte []) value ) : Range .Boundary .excluding ((byte []) value );
367
- };
316
+ return Range .from (upper , lower );
368
317
}
369
318
370
319
/**
0 commit comments