From 17d51c7adb6d9dcf857c1bfe9584555a1d9b0eb3 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Mon, 8 Mar 2021 14:20:20 +0300 Subject: [PATCH] refactoring --- .../main/java/org/redisson/RedissonLocalCachedMap.java | 2 +- .../src/main/java/org/redisson/RedissonMapCache.java | 2 +- .../src/main/java/org/redisson/RedissonStream.java | 7 ------- .../org/redisson/client/protocol/RedisCommands.java | 4 ++-- .../protocol/decoder/ObjectMapEntryReplayDecoder.java | 10 ++++++++++ 5 files changed, 14 insertions(+), 11 deletions(-) diff --git a/redisson/src/main/java/org/redisson/RedissonLocalCachedMap.java b/redisson/src/main/java/org/redisson/RedissonLocalCachedMap.java index e9dc0b992..5c715290a 100644 --- a/redisson/src/main/java/org/redisson/RedissonLocalCachedMap.java +++ b/redisson/src/main/java/org/redisson/RedissonLocalCachedMap.java @@ -49,7 +49,7 @@ public class RedissonLocalCachedMap extends RedissonMap implements R public static final String DISABLED_ACK_SUFFIX = ":topic"; private static final RedisCommand> ALL_KEYS = new RedisCommand>("EVAL", new MapKeyDecoder(new ObjectSetReplayDecoder())); - private static final RedisCommand>> ALL_ENTRIES = new RedisCommand>>("EVAL", new MapEntriesDecoder(new ObjectMapEntryReplayDecoder())); + private static final RedisCommand>> ALL_ENTRIES = new RedisCommand<>("EVAL", new ObjectMapEntryReplayDecoder()); private static final RedisCommand> ALL_MAP = new RedisCommand>("EVAL", new ObjectMapReplayDecoder()); private long cacheUpdateLogTime = TimeUnit.MINUTES.toMillis(10); diff --git a/redisson/src/main/java/org/redisson/RedissonMapCache.java b/redisson/src/main/java/org/redisson/RedissonMapCache.java index fe1c6d5fc..0a0e16360 100644 --- a/redisson/src/main/java/org/redisson/RedissonMapCache.java +++ b/redisson/src/main/java/org/redisson/RedissonMapCache.java @@ -1395,7 +1395,7 @@ public class RedissonMapCache extends RedissonMap implements RMapCac private static final RedisCommand> SCAN = new RedisCommand>("EVAL", new ListMultiDecoder2( new MapCacheScanResultReplayDecoder(), - new MapEntriesDecoder(new ObjectMapDecoder(true)))); + new ObjectMapDecoder(true))); @Override public RFuture> scanIteratorAsync(String name, RedisClient client, long startPos, String pattern, int count) { diff --git a/redisson/src/main/java/org/redisson/RedissonStream.java b/redisson/src/main/java/org/redisson/RedissonStream.java index d3a1d1bd3..db8f002cd 100644 --- a/redisson/src/main/java/org/redisson/RedissonStream.java +++ b/redisson/src/main/java/org/redisson/RedissonStream.java @@ -1105,13 +1105,6 @@ public class RedissonStream extends RedissonExpirable implements RStream> XINFO_STREAM = new RedisCommand<>("XINFO", "STREAM", - new ListMultiDecoder2( - new StreamInfoDecoder(), - new CodecDecoder(), - new ObjectMapDecoder(false))); - - @Override public RFuture> getInfoAsync() { RedisCommand> xinfoStream = new RedisCommand<>("XINFO", "STREAM", diff --git a/redisson/src/main/java/org/redisson/client/protocol/RedisCommands.java b/redisson/src/main/java/org/redisson/client/protocol/RedisCommands.java index 1f71b29f2..9d4581d4a 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/RedisCommands.java +++ b/redisson/src/main/java/org/redisson/client/protocol/RedisCommands.java @@ -238,7 +238,7 @@ public interface RedisCommands { RedisCommand EVAL_OBJECT = new RedisCommand("EVAL"); RedisCommand EVAL_MAP_VALUE = new RedisCommand("EVAL", new MapValueDecoder()); RedisCommand>> EVAL_MAP_ENTRY = new RedisCommand>>("EVAL", - new MapEntriesDecoder(new ObjectMapEntryReplayDecoder())); + new ObjectMapEntryReplayDecoder()); RedisCommand> EVAL_MAP = new RedisCommand>("EVAL", new ObjectMapReplayDecoder()); RedisCommand> EVAL_MAP_VALUE_LIST = new RedisCommand>("EVAL", @@ -288,7 +288,7 @@ public interface RedisCommands { RedisCommand> HGETALL = new RedisCommand>("HGETALL", new ObjectMapReplayDecoder()); RedisCommand>> HGETALL_ENTRY = new RedisCommand>>("HGETALL", - new MapEntriesDecoder(new ObjectMapEntryReplayDecoder())); + new ObjectMapEntryReplayDecoder()); RedisCommand> HVALS = new RedisCommand>("HVALS", new MapValueDecoder(new ObjectListReplayDecoder<>())); RedisCommand HEXISTS = new RedisCommand("HEXISTS", new BooleanReplayConvertor()); diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectMapEntryReplayDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectMapEntryReplayDecoder.java index ac925fffa..86b5642dc 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectMapEntryReplayDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectMapEntryReplayDecoder.java @@ -15,7 +15,9 @@ */ package org.redisson.client.protocol.decoder; +import org.redisson.client.codec.Codec; import org.redisson.client.handler.State; +import org.redisson.client.protocol.Decoder; import java.util.LinkedHashMap; import java.util.List; @@ -30,6 +32,14 @@ import java.util.Set; */ public class ObjectMapEntryReplayDecoder implements MultiDecoder>> { + @Override + public Decoder getDecoder(Codec codec, int paramNum, State state) { + if (paramNum % 2 != 0) { + return codec.getMapValueDecoder(); + } + return codec.getMapKeyDecoder(); + } + @Override public Set> decode(List parts, State state) { Map result = new LinkedHashMap(parts.size()/2);