diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConverters.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConverters.java index 257a1a11c..c474220c8 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConverters.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConverters.java @@ -106,126 +106,101 @@ abstract public class LettuceConverters extends Converters { public static final byte[] NEGATIVE_INFINITY_BYTES; static { - DATE_TO_LONG = new Converter() { - public Long convert(Date source) { - return source != null ? source.getTime() : null; - } - }; - BYTES_LIST_TO_BYTES_SET = new Converter, Set>() { - public Set convert(List results) { - return results != null ? new LinkedHashSet<>(results) : null; - } - }; - BYTES_TO_STRING = new Converter() { - @Override - public String convert(byte[] source) { - if (source == null || Arrays.equals(source, new byte[0])) { - return null; - } - return new String(source); - } - }; - STRING_TO_BYTES = new Converter() { + DATE_TO_LONG = source -> source != null ? source.getTime() : null; - @Override - public byte[] convert(String source) { - if (source == null) { - return null; - } - return source.getBytes(); - } - }; - BYTES_SET_TO_BYTES_LIST = new Converter, List>() { - public List convert(Set results) { - return results != null ? new ArrayList<>(results) : null; - } - }; - BYTES_COLLECTION_TO_BYTES_LIST = new Converter, List>() { - public List convert(Collection results) { - if (results instanceof List) { - return (List) results; - } - return results != null ? new ArrayList<>(results) : null; - } - }; - KEY_VALUE_TO_BYTES_LIST = new Converter, List>() { - public List convert(KeyValue source) { - if (source == null) { - return null; - } - List list = new ArrayList<>(2); - list.add(source.getKey()); - list.add(source.getValue()); - return list; - } - }; - BYTES_LIST_TO_MAP = new Converter, Map>() { + BYTES_LIST_TO_BYTES_SET = results -> results != null ? new LinkedHashSet<>(results) : null; - @Override - public Map convert(final List source) { - - if (CollectionUtils.isEmpty(source)) { - return Collections.emptyMap(); - } - - Map target = new LinkedHashMap<>(); - - Iterator kv = source.iterator(); - while (kv.hasNext()) { - target.put(kv.next(), kv.hasNext() ? kv.next() : null); - } - - return target; - } - }; - SCORED_VALUES_TO_TUPLE_SET = new Converter>, Set>() { - public Set convert(List> source) { - if (source == null) { - return null; - } - Set tuples = new LinkedHashSet<>(source.size()); - for (ScoredValue value : source) { - tuples.add(LettuceConverters.toTuple(value)); - } - return tuples; + BYTES_TO_STRING = source -> { + if (source == null || Arrays.equals(source, new byte[0])) { + return null; } + return new String(source); }; - SCORED_VALUES_TO_TUPLE_LIST = new Converter>, List>() { - public List convert(List> source) { - if (source == null) { - return null; - } - List tuples = new ArrayList<>(source.size()); - for (ScoredValue value : source) { - tuples.add(LettuceConverters.toTuple(value)); - } - return tuples; + STRING_TO_BYTES = source -> { + if (source == null) { + return null; } + return source.getBytes(); }; - SCORED_VALUE_TO_TUPLE = new Converter, Tuple>() { - public Tuple convert(ScoredValue source) { - return source != null ? new DefaultTuple(source.getValue(), Double.valueOf(source.getScore())) : null; + + BYTES_SET_TO_BYTES_LIST = results -> results != null ? new ArrayList<>(results) : null; + + BYTES_COLLECTION_TO_BYTES_LIST = results -> { + + if (results instanceof List) { + return (List) results; } + return results != null ? new ArrayList<>(results) : null; }; - BYTES_LIST_TO_TUPLE_LIST_CONVERTER = new Converter, List>() { - @Override - public List convert(List source) { + KEY_VALUE_TO_BYTES_LIST = source -> { - if (CollectionUtils.isEmpty(source)) { - return Collections.emptyList(); - } - - List tuples = new ArrayList<>(); - Iterator it = source.iterator(); - while (it.hasNext()) { - tuples.add( - new DefaultTuple(it.next(), it.hasNext() ? Double.valueOf(LettuceConverters.toString(it.next())) : null)); - } - return tuples; + if (source == null) { + return null; } + List list = new ArrayList<>(2); + list.add(source.getKey()); + list.add(source.getValue()); + + return list; + }; + BYTES_LIST_TO_MAP = source -> { + + if (CollectionUtils.isEmpty(source)) { + return Collections.emptyMap(); + } + + Map target = new LinkedHashMap<>(); + + Iterator kv = source.iterator(); + while (kv.hasNext()) { + target.put(kv.next(), kv.hasNext() ? kv.next() : null); + } + + return target; + }; + + SCORED_VALUES_TO_TUPLE_SET = source -> { + + if (source == null) { + return null; + } + Set tuples = new LinkedHashSet<>(source.size()); + for (ScoredValue value : source) { + tuples.add(LettuceConverters.toTuple(value)); + } + return tuples; + }; + + SCORED_VALUES_TO_TUPLE_LIST = source -> { + + if (source == null) { + return null; + } + List tuples = new ArrayList<>(source.size()); + for (ScoredValue value : source) { + tuples.add(LettuceConverters.toTuple(value)); + } + return tuples; + }; + + SCORED_VALUE_TO_TUPLE = source -> source != null + ? new DefaultTuple(source.getValue(), Double.valueOf(source.getScore())) : null; + + BYTES_LIST_TO_TUPLE_LIST_CONVERTER = source -> { + + if (CollectionUtils.isEmpty(source)) { + return Collections.emptyList(); + } + + List tuples = new ArrayList<>(); + Iterator it = source.iterator(); + while (it.hasNext()) { + tuples.add(new DefaultTuple(it.next(), it.hasNext() ? Double.valueOf(toString(it.next())) : null)); + } + return tuples; }; PARTITIONS_TO_CLUSTER_NODES = new Converter>() { @@ -301,45 +276,24 @@ abstract public class LettuceConverters extends Converters { POSITIVE_INFINITY_BYTES = toBytes("+inf"); NEGATIVE_INFINITY_BYTES = toBytes("-inf"); - BYTES_LIST_TO_TIME_CONVERTER = new Converter, Long>() { + BYTES_LIST_TO_TIME_CONVERTER = source -> { - @Override - public Long convert(List source) { + Assert.notEmpty(source, "Received invalid result from server. Expected 2 items in collection."); + Assert.isTrue(source.size() == 2, + "Received invalid nr of arguments from redis server. Expected 2 received " + source.size()); - Assert.notEmpty(source, "Received invalid result from server. Expected 2 items in collection."); - Assert.isTrue(source.size() == 2, - "Received invalid nr of arguments from redis server. Expected 2 received " + source.size()); - - return toTimeMillis(LettuceConverters.toString(source.get(0)), LettuceConverters.toString(source.get(1))); - } + return toTimeMillis(toString(source.get(0)), toString(source.get(1))); }; - GEO_COORDINATE_TO_POINT_CONVERTER = new Converter() { - @Override - public Point convert(io.lettuce.core.GeoCoordinates geoCoordinate) { - return geoCoordinate != null ? new Point(geoCoordinate.getX().doubleValue(), geoCoordinate.getY().doubleValue()) - : null; - } - }; + GEO_COORDINATE_TO_POINT_CONVERTER = geoCoordinate -> geoCoordinate != null + ? new Point(geoCoordinate.getX().doubleValue(), geoCoordinate.getY().doubleValue()) : null; GEO_COORDINATE_LIST_TO_POINT_LIST_CONVERTER = new ListConverter<>(GEO_COORDINATE_TO_POINT_CONVERTER); - KEY_VALUE_UNWRAPPER = new Converter, Object>() { - - @Override - public Object convert(KeyValue source) { - return source.getValueOrElse(null); - } - }; + KEY_VALUE_UNWRAPPER = source -> source.getValueOrElse(null); KEY_VALUE_LIST_UNWRAPPER = new ListConverter<>(KEY_VALUE_UNWRAPPER); - TRANSACTION_RESULT_UNWRAPPER = new Converter>() { - - @Override - public List convert(TransactionResult transactionResult) { - return transactionResult.stream().collect(Collectors.toList()); - } - }; + TRANSACTION_RESULT_UNWRAPPER = transactionResult -> transactionResult.stream().collect(Collectors.toList()); } public static List toTuple(List list) { @@ -355,16 +309,14 @@ abstract public class LettuceConverters extends Converters { } public static Converter> stringToRedisClientListConverter() { - return new Converter>() { - @Override - public List convert(String source) { - if (!StringUtils.hasText(source)) { - return Collections.emptyList(); - } + return source -> { - return STRING_TO_LIST_OF_CLIENT_INFO.convert(source.split("\\r?\\n")); + if (!StringUtils.hasText(source)) { + return Collections.emptyList(); } + + return STRING_TO_LIST_OF_CLIENT_INFO.convert(source.split("\\r?\\n")); }; } @@ -445,6 +397,7 @@ abstract public class LettuceConverters extends Converters { } public static ScriptOutputType toScriptOutputType(ReturnType returnType) { + switch (returnType) { case BOOLEAN: return ScriptOutputType.BOOLEAN; @@ -479,6 +432,7 @@ abstract public class LettuceConverters extends Converters { } public static SortArgs toSortArgs(SortParameters params) { + SortArgs args = new SortArgs(); if (params == null) { return args; @@ -650,6 +604,7 @@ abstract public class LettuceConverters extends Converters { * @since 1.5 */ public static RedisURI sentinelConfigurationToRedisURI(RedisSentinelConfiguration sentinelConfiguration) { + Assert.notNull(sentinelConfiguration, "RedisSentinelConfiguration is required"); Set sentinels = sentinelConfiguration.getSentinels(); @@ -884,22 +839,19 @@ abstract public class LettuceConverters extends Converters { * @since 1.8 */ public static Converter, GeoResults>> bytesSetToGeoResultsConverter() { - return new Converter, GeoResults>>() { - @Override - public GeoResults> convert(Set source) { + return source -> { - if (CollectionUtils.isEmpty(source)) { - return new GeoResults<>(Collections.>> emptyList()); - } - - List>> results = new ArrayList<>(source.size()); - Iterator it = source.iterator(); - while (it.hasNext()) { - results.add(new GeoResult<>(new GeoLocation<>(it.next(), null), new Distance(0D))); - } - return new GeoResults<>(results); + if (CollectionUtils.isEmpty(source)) { + return new GeoResults<>(Collections.>> emptyList()); } + + List>> results = new ArrayList<>(source.size()); + Iterator it = source.iterator(); + while (it.hasNext()) { + results.add(new GeoResult<>(new GeoLocation<>(it.next(), null), new Distance(0D))); + } + return new GeoResults<>(results); }; }