Skip to content

Commit 6ecc579

Browse files
committed
Add/modify Keyed... response objects
1 parent 8dc0ebe commit 6ecc579

20 files changed

+244
-173
lines changed

src/main/java/redis/clients/jedis/BinaryJedis.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@
2121
import javax.net.ssl.SSLParameters;
2222
import javax.net.ssl.SSLSocketFactory;
2323

24-
import redis.clients.jedis.args.ListDirection;
25-
import redis.clients.jedis.args.FlushMode;
26-
import redis.clients.jedis.args.UnblockType;
24+
import redis.clients.jedis.args.*;
2725
import redis.clients.jedis.commands.AdvancedBinaryJedisCommands;
2826
import redis.clients.jedis.commands.BasicCommands;
2927
import redis.clients.jedis.commands.BinaryJedisCommands;
@@ -34,6 +32,7 @@
3432
import redis.clients.jedis.exceptions.JedisDataException;
3533
import redis.clients.jedis.exceptions.JedisException;
3634
import redis.clients.jedis.params.*;
35+
import redis.clients.jedis.resps.*;
3736
import redis.clients.jedis.util.JedisURIHelper;
3837

3938
public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKeyBinaryCommands,
@@ -2660,24 +2659,24 @@ private byte[][] getKeysAndTimeout(double timeout, byte[][] keys) {
26602659
}
26612660

26622661
@Override
2663-
public KeyedTuple bzpopmax(final double timeout, final byte[]... keys) {
2662+
public List<byte[]> bzpopmax(final double timeout, final byte[]... keys) {
26642663
checkIsInMultiOrPipeline();
26652664
client.bzpopmax(timeout, keys);
26662665
client.setTimeoutInfinite();
26672666
try {
2668-
return BuilderFactory.KEYED_TUPLE.build(client.getBinaryMultiBulkReply());
2667+
return client.getBinaryMultiBulkReply();
26692668
} finally {
26702669
client.rollbackTimeout();
26712670
}
26722671
}
26732672

26742673
@Override
2675-
public KeyedTuple bzpopmin(final double timeout, final byte[]... keys) {
2674+
public List<byte[]> bzpopmin(final double timeout, final byte[]... keys) {
26762675
checkIsInMultiOrPipeline();
26772676
client.bzpopmin(timeout, keys);
26782677
client.setTimeoutInfinite();
26792678
try {
2680-
return BuilderFactory.KEYED_TUPLE.build(client.getBinaryMultiBulkReply());
2679+
return client.getBinaryMultiBulkReply();
26812680
} finally {
26822681
client.rollbackTimeout();
26832682
}

src/main/java/redis/clients/jedis/BinaryJedisCluster.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package redis.clients.jedis;
22

3-
import redis.clients.jedis.args.ListDirection;
4-
import redis.clients.jedis.args.FlushMode;
3+
import redis.clients.jedis.args.*;
54
import redis.clients.jedis.commands.BinaryJedisClusterCommands;
65
import redis.clients.jedis.commands.JedisClusterBinaryScriptingCommands;
76
import redis.clients.jedis.commands.MultiKeyBinaryJedisClusterCommands;
87
import redis.clients.jedis.commands.ProtocolCommand;
98
import redis.clients.jedis.params.*;
9+
import redis.clients.jedis.resps.*;
1010
import redis.clients.jedis.util.JedisClusterHashTagUtil;
1111
import redis.clients.jedis.util.KeyMergeUtil;
1212
import redis.clients.jedis.util.SafeEncoder;
@@ -1837,20 +1837,20 @@ public List<byte[]> execute(Jedis connection) {
18371837
}
18381838

18391839
@Override
1840-
public KeyedTuple bzpopmax(double timeout, byte[]... keys) {
1841-
return new JedisClusterCommand<KeyedTuple>(connectionHandler, maxAttempts) {
1840+
public List<byte[]> bzpopmax(double timeout, byte[]... keys) {
1841+
return new JedisClusterCommand<List<byte[]>>(connectionHandler, maxAttempts) {
18421842
@Override
1843-
public KeyedTuple execute(Jedis connection) {
1843+
public List<byte[]> execute(Jedis connection) {
18441844
return connection.bzpopmax(timeout, keys);
18451845
}
18461846
}.runBinary(keys.length, keys);
18471847
}
18481848

18491849
@Override
1850-
public KeyedTuple bzpopmin(double timeout, byte[]... keys) {
1851-
return new JedisClusterCommand<KeyedTuple>(connectionHandler, maxAttempts) {
1850+
public List<byte[]> bzpopmin(double timeout, byte[]... keys) {
1851+
return new JedisClusterCommand<List<byte[]>>(connectionHandler, maxAttempts) {
18521852
@Override
1853-
public KeyedTuple execute(Jedis connection) {
1853+
public List<byte[]> execute(Jedis connection) {
18541854
return connection.bzpopmin(timeout, keys);
18551855
}
18561856
}.runBinary(keys.length, keys);

src/main/java/redis/clients/jedis/BuilderFactory.java

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.util.Map;
1111
import java.util.Set;
1212

13+
import redis.clients.jedis.resps.*;
1314
import redis.clients.jedis.util.JedisByteHashMap;
1415
import redis.clients.jedis.util.SafeEncoder;
1516

@@ -356,6 +357,21 @@ public String toString() {
356357

357358
};
358359

360+
public static final Builder<KeyedListElement> KEYED_LIST_ELEMENT = new Builder<KeyedListElement>() {
361+
@Override
362+
@SuppressWarnings("unchecked")
363+
public KeyedListElement build(Object data) {
364+
if (data == null) return null;
365+
List<byte[]> l = (List<byte[]>) data;
366+
return new KeyedListElement(l.get(0), l.get(1));
367+
}
368+
369+
@Override
370+
public String toString() {
371+
return "KeyedListElement";
372+
}
373+
};
374+
359375
public static final Builder<Tuple> TUPLE = new Builder<Tuple>() {
360376
@Override
361377
@SuppressWarnings("unchecked")
@@ -374,22 +390,21 @@ public String toString() {
374390

375391
};
376392

377-
public static final Builder<KeyedTuple> KEYED_TUPLE = new Builder<KeyedTuple>() {
393+
public static final Builder<KeyedZSetElement> KEYED_ZSET_ELEMENT = new Builder<KeyedZSetElement>() {
378394
@Override
379395
@SuppressWarnings("unchecked")
380-
public KeyedTuple build(Object data) {
396+
public KeyedZSetElement build(Object data) {
381397
List<byte[]> l = (List<byte[]>) data; // never null
382398
if (l.isEmpty()) {
383399
return null;
384400
}
385-
return new KeyedTuple(l.get(0), l.get(1), DOUBLE.build(l.get(2)));
401+
return new KeyedZSetElement(l.get(0), l.get(1), DOUBLE.build(l.get(2)));
386402
}
387403

388404
@Override
389405
public String toString() {
390-
return "KeyedTuple";
406+
return "KeyedZSetElement";
391407
}
392-
393408
};
394409

395410
public static final Builder<Set<Tuple>> TUPLE_ZSET = new Builder<Set<Tuple>>() {

src/main/java/redis/clients/jedis/Jedis.java

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313
import javax.net.ssl.SSLParameters;
1414
import javax.net.ssl.SSLSocketFactory;
1515

16-
import redis.clients.jedis.args.ListDirection;
16+
import redis.clients.jedis.args.*;
1717
import redis.clients.jedis.commands.*;
1818
import redis.clients.jedis.params.*;
19-
import redis.clients.jedis.args.UnblockType;
19+
import redis.clients.jedis.resps.*;
2020
import redis.clients.jedis.util.SafeEncoder;
2121
import redis.clients.jedis.util.Slowlog;
2222

@@ -2185,8 +2185,15 @@ public List<String> blpop(final int timeout, final String... keys) {
21852185
}
21862186

21872187
@Override
2188-
public List<String> blpop(final double timeout, final String... keys) {
2189-
return blpop(getKeysAndTimeout(timeout, keys));
2188+
public KeyedListElement blpop(final double timeout, final String... keys) {
2189+
checkIsInMultiOrPipeline();
2190+
client.blpop(timeout, keys);
2191+
client.setTimeoutInfinite();
2192+
try {
2193+
return BuilderFactory.KEYED_LIST_ELEMENT.build(client.getMultiBulkReply());
2194+
} finally {
2195+
client.rollbackTimeout();
2196+
}
21902197
}
21912198

21922199
/**
@@ -2257,8 +2264,15 @@ public List<String> brpop(final int timeout, final String... keys) {
22572264
}
22582265

22592266
@Override
2260-
public List<String> brpop(final double timeout, final String... keys) {
2261-
return brpop(getKeysAndTimeout(timeout, keys));
2267+
public KeyedListElement brpop(final double timeout, final String... keys) {
2268+
checkIsInMultiOrPipeline();
2269+
client.brpop(timeout, keys);
2270+
client.setTimeoutInfinite();
2271+
try {
2272+
return BuilderFactory.KEYED_LIST_ELEMENT.build(client.getMultiBulkReply());
2273+
} finally {
2274+
client.rollbackTimeout();
2275+
}
22622276
}
22632277

22642278
private String[] getKeysAndTimeout(int timeout, String[] keys) {
@@ -2271,16 +2285,6 @@ private String[] getKeysAndTimeout(int timeout, String[] keys) {
22712285
return args;
22722286
}
22732287

2274-
private String[] getKeysAndTimeout(double timeout, String[] keys) {
2275-
final int keyCount = keys.length;
2276-
final String[] args = new String[keyCount + 1];
2277-
2278-
System.arraycopy(keys, 0, args, 0, keyCount);
2279-
2280-
args[keyCount] = String.valueOf(timeout);
2281-
return args;
2282-
}
2283-
22842288
@Override
22852289
public List<String> blpop(final String... args) {
22862290
checkIsInMultiOrPipeline();
@@ -2306,24 +2310,24 @@ public List<String> brpop(final String... args) {
23062310
}
23072311

23082312
@Override
2309-
public KeyedTuple bzpopmax(double timeout, String... keys) {
2313+
public KeyedZSetElement bzpopmax(double timeout, String... keys) {
23102314
checkIsInMultiOrPipeline();
23112315
client.bzpopmax(timeout, keys);
23122316
client.setTimeoutInfinite();
23132317
try {
2314-
return BuilderFactory.KEYED_TUPLE.build(client.getObjectMultiBulkReply());
2318+
return BuilderFactory.KEYED_ZSET_ELEMENT.build(client.getObjectMultiBulkReply());
23152319
} finally {
23162320
client.rollbackTimeout();
23172321
}
23182322
}
23192323

23202324
@Override
2321-
public KeyedTuple bzpopmin(double timeout, String... keys) {
2325+
public KeyedZSetElement bzpopmin(double timeout, String... keys) {
23222326
checkIsInMultiOrPipeline();
23232327
client.bzpopmin(timeout, keys);
23242328
client.setTimeoutInfinite();
23252329
try {
2326-
return BuilderFactory.KEYED_TUPLE.build(client.getObjectMultiBulkReply());
2330+
return BuilderFactory.KEYED_ZSET_ELEMENT.build(client.getObjectMultiBulkReply());
23272331
} finally {
23282332
client.rollbackTimeout();
23292333
}
@@ -2335,8 +2339,8 @@ public List<String> blpop(final int timeout, final String key) {
23352339
}
23362340

23372341
@Override
2338-
public List<String> blpop(double timeout, String key) {
2339-
return blpop(key, String.valueOf(timeout));
2342+
public KeyedListElement blpop(double timeout, String key) {
2343+
return blpop(timeout, new String[]{key});
23402344
}
23412345

23422346
@Override
@@ -2345,8 +2349,8 @@ public List<String> brpop(final int timeout, final String key) {
23452349
}
23462350

23472351
@Override
2348-
public List<String> brpop(double timeout, String key) {
2349-
return brpop(key, String.valueOf(timeout));
2352+
public KeyedListElement brpop(double timeout, String key) {
2353+
return brpop(timeout, new String[]{key});
23502354
}
23512355

23522356
@Override

src/main/java/redis/clients/jedis/JedisCluster.java

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package redis.clients.jedis;
22

3-
import redis.clients.jedis.args.ListDirection;
3+
import redis.clients.jedis.args.*;
44
import redis.clients.jedis.commands.JedisClusterCommands;
55
import redis.clients.jedis.commands.JedisClusterScriptingCommands;
66
import redis.clients.jedis.commands.MultiKeyJedisClusterCommands;
77
import redis.clients.jedis.commands.ProtocolCommand;
88
import redis.clients.jedis.params.*;
9+
import redis.clients.jedis.resps.*;
910
import redis.clients.jedis.util.JedisClusterHashTagUtil;
1011
import redis.clients.jedis.util.KeyMergeUtil;
1112

@@ -1854,10 +1855,10 @@ public List<String> execute(Jedis connection) {
18541855
}
18551856

18561857
@Override
1857-
public List<String> blpop(final double timeout, final String... keys) {
1858-
return new JedisClusterCommand<List<String>>(connectionHandler, maxAttempts) {
1858+
public KeyedListElement blpop(final double timeout, final String... keys) {
1859+
return new JedisClusterCommand<KeyedListElement>(connectionHandler, maxAttempts) {
18591860
@Override
1860-
public List<String> execute(Jedis connection) {
1861+
public KeyedListElement execute(Jedis connection) {
18611862
return connection.blpop(timeout, keys);
18621863
}
18631864
}.run(keys.length, keys);
@@ -1875,30 +1876,30 @@ public List<String> execute(Jedis connection) {
18751876
}
18761877

18771878
@Override
1878-
public List<String> brpop(final double timeout, final String... keys) {
1879-
return new JedisClusterCommand<List<String>>(connectionHandler, maxAttempts) {
1879+
public KeyedListElement brpop(final double timeout, final String... keys) {
1880+
return new JedisClusterCommand<KeyedListElement>(connectionHandler, maxAttempts) {
18801881
@Override
1881-
public List<String> execute(Jedis connection) {
1882+
public KeyedListElement execute(Jedis connection) {
18821883
return connection.brpop(timeout, keys);
18831884
}
18841885
}.run(keys.length, keys);
18851886
}
18861887

18871888
@Override
1888-
public KeyedTuple bzpopmax(double timeout, String... keys) {
1889-
return new JedisClusterCommand<KeyedTuple>(connectionHandler, maxAttempts) {
1889+
public KeyedZSetElement bzpopmax(double timeout, String... keys) {
1890+
return new JedisClusterCommand<KeyedZSetElement>(connectionHandler, maxAttempts) {
18901891
@Override
1891-
public KeyedTuple execute(Jedis connection) {
1892+
public KeyedZSetElement execute(Jedis connection) {
18921893
return connection.bzpopmax(timeout, keys);
18931894
}
18941895
}.run(keys.length, keys);
18951896
}
18961897

18971898
@Override
1898-
public KeyedTuple bzpopmin(double timeout, String... keys) {
1899-
return new JedisClusterCommand<KeyedTuple>(connectionHandler, maxAttempts) {
1899+
public KeyedZSetElement bzpopmin(double timeout, String... keys) {
1900+
return new JedisClusterCommand<KeyedZSetElement>(connectionHandler, maxAttempts) {
19001901
@Override
1901-
public KeyedTuple execute(Jedis connection) {
1902+
public KeyedZSetElement execute(Jedis connection) {
19021903
return connection.bzpopmin(timeout, keys);
19031904
}
19041905
}.run(keys.length, keys);
@@ -1915,10 +1916,10 @@ public List<String> execute(Jedis connection) {
19151916
}
19161917

19171918
@Override
1918-
public List<String> blpop(double timeout, String key) {
1919-
return new JedisClusterCommand<List<String>>(connectionHandler, maxAttempts) {
1919+
public KeyedListElement blpop(double timeout, String key) {
1920+
return new JedisClusterCommand<KeyedListElement>(connectionHandler, maxAttempts) {
19201921
@Override
1921-
public List<String> execute(Jedis connection) {
1922+
public KeyedListElement execute(Jedis connection) {
19221923
return connection.blpop(timeout, key);
19231924
}
19241925
}.run(key);
@@ -1935,10 +1936,10 @@ public List<String> execute(Jedis connection) {
19351936
}
19361937

19371938
@Override
1938-
public List<String> brpop(double timeout, String key) {
1939-
return new JedisClusterCommand<List<String>>(connectionHandler, maxAttempts) {
1939+
public KeyedListElement brpop(double timeout, String key) {
1940+
return new JedisClusterCommand<KeyedListElement>(connectionHandler, maxAttempts) {
19401941
@Override
1941-
public List<String> execute(Jedis connection) {
1942+
public KeyedListElement execute(Jedis connection) {
19421943
return connection.brpop(timeout, key);
19431944
}
19441945
}.run(key);

0 commit comments

Comments
 (0)