From 2d85018431f4e5ecd318d42dabd184c5a8ef10b0 Mon Sep 17 00:00:00 2001 From: Nikita Date: Thu, 9 Nov 2017 11:53:46 +0300 Subject: [PATCH] refactoring --- .../client/handler/CommandDecoder.java | 9 ++++--- .../client/handler/CommandPubSubDecoder.java | 4 +-- .../decoder/FlatNestedMultiDecoder.java | 17 ++++--------- .../protocol/decoder/GeoDistanceDecoder.java | 22 +++++----------- .../decoder/GeoDistanceMapDecoder.java | 22 +++++----------- .../protocol/decoder/GeoMapReplayDecoder.java | 14 +++-------- .../protocol/decoder/GeoPositionDecoder.java | 15 +++-------- .../decoder/GeoPositionMapDecoder.java | 15 +++-------- .../decoder/KeyValueObjectDecoder.java | 25 +++++++++++-------- .../decoder/ListFirstObjectDecoder.java | 12 +++------ .../decoder/ListIteratorReplayDecoder.java | 12 +++------ .../protocol/decoder/ListMultiDecoder.java | 17 +++++-------- .../decoder/ListResultReplayDecoder.java | 16 ++++-------- .../decoder/ListScanResultReplayDecoder.java | 19 ++++++-------- .../protocol/decoder/LongMultiDecoder.java | 15 +++-------- .../MapCacheScanResultReplayDecoder.java | 13 +++------- .../decoder/MapScanResultReplayDecoder.java | 19 ++++++-------- .../client/protocol/decoder/MultiDecoder.java | 6 ++--- .../protocol/decoder/NestedMultiDecoder.java | 25 +++---------------- .../ObjectFirstResultReplayDecoder.java | 12 +++------ .../ObjectFirstScoreReplayDecoder.java | 20 ++++++--------- .../protocol/decoder/ObjectListDecoder.java | 15 +++-------- .../decoder/ObjectListReplayDecoder.java | 13 +++------- .../protocol/decoder/ObjectMapDecoder.java | 17 ++++--------- .../decoder/ObjectMapEntryReplayDecoder.java | 12 +++------ .../decoder/ObjectMapReplayDecoder.java | 12 +++------ .../decoder/ObjectSetReplayDecoder.java | 12 +++------ .../decoder/ScoredSortedSetReplayDecoder.java | 20 ++++++--------- .../decoder/ScoredSortedSetScanDecoder.java | 21 ++++++---------- .../ScoredSortedSetScanReplayDecoder.java | 19 ++++++-------- .../client/protocol/decoder/SlotsDecoder.java | 16 ++++-------- .../decoder/StringListReplayDecoder.java | 16 ++++-------- .../protocol/pubsub/PubSubMessageDecoder.java | 14 +++-------- .../pubsub/PubSubPatternMessageDecoder.java | 14 +++-------- .../protocol/pubsub/PubSubStatusDecoder.java | 23 +++++++++-------- .../decoder/ListDrainToDecoder.java | 12 +++------ .../decoder/MapCacheGetAllDecoder.java | 12 +++------ .../connection/decoder/MapGetAllDecoder.java | 13 +++------- 38 files changed, 193 insertions(+), 397 deletions(-) diff --git a/redisson/src/main/java/org/redisson/client/handler/CommandDecoder.java b/redisson/src/main/java/org/redisson/client/handler/CommandDecoder.java index 4adecf9e9..d430c8277 100644 --- a/redisson/src/main/java/org/redisson/client/handler/CommandDecoder.java +++ b/redisson/src/main/java/org/redisson/client/handler/CommandDecoder.java @@ -92,7 +92,7 @@ public class CommandDecoder extends ReplayingDecoder { if (data == null) { while (in.writerIndex() > in.readerIndex()) { - decode(in, null, null, ctx.channel()); + decode(in, null, null, ctx.channel()); } } else if (data instanceof CommandData) { CommandData cmd = (CommandData)data; @@ -330,7 +330,7 @@ public class CommandDecoder extends ReplayingDecoder { if (parts.isEmpty()) { return null; } - } + } return data.getCommand().getReplayMultiDecoder(); } @@ -342,8 +342,9 @@ public class CommandDecoder extends ReplayingDecoder { Decoder decoder = data.getCommand().getReplayDecoder(); if (parts != null) { MultiDecoder multiDecoder = data.getCommand().getReplayMultiDecoder(); - if (multiDecoder.isApplicable(parts.size(), state())) { - decoder = multiDecoder; + Decoder mDecoder = multiDecoder.getDecoder(parts.size(), state()); + if (mDecoder != null) { + decoder = mDecoder; } } if (decoder == null) { diff --git a/redisson/src/main/java/org/redisson/client/handler/CommandPubSubDecoder.java b/redisson/src/main/java/org/redisson/client/handler/CommandPubSubDecoder.java index 5da57ef60..fe29f26bc 100644 --- a/redisson/src/main/java/org/redisson/client/handler/CommandPubSubDecoder.java +++ b/redisson/src/main/java/org/redisson/client/handler/CommandPubSubDecoder.java @@ -176,11 +176,11 @@ public class CommandPubSubDecoder extends CommandDecoder { if (data == null && parts != null) { if (parts.size() == 2 && "message".equals(parts.get(0))) { String channelName = (String) parts.get(1); - return entries.get(channelName).getDecoder(); + return entries.get(channelName).getDecoder().getDecoder(parts.size(), state()); } if (parts.size() == 3 && "pmessage".equals(parts.get(0))) { String patternName = (String) parts.get(1); - return entries.get(patternName).getDecoder(); + return entries.get(patternName).getDecoder().getDecoder(parts.size(), state()); } } return super.selectDecoder(data, parts); diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/FlatNestedMultiDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/FlatNestedMultiDecoder.java index 0737a85a0..de5756c2e 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/FlatNestedMultiDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/FlatNestedMultiDecoder.java @@ -15,11 +15,8 @@ */ package org.redisson.client.protocol.decoder; -import java.io.IOException; - import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; +import org.redisson.client.protocol.Decoder; /** * @@ -34,17 +31,13 @@ public class FlatNestedMultiDecoder extends NestedMultiDecoder { } @Override - public Object decode(ByteBuf buf, State state) throws IOException { - return firstDecoder.decode(buf, state); - } - - @Override - public boolean isApplicable(int paramNum, State state) { + public Decoder getDecoder(int paramNum, State state) { NestedDecoderState ds = getDecoder(state); if (paramNum == 0) { ds.resetDecoderIndex(); } - return firstDecoder.isApplicable(paramNum, state); + + return firstDecoder.getDecoder(paramNum, state); } - + } diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/GeoDistanceDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/GeoDistanceDecoder.java index 970c99b89..faf7e432b 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/GeoDistanceDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/GeoDistanceDecoder.java @@ -15,14 +15,12 @@ */ package org.redisson.client.protocol.decoder; -import java.io.IOException; import java.util.List; import org.redisson.client.codec.Codec; import org.redisson.client.codec.DoubleCodec; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; +import org.redisson.client.protocol.Decoder; /** * @@ -31,8 +29,6 @@ import io.netty.buffer.ByteBuf; */ public class GeoDistanceDecoder implements MultiDecoder> { - private final ThreadLocal pos = new ThreadLocal(); - private final Codec codec; public GeoDistanceDecoder(Codec codec) { @@ -41,19 +37,13 @@ public class GeoDistanceDecoder implements MultiDecoder> { } @Override - public Object decode(ByteBuf buf, State state) throws IOException { - if (pos.get() % 2 == 0) { - return codec.getValueDecoder().decode(buf, state); + public Decoder getDecoder(int paramNum, State state) { + if (paramNum % 2 == 0) { + return codec.getValueDecoder(); } - return DoubleCodec.INSTANCE.getValueDecoder().decode(buf, state); + return DoubleCodec.INSTANCE.getValueDecoder(); } - - @Override - public boolean isApplicable(int paramNum, State state) { - pos.set(paramNum); - return true; - } - + @Override public List decode(List parts, State state) { return parts; diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/GeoDistanceMapDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/GeoDistanceMapDecoder.java index 9d5bc3193..dcf9130ae 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/GeoDistanceMapDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/GeoDistanceMapDecoder.java @@ -15,7 +15,6 @@ */ package org.redisson.client.protocol.decoder; -import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -23,8 +22,7 @@ import java.util.Map; import org.redisson.client.codec.Codec; import org.redisson.client.codec.DoubleCodec; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; +import org.redisson.client.protocol.Decoder; /** * @@ -33,27 +31,19 @@ import io.netty.buffer.ByteBuf; */ public class GeoDistanceMapDecoder implements MultiDecoder> { - private final ThreadLocal pos = new ThreadLocal(); - private final Codec codec; public GeoDistanceMapDecoder(Codec codec) { super(); this.codec = codec; } - + @Override - public Object decode(ByteBuf buf, State state) throws IOException { - if (pos.get() % 2 == 0) { - return codec.getValueDecoder().decode(buf, state); + public Decoder getDecoder(int paramNum, State state) { + if (paramNum % 2 == 0) { + return codec.getValueDecoder(); } - return DoubleCodec.INSTANCE.getValueDecoder().decode(buf, state); - } - - @Override - public boolean isApplicable(int paramNum, State state) { - pos.set(paramNum); - return true; + return DoubleCodec.INSTANCE.getValueDecoder(); } @Override diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/GeoMapReplayDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/GeoMapReplayDecoder.java index 523b0225c..7323eb6d8 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/GeoMapReplayDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/GeoMapReplayDecoder.java @@ -20,8 +20,7 @@ import java.util.List; import java.util.Map; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; +import org.redisson.client.protocol.Decoder; /** * @@ -31,10 +30,10 @@ import io.netty.buffer.ByteBuf; public class GeoMapReplayDecoder implements MultiDecoder> { @Override - public Object decode(ByteBuf buf, State state) { - throw new UnsupportedOperationException(); + public Decoder getDecoder(int paramNum, State state) { + return null; } - + @Override public Map decode(List parts, State state) { Map result = new LinkedHashMap(parts.size()); @@ -45,9 +44,4 @@ public class GeoMapReplayDecoder implements MultiDecoder> { return result; } - @Override - public boolean isApplicable(int paramNum, State state) { - return false; - } - } diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/GeoPositionDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/GeoPositionDecoder.java index 54f756602..104834184 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/GeoPositionDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/GeoPositionDecoder.java @@ -15,14 +15,12 @@ */ package org.redisson.client.protocol.decoder; -import java.io.IOException; import java.util.List; import org.redisson.api.GeoPosition; import org.redisson.client.codec.DoubleCodec; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; +import org.redisson.client.protocol.Decoder; /** * @@ -32,15 +30,10 @@ import io.netty.buffer.ByteBuf; public class GeoPositionDecoder implements MultiDecoder { @Override - public Double decode(ByteBuf buf, State state) throws IOException { - return (Double) DoubleCodec.INSTANCE.getValueDecoder().decode(buf, state); + public Decoder getDecoder(int paramNum, State state) { + return DoubleCodec.INSTANCE.getValueDecoder(); } - - @Override - public boolean isApplicable(int paramNum, State state) { - return true; - } - + @Override public GeoPosition decode(List parts, State state) { if (parts.isEmpty()) { diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/GeoPositionMapDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/GeoPositionMapDecoder.java index 7eefbbd24..898ada36c 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/GeoPositionMapDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/GeoPositionMapDecoder.java @@ -15,15 +15,13 @@ */ package org.redisson.client.protocol.decoder; -import java.io.IOException; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; +import org.redisson.client.protocol.Decoder; /** * @@ -39,15 +37,10 @@ public class GeoPositionMapDecoder implements MultiDecoder> } @Override - public Double decode(ByteBuf buf, State state) throws IOException { - throw new UnsupportedOperationException(); + public Decoder getDecoder(int paramNum, State state) { + return null; } - - @Override - public boolean isApplicable(int paramNum, State state) { - return false; - } - + @Override public Map decode(List parts, State state) { if (parts.isEmpty()) { diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/KeyValueObjectDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/KeyValueObjectDecoder.java index 5ac2d0c65..d283b7c25 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/KeyValueObjectDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/KeyValueObjectDecoder.java @@ -15,9 +15,11 @@ */ package org.redisson.client.protocol.decoder; +import java.io.IOException; import java.util.List; import org.redisson.client.handler.State; +import org.redisson.client.protocol.Decoder; import io.netty.buffer.ByteBuf; import io.netty.util.CharsetUtil; @@ -30,12 +32,20 @@ import io.netty.util.CharsetUtil; public class KeyValueObjectDecoder implements MultiDecoder { @Override - public Object decode(ByteBuf buf, State state) { - String status = buf.toString(CharsetUtil.UTF_8); - buf.skipBytes(1); - return status; + public Decoder getDecoder(int paramNum, State state) { + if (paramNum == 0) { + return new Decoder() { + @Override + public Object decode(ByteBuf buf, State state) throws IOException { + String status = buf.toString(CharsetUtil.UTF_8); + buf.skipBytes(1); + return status; + } + }; + } + return null; } - + @Override public Object decode(List parts, State state) { if (parts.isEmpty()) { @@ -44,9 +54,4 @@ public class KeyValueObjectDecoder implements MultiDecoder { return new KeyValueMessage(parts.get(0), parts.get(1)); } - @Override - public boolean isApplicable(int paramNum, State state) { - return paramNum == 0; - } - } diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/ListFirstObjectDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/ListFirstObjectDecoder.java index cffa3aa42..ecf599739 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/ListFirstObjectDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/ListFirstObjectDecoder.java @@ -18,8 +18,7 @@ package org.redisson.client.protocol.decoder; import java.util.List; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; +import org.redisson.client.protocol.Decoder; /** * @@ -28,11 +27,6 @@ import io.netty.buffer.ByteBuf; */ public class ListFirstObjectDecoder implements MultiDecoder { - @Override - public Object decode(ByteBuf buf, State state) { - throw new UnsupportedOperationException(); - } - @Override public Object decode(List parts, State state) { if (!parts.isEmpty()) { @@ -42,8 +36,8 @@ public class ListFirstObjectDecoder implements MultiDecoder { } @Override - public boolean isApplicable(int paramNum, State state) { - return false; + public Decoder getDecoder(int paramNum, State state) { + return null; } } diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/ListIteratorReplayDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/ListIteratorReplayDecoder.java index 8278cde72..860fbc4cd 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/ListIteratorReplayDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/ListIteratorReplayDecoder.java @@ -18,8 +18,7 @@ package org.redisson.client.protocol.decoder; import java.util.List; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; +import org.redisson.client.protocol.Decoder; /** * @@ -28,19 +27,14 @@ import io.netty.buffer.ByteBuf; */ public class ListIteratorReplayDecoder implements MultiDecoder> { - @Override - public Object decode(ByteBuf buf, State state) { - throw new UnsupportedOperationException(); - } - @Override public ListIteratorResult decode(List parts, State state) { return new ListIteratorResult(parts.get(0), Long.valueOf(parts.get(1).toString())); } @Override - public boolean isApplicable(int paramNum, State state) { - return false; + public Decoder getDecoder(int paramNum, State state) { + return null; } } diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/ListMultiDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/ListMultiDecoder.java index 0ccbd404e..23154b74e 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/ListMultiDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/ListMultiDecoder.java @@ -15,12 +15,10 @@ */ package org.redisson.client.protocol.decoder; -import java.io.IOException; import java.util.List; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; +import org.redisson.client.protocol.Decoder; /** * @@ -90,21 +88,18 @@ public class ListMultiDecoder implements MultiDecoder { this.decoders = decoders; } - public Object decode(ByteBuf buf, State state) throws IOException { - int index = getDecoder(state).getIndex(); - return decoders[index].decode(buf, state); - } - @Override - public boolean isApplicable(int paramNum, State state) { + public Decoder getDecoder(int paramNum, State state) { if (paramNum == 0) { NestedDecoderState s = getDecoder(state); s.incIndex(); s.resetPartsIndex(); } - return true; - } + int index = getDecoder(state).getIndex(); + return decoders[index].getDecoder(paramNum, state); + } + @Override public Object decode(List parts, State state) { NestedDecoderState s = getDecoder(state); diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/ListResultReplayDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/ListResultReplayDecoder.java index 75ef13dde..3eff14269 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/ListResultReplayDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/ListResultReplayDecoder.java @@ -19,10 +19,9 @@ import java.util.Arrays; import java.util.List; import java.util.Map; +import org.redisson.client.codec.StringCodec; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; -import io.netty.util.CharsetUtil; +import org.redisson.client.protocol.Decoder; /** * @@ -32,10 +31,10 @@ import io.netty.util.CharsetUtil; public class ListResultReplayDecoder implements MultiDecoder>> { @Override - public Object decode(ByteBuf buf, State state) { - return buf.toString(CharsetUtil.UTF_8); + public Decoder getDecoder(int paramNum, State state) { + return StringCodec.INSTANCE.getValueDecoder(); } - + @Override @SuppressWarnings("unchecked") public List> decode(List parts, State state) { @@ -43,9 +42,4 @@ public class ListResultReplayDecoder implements MultiDecoder> { @Override - public Object decode(ByteBuf buf, State state) { - return Long.valueOf(buf.toString(CharsetUtil.UTF_8)); + public Decoder getDecoder(int paramNum, State state) { + if (paramNum == 0) { + return LongCodec.INSTANCE.getValueDecoder(); + } + return null; } - + @Override public ListScanResult decode(List parts, State state) { return new ListScanResult((Long)parts.get(0), (List)parts.get(1)); } - @Override - public boolean isApplicable(int paramNum, State state) { - return paramNum == 0; - } - } diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/LongMultiDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/LongMultiDecoder.java index e8eca802b..82f9205e5 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/LongMultiDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/LongMultiDecoder.java @@ -15,13 +15,11 @@ */ package org.redisson.client.protocol.decoder; -import java.io.IOException; import java.util.List; import org.redisson.client.codec.LongCodec; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; +import org.redisson.client.protocol.Decoder; /** * @@ -31,15 +29,10 @@ import io.netty.buffer.ByteBuf; public class LongMultiDecoder implements MultiDecoder { @Override - public Object decode(ByteBuf buf, State state) throws IOException { - return LongCodec.INSTANCE.getValueDecoder().decode(buf, state); + public Decoder getDecoder(int paramNum, State state) { + return LongCodec.INSTANCE.getValueDecoder(); } - - @Override - public boolean isApplicable(int paramNum, State state) { - return false; - } - + @Override public Object decode(List parts, State state) { return null; diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/MapCacheScanResultReplayDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/MapCacheScanResultReplayDecoder.java index 5016751a9..c29338534 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/MapCacheScanResultReplayDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/MapCacheScanResultReplayDecoder.java @@ -15,13 +15,11 @@ */ package org.redisson.client.protocol.decoder; -import java.io.IOException; import java.util.List; import java.util.Map; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; +import org.redisson.client.protocol.Decoder; /** * @@ -30,11 +28,6 @@ import io.netty.buffer.ByteBuf; */ public class MapCacheScanResultReplayDecoder implements MultiDecoder> { - @Override - public Object decode(ByteBuf buf, State state) throws IOException { - throw new UnsupportedOperationException(); - } - @Override public MapCacheScanResult decode(List parts, State state) { Long pos = (Long)parts.get(0); @@ -44,8 +37,8 @@ public class MapCacheScanResultReplayDecoder implements MultiDecoder getDecoder(int paramNum, State state) { + return null; } } diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/MapScanResultReplayDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/MapScanResultReplayDecoder.java index d7b5ff505..0e5ba2cfa 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/MapScanResultReplayDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/MapScanResultReplayDecoder.java @@ -18,10 +18,9 @@ package org.redisson.client.protocol.decoder; import java.util.List; import java.util.Map; +import org.redisson.client.codec.LongCodec; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; -import io.netty.util.CharsetUtil; +import org.redisson.client.protocol.Decoder; /** * @@ -31,18 +30,16 @@ import io.netty.util.CharsetUtil; public class MapScanResultReplayDecoder implements MultiDecoder> { @Override - public Object decode(ByteBuf buf, State state) { - return Long.valueOf(buf.toString(CharsetUtil.UTF_8)); + public Decoder getDecoder(int paramNum, State state) { + if (paramNum == 0) { + return LongCodec.INSTANCE.getValueDecoder(); + } + return null; } - + @Override public MapScanResult decode(List parts, State state) { return new MapScanResult((Long)parts.get(0), (Map)parts.get(1)); } - @Override - public boolean isApplicable(int paramNum, State state) { - return paramNum == 0; - } - } diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/MultiDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/MultiDecoder.java index 180dd4ed8..f1fd5b730 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/MultiDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/MultiDecoder.java @@ -26,10 +26,10 @@ import org.redisson.client.protocol.Decoder; * * @param type */ -public interface MultiDecoder extends Decoder { - - boolean isApplicable(int paramNum, State state); +public interface MultiDecoder { + Decoder getDecoder(int paramNum, State state); + T decode(List parts, State state); } diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/NestedMultiDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/NestedMultiDecoder.java index 6d30ff04a..298a5917b 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/NestedMultiDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/NestedMultiDecoder.java @@ -15,12 +15,10 @@ */ package org.redisson.client.protocol.decoder; -import java.io.IOException; import java.util.List; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; +import org.redisson.client.protocol.Decoder; /** * @@ -100,24 +98,9 @@ public class NestedMultiDecoder implements MultiDecoder { this.thirdDecoder = thirdDecoder; this.handleEmpty = handleEmpty; } - - @Override - public Object decode(ByteBuf buf, State state) throws IOException { - NestedDecoderState ds = getDecoder(state); - - MultiDecoder decoder = null; - if (ds.getFlipDecoderIndex() == 2) { - decoder = firstDecoder; - } - if (ds.getFlipDecoderIndex() == 1) { - decoder = secondDecoder; - } - - return decoder.decode(buf, state); - } - + @Override - public boolean isApplicable(int paramNum, State state) { + public Decoder getDecoder(int paramNum, State state) { NestedDecoderState ds = getDecoder(state); if (paramNum == 0) { ds.incFlipDecoderIndex(); @@ -137,7 +120,7 @@ public class NestedMultiDecoder implements MultiDecoder { decoder = secondDecoder; } - return decoder.isApplicable(paramNum, state); + return decoder.getDecoder(paramNum, state); } protected final NestedDecoderState getDecoder(State state) { diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectFirstResultReplayDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectFirstResultReplayDecoder.java index de3b819be..bb6194ebb 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectFirstResultReplayDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectFirstResultReplayDecoder.java @@ -18,8 +18,7 @@ package org.redisson.client.protocol.decoder; import java.util.List; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; +import org.redisson.client.protocol.Decoder; /** * @@ -29,19 +28,14 @@ import io.netty.buffer.ByteBuf; */ public class ObjectFirstResultReplayDecoder implements MultiDecoder { - @Override - public Object decode(ByteBuf buf, State state) { - throw new UnsupportedOperationException(); - } - @Override public T decode(List parts, State state) { return (T) parts.get(0); } @Override - public boolean isApplicable(int paramNum, State state) { - return false; + public Decoder getDecoder(int paramNum, State state) { + return null; } } diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectFirstScoreReplayDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectFirstScoreReplayDecoder.java index 19a0bf0c5..887d99837 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectFirstScoreReplayDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectFirstScoreReplayDecoder.java @@ -15,13 +15,11 @@ */ package org.redisson.client.protocol.decoder; -import java.math.BigDecimal; import java.util.List; +import org.redisson.client.codec.DoubleCodec; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; -import io.netty.util.CharsetUtil; +import org.redisson.client.protocol.Decoder; /** * @@ -32,18 +30,16 @@ import io.netty.util.CharsetUtil; public class ObjectFirstScoreReplayDecoder implements MultiDecoder { @Override - public Object decode(ByteBuf buf, State state) { - return new BigDecimal(buf.toString(CharsetUtil.UTF_8)).doubleValue(); + public Decoder getDecoder(int paramNum, State state) { + if (paramNum % 2 != 0) { + return DoubleCodec.INSTANCE.getValueDecoder(); + } + return null; } - + @Override public Double decode(List parts, State state) { return (Double) parts.get(1); } - @Override - public boolean isApplicable(int paramNum, State state) { - return paramNum % 2 != 0; - } - } diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectListDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectListDecoder.java index 0cd24c467..81add946f 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectListDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectListDecoder.java @@ -15,13 +15,11 @@ */ package org.redisson.client.protocol.decoder; -import java.io.IOException; import java.util.List; import org.redisson.client.codec.Codec; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; +import org.redisson.client.protocol.Decoder; /** * @@ -37,10 +35,10 @@ public class ObjectListDecoder implements MultiDecoder> { super(); this.codec = codec; } - + @Override - public Object decode(ByteBuf buf, State state) throws IOException { - return codec.getMapKeyDecoder().decode(buf, state); + public Decoder getDecoder(int paramNum, State state) { + return codec.getMapKeyDecoder(); } @Override @@ -48,9 +46,4 @@ public class ObjectListDecoder implements MultiDecoder> { return (List) parts; } - @Override - public boolean isApplicable(int paramNum, State state) { - return false; - } - } diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectListReplayDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectListReplayDecoder.java index 4f461fd56..e7deba122 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectListReplayDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectListReplayDecoder.java @@ -18,8 +18,7 @@ package org.redisson.client.protocol.decoder; import java.util.List; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; +import org.redisson.client.protocol.Decoder; /** * @@ -29,19 +28,13 @@ import io.netty.buffer.ByteBuf; */ public class ObjectListReplayDecoder implements MultiDecoder> { - @Override - public Object decode(ByteBuf buf, State state) { - throw new UnsupportedOperationException(); - } - @Override public List decode(List parts, State state) { return (List) parts; } @Override - public boolean isApplicable(int paramNum, State state) { - return false; + public Decoder getDecoder(int paramNum, State state) { + return null; } - } diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectMapDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectMapDecoder.java index 54f48c3da..9937d3e0b 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectMapDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectMapDecoder.java @@ -15,15 +15,13 @@ */ package org.redisson.client.protocol.decoder; -import java.io.IOException; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.redisson.client.codec.Codec; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; +import org.redisson.client.protocol.Decoder; /** * @@ -42,13 +40,13 @@ public class ObjectMapDecoder implements MultiDecoder> { private int pos; @Override - public Object decode(ByteBuf buf, State state) throws IOException { + public Decoder getDecoder(int paramNum, State state) { if (pos++ % 2 == 0) { - return codec.getMapKeyDecoder().decode(buf, state); + return codec.getMapKeyDecoder(); } - return codec.getMapValueDecoder().decode(buf, state); + return codec.getMapValueDecoder(); } - + @Override public Map decode(List parts, State state) { Map result = new LinkedHashMap(parts.size()/2); @@ -60,9 +58,4 @@ public class ObjectMapDecoder implements MultiDecoder> { return result; } - @Override - public boolean isApplicable(int paramNum, State state) { - return true; - } - } 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 a133b3f86..5cc891e31 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 @@ -22,8 +22,7 @@ import java.util.Map.Entry; import java.util.Set; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; +import org.redisson.client.protocol.Decoder; /** * @@ -33,8 +32,8 @@ import io.netty.buffer.ByteBuf; public class ObjectMapEntryReplayDecoder implements MultiDecoder>> { @Override - public Object decode(ByteBuf buf, State state) { - throw new UnsupportedOperationException(); + public Decoder getDecoder(int paramNum, State state) { + return null; } @Override @@ -48,9 +47,4 @@ public class ObjectMapEntryReplayDecoder implements MultiDecoder> { - @Override - public Object decode(ByteBuf buf, State state) { - throw new UnsupportedOperationException(); - } - @Override public Map decode(List parts, State state) { Map result = new LinkedHashMap(parts.size()/2); @@ -47,8 +41,8 @@ public class ObjectMapReplayDecoder implements MultiDecoder> } @Override - public boolean isApplicable(int paramNum, State state) { - return false; + public Decoder getDecoder(int paramNum, State state) { + return null; } } diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectSetReplayDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectSetReplayDecoder.java index 41defa918..02f1a8f5d 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectSetReplayDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/ObjectSetReplayDecoder.java @@ -20,8 +20,7 @@ import java.util.List; import java.util.Set; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; +import org.redisson.client.protocol.Decoder; /** * @@ -31,19 +30,14 @@ import io.netty.buffer.ByteBuf; */ public class ObjectSetReplayDecoder implements MultiDecoder> { - @Override - public Object decode(ByteBuf buf, State state) { - throw new UnsupportedOperationException(); - } - @Override public Set decode(List parts, State state) { return new LinkedHashSet(parts); } @Override - public boolean isApplicable(int paramNum, State state) { - return false; + public Decoder getDecoder(int paramNum, State state) { + return null; } } diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/ScoredSortedSetReplayDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/ScoredSortedSetReplayDecoder.java index 6f9411e34..14852528c 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/ScoredSortedSetReplayDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/ScoredSortedSetReplayDecoder.java @@ -15,16 +15,14 @@ */ package org.redisson.client.protocol.decoder; -import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; +import org.redisson.client.codec.DoubleCodec; import org.redisson.client.handler.State; +import org.redisson.client.protocol.Decoder; import org.redisson.client.protocol.ScoredEntry; -import io.netty.buffer.ByteBuf; -import io.netty.util.CharsetUtil; - /** * * @author Nikita Koksharov @@ -34,10 +32,13 @@ import io.netty.util.CharsetUtil; public class ScoredSortedSetReplayDecoder implements MultiDecoder>> { @Override - public Object decode(ByteBuf buf, State state) { - return new BigDecimal(buf.toString(CharsetUtil.UTF_8)); + public Decoder getDecoder(int paramNum, State state) { + if (paramNum % 2 != 0) { + return DoubleCodec.INSTANCE.getValueDecoder(); + } + return null; } - + @Override public List> decode(List parts, State state) { List> result = new ArrayList>(); @@ -47,9 +48,4 @@ public class ScoredSortedSetReplayDecoder implements MultiDecoder extends ObjectListReplayDecoder { @Override - public Object decode(ByteBuf buf, State state) { - return new BigDecimal(buf.toString(CharsetUtil.UTF_8)); - } - - @Override - public boolean isApplicable(int paramNum, State state) { - return paramNum % 2 != 0; + public Decoder getDecoder(int paramNum, State state) { + if (paramNum % 2 != 0) { + return DoubleCodec.INSTANCE.getValueDecoder(); + } + return super.getDecoder(paramNum, state); } - + } diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/ScoredSortedSetScanReplayDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/ScoredSortedSetScanReplayDecoder.java index b92061fd2..decc7cbc4 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/ScoredSortedSetScanReplayDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/ScoredSortedSetScanReplayDecoder.java @@ -17,10 +17,9 @@ package org.redisson.client.protocol.decoder; import java.util.List; +import org.redisson.client.codec.LongCodec; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; -import io.netty.util.CharsetUtil; +import org.redisson.client.protocol.Decoder; /** * @@ -30,10 +29,13 @@ import io.netty.util.CharsetUtil; public class ScoredSortedSetScanReplayDecoder implements MultiDecoder> { @Override - public Object decode(ByteBuf buf, State state) { - return Long.valueOf(buf.toString(CharsetUtil.UTF_8)); + public Decoder getDecoder(int paramNum, State state) { + if (paramNum == 0) { + return LongCodec.INSTANCE.getValueDecoder(); + } + return null; } - + @Override public ListScanResult decode(List parts, State state) { List values = (List)parts.get(1); @@ -43,9 +45,4 @@ public class ScoredSortedSetScanReplayDecoder implements MultiDecoder((Long)parts.get(0), values); } - @Override - public boolean isApplicable(int paramNum, State state) { - return paramNum == 0; - } - } diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/SlotsDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/SlotsDecoder.java index 8248a1106..545b37758 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/SlotsDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/SlotsDecoder.java @@ -22,12 +22,11 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.redisson.client.codec.StringCodec; import org.redisson.client.handler.State; +import org.redisson.client.protocol.Decoder; import org.redisson.cluster.ClusterSlotRange; -import io.netty.buffer.ByteBuf; -import io.netty.util.CharsetUtil; - /** * * @author Nikita Koksharov @@ -36,10 +35,10 @@ import io.netty.util.CharsetUtil; public class SlotsDecoder implements MultiDecoder { @Override - public Object decode(ByteBuf buf, State state) { - return buf.toString(CharsetUtil.UTF_8); + public Decoder getDecoder(int paramNum, State state) { + return StringCodec.INSTANCE.getValueDecoder(); } - + @Override public Object decode(List parts, State state) { if (parts.size() > 2 && parts.get(0) instanceof List) { @@ -62,9 +61,4 @@ public class SlotsDecoder implements MultiDecoder { return parts; } - @Override - public boolean isApplicable(int paramNum, State state) { - return true; - } - } diff --git a/redisson/src/main/java/org/redisson/client/protocol/decoder/StringListReplayDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/decoder/StringListReplayDecoder.java index 89be7cdc8..0f42cfdfe 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/decoder/StringListReplayDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/decoder/StringListReplayDecoder.java @@ -18,10 +18,9 @@ package org.redisson.client.protocol.decoder; import java.util.Arrays; import java.util.List; +import org.redisson.client.codec.StringCodec; import org.redisson.client.handler.State; - -import io.netty.buffer.ByteBuf; -import io.netty.util.CharsetUtil; +import org.redisson.client.protocol.Decoder; /** * @@ -31,18 +30,13 @@ import io.netty.util.CharsetUtil; public class StringListReplayDecoder implements MultiDecoder> { @Override - public Object decode(ByteBuf buf, State state) { - return buf.toString(CharsetUtil.UTF_8); + public Decoder getDecoder(int paramNum, State state) { + return StringCodec.INSTANCE.getValueDecoder(); } - + @Override public List decode(List parts, State state) { return Arrays.asList(Arrays.copyOf(parts.toArray(), parts.size(), String[].class)); } - @Override - public boolean isApplicable(int paramNum, State state) { - return true; - } - } diff --git a/redisson/src/main/java/org/redisson/client/protocol/pubsub/PubSubMessageDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/pubsub/PubSubMessageDecoder.java index e512d3685..f131df98b 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/pubsub/PubSubMessageDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/pubsub/PubSubMessageDecoder.java @@ -15,15 +15,12 @@ */ package org.redisson.client.protocol.pubsub; -import java.io.IOException; import java.util.List; import org.redisson.client.handler.State; import org.redisson.client.protocol.Decoder; import org.redisson.client.protocol.decoder.MultiDecoder; -import io.netty.buffer.ByteBuf; - public class PubSubMessageDecoder implements MultiDecoder { private final Decoder decoder; @@ -34,18 +31,13 @@ public class PubSubMessageDecoder implements MultiDecoder { } @Override - public Object decode(ByteBuf buf, State state) throws IOException { - return decoder.decode(buf, null); + public Decoder getDecoder(int paramNum, State state) { + return decoder; } - + @Override public PubSubMessage decode(List parts, State state) { return new PubSubMessage(parts.get(1).toString(), parts.get(2)); } - @Override - public boolean isApplicable(int paramNum, State state) { - return true; - } - } diff --git a/redisson/src/main/java/org/redisson/client/protocol/pubsub/PubSubPatternMessageDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/pubsub/PubSubPatternMessageDecoder.java index e710754ca..3d9907e30 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/pubsub/PubSubPatternMessageDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/pubsub/PubSubPatternMessageDecoder.java @@ -15,15 +15,12 @@ */ package org.redisson.client.protocol.pubsub; -import java.io.IOException; import java.util.List; import org.redisson.client.handler.State; import org.redisson.client.protocol.Decoder; import org.redisson.client.protocol.decoder.MultiDecoder; -import io.netty.buffer.ByteBuf; - public class PubSubPatternMessageDecoder implements MultiDecoder { private final Decoder decoder; @@ -34,18 +31,13 @@ public class PubSubPatternMessageDecoder implements MultiDecoder { } @Override - public Object decode(ByteBuf buf, State state) throws IOException { - return decoder.decode(buf, null); + public Decoder getDecoder(int paramNum, State state) { + return decoder; } - + @Override public PubSubPatternMessage decode(List parts, State state) { return new PubSubPatternMessage(parts.get(1).toString(), parts.get(2).toString(), parts.get(3)); } - @Override - public boolean isApplicable(int paramNum, State state) { - return true; - } - } diff --git a/redisson/src/main/java/org/redisson/client/protocol/pubsub/PubSubStatusDecoder.java b/redisson/src/main/java/org/redisson/client/protocol/pubsub/PubSubStatusDecoder.java index 48196e6a4..88677583d 100644 --- a/redisson/src/main/java/org/redisson/client/protocol/pubsub/PubSubStatusDecoder.java +++ b/redisson/src/main/java/org/redisson/client/protocol/pubsub/PubSubStatusDecoder.java @@ -15,9 +15,11 @@ */ package org.redisson.client.protocol.pubsub; +import java.io.IOException; import java.util.List; import org.redisson.client.handler.State; +import org.redisson.client.protocol.Decoder; import org.redisson.client.protocol.decoder.MultiDecoder; import io.netty.buffer.ByteBuf; @@ -26,20 +28,21 @@ import io.netty.util.CharsetUtil; public class PubSubStatusDecoder implements MultiDecoder { @Override - public Object decode(ByteBuf buf, State state) { - String status = buf.toString(CharsetUtil.UTF_8); - buf.skipBytes(2); - return status; + public Decoder getDecoder(int paramNum, State state) { + return new Decoder() { + + @Override + public Object decode(ByteBuf buf, State state) throws IOException { + String status = buf.toString(CharsetUtil.UTF_8); + buf.skipBytes(2); + return status; + } + }; } - + @Override public PubSubStatusMessage decode(List parts, State state) { return new PubSubStatusMessage(PubSubType.valueOf(parts.get(0).toString().toUpperCase()), parts.get(1).toString()); } - @Override - public boolean isApplicable(int paramNum, State state) { - return true; - } - } diff --git a/redisson/src/main/java/org/redisson/connection/decoder/ListDrainToDecoder.java b/redisson/src/main/java/org/redisson/connection/decoder/ListDrainToDecoder.java index b51749afc..ccab408e2 100644 --- a/redisson/src/main/java/org/redisson/connection/decoder/ListDrainToDecoder.java +++ b/redisson/src/main/java/org/redisson/connection/decoder/ListDrainToDecoder.java @@ -19,10 +19,9 @@ import java.util.Collection; import java.util.List; import org.redisson.client.handler.State; +import org.redisson.client.protocol.Decoder; import org.redisson.client.protocol.decoder.MultiDecoder; -import io.netty.buffer.ByteBuf; - public class ListDrainToDecoder implements MultiDecoder { private Collection list; @@ -31,11 +30,6 @@ public class ListDrainToDecoder implements MultiDecoder { this.list = list; } - @Override - public Object decode(ByteBuf buf, State state) { - throw new UnsupportedOperationException(); - } - @Override public Integer decode(List parts, State state) { list.addAll(parts); @@ -43,8 +37,8 @@ public class ListDrainToDecoder implements MultiDecoder { } @Override - public boolean isApplicable(int paramNum, State state) { - return false; + public Decoder getDecoder(int paramNum, State state) { + return null; } } diff --git a/redisson/src/main/java/org/redisson/connection/decoder/MapCacheGetAllDecoder.java b/redisson/src/main/java/org/redisson/connection/decoder/MapCacheGetAllDecoder.java index 8bf4185c4..20f0c38d4 100644 --- a/redisson/src/main/java/org/redisson/connection/decoder/MapCacheGetAllDecoder.java +++ b/redisson/src/main/java/org/redisson/connection/decoder/MapCacheGetAllDecoder.java @@ -22,6 +22,7 @@ import java.util.List; import org.redisson.client.codec.LongCodec; import org.redisson.client.handler.State; +import org.redisson.client.protocol.Decoder; import org.redisson.client.protocol.decoder.MultiDecoder; import io.netty.buffer.ByteBuf; @@ -48,15 +49,10 @@ public class MapCacheGetAllDecoder implements MultiDecoder> { } @Override - public Object decode(ByteBuf buf, State state) throws IOException { - return LongCodec.INSTANCE.getValueDecoder().decode(buf, state); + public Decoder getDecoder(int paramNum, State state) { + return null; } - - @Override - public boolean isApplicable(int paramNum, State state) { - return false; - } - + @Override public List decode(List parts, State state) { if (parts.isEmpty()) { diff --git a/redisson/src/main/java/org/redisson/connection/decoder/MapGetAllDecoder.java b/redisson/src/main/java/org/redisson/connection/decoder/MapGetAllDecoder.java index 7d1416063..47210588e 100644 --- a/redisson/src/main/java/org/redisson/connection/decoder/MapGetAllDecoder.java +++ b/redisson/src/main/java/org/redisson/connection/decoder/MapGetAllDecoder.java @@ -15,17 +15,15 @@ */ package org.redisson.connection.decoder; -import java.io.IOException; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.redisson.client.handler.State; +import org.redisson.client.protocol.Decoder; import org.redisson.client.protocol.decoder.MultiDecoder; -import io.netty.buffer.ByteBuf; - /** * * @author Nikita Koksharov @@ -48,13 +46,8 @@ public class MapGetAllDecoder implements MultiDecoder> { } @Override - public Object decode(ByteBuf buf, State state) throws IOException { - throw new UnsupportedOperationException(); - } - - @Override - public boolean isApplicable(int paramNum, State state) { - return false; + public Decoder getDecoder(int paramNum, State state) { + return null; } @Override