Skip to content

Commit 3ad03e6

Browse files
committed
Add/modify Keyed... response objects
1 parent d4a798f commit 3ad03e6

20 files changed

+236
-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;
@@ -1826,20 +1826,20 @@ public List<byte[]> execute(Jedis connection) {
18261826
}
18271827

18281828
@Override
1829-
public KeyedTuple bzpopmax(double timeout, byte[]... keys) {
1830-
return new JedisClusterCommand<KeyedTuple>(connectionHandler, maxAttempts) {
1829+
public List<byte[]> bzpopmax(double timeout, byte[]... keys) {
1830+
return new JedisClusterCommand<List<byte[]>>(connectionHandler, maxAttempts) {
18311831
@Override
1832-
public KeyedTuple execute(Jedis connection) {
1832+
public List<byte[]> execute(Jedis connection) {
18331833
return connection.bzpopmax(timeout, keys);
18341834
}
18351835
}.runBinary(keys.length, keys);
18361836
}
18371837

18381838
@Override
1839-
public KeyedTuple bzpopmin(double timeout, byte[]... keys) {
1840-
return new JedisClusterCommand<KeyedTuple>(connectionHandler, maxAttempts) {
1839+
public List<byte[]> bzpopmin(double timeout, byte[]... keys) {
1840+
return new JedisClusterCommand<List<byte[]>>(connectionHandler, maxAttempts) {
18411841
@Override
1842-
public KeyedTuple execute(Jedis connection) {
1842+
public List<byte[]> execute(Jedis connection) {
18431843
return connection.bzpopmin(timeout, keys);
18441844
}
18451845
}.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

@@ -1843,10 +1844,10 @@ public List<String> execute(Jedis connection) {
18431844
}
18441845

18451846
@Override
1846-
public List<String> blpop(final double timeout, final String... keys) {
1847-
return new JedisClusterCommand<List<String>>(connectionHandler, maxAttempts) {
1847+
public KeyedListElement blpop(final double timeout, final String... keys) {
1848+
return new JedisClusterCommand<KeyedListElement>(connectionHandler, maxAttempts) {
18481849
@Override
1849-
public List<String> execute(Jedis connection) {
1850+
public KeyedListElement execute(Jedis connection) {
18501851
return connection.blpop(timeout, keys);
18511852
}
18521853
}.run(keys.length, keys);
@@ -1864,30 +1865,30 @@ public List<String> execute(Jedis connection) {
18641865
}
18651866

18661867
@Override
1867-
public List<String> brpop(final double timeout, final String... keys) {
1868-
return new JedisClusterCommand<List<String>>(connectionHandler, maxAttempts) {
1868+
public KeyedListElement brpop(final double timeout, final String... keys) {
1869+
return new JedisClusterCommand<KeyedListElement>(connectionHandler, maxAttempts) {
18691870
@Override
1870-
public List<String> execute(Jedis connection) {
1871+
public KeyedListElement execute(Jedis connection) {
18711872
return connection.brpop(timeout, keys);
18721873
}
18731874
}.run(keys.length, keys);
18741875
}
18751876

18761877
@Override
1877-
public KeyedTuple bzpopmax(double timeout, String... keys) {
1878-
return new JedisClusterCommand<KeyedTuple>(connectionHandler, maxAttempts) {
1878+
public KeyedZSetElement bzpopmax(double timeout, String... keys) {
1879+
return new JedisClusterCommand<KeyedZSetElement>(connectionHandler, maxAttempts) {
18791880
@Override
1880-
public KeyedTuple execute(Jedis connection) {
1881+
public KeyedZSetElement execute(Jedis connection) {
18811882
return connection.bzpopmax(timeout, keys);
18821883
}
18831884
}.run(keys.length, keys);
18841885
}
18851886

18861887
@Override
1887-
public KeyedTuple bzpopmin(double timeout, String... keys) {
1888-
return new JedisClusterCommand<KeyedTuple>(connectionHandler, maxAttempts) {
1888+
public KeyedZSetElement bzpopmin(double timeout, String... keys) {
1889+
return new JedisClusterCommand<KeyedZSetElement>(connectionHandler, maxAttempts) {
18891890
@Override
1890-
public KeyedTuple execute(Jedis connection) {
1891+
public KeyedZSetElement execute(Jedis connection) {
18911892
return connection.bzpopmin(timeout, keys);
18921893
}
18931894
}.run(keys.length, keys);
@@ -1904,10 +1905,10 @@ public List<String> execute(Jedis connection) {
19041905
}
19051906

19061907
@Override
1907-
public List<String> blpop(double timeout, String key) {
1908-
return new JedisClusterCommand<List<String>>(connectionHandler, maxAttempts) {
1908+
public KeyedListElement blpop(double timeout, String key) {
1909+
return new JedisClusterCommand<KeyedListElement>(connectionHandler, maxAttempts) {
19091910
@Override
1910-
public List<String> execute(Jedis connection) {
1911+
public KeyedListElement execute(Jedis connection) {
19111912
return connection.blpop(timeout, key);
19121913
}
19131914
}.run(key);
@@ -1924,10 +1925,10 @@ public List<String> execute(Jedis connection) {
19241925
}
19251926

19261927
@Override
1927-
public List<String> brpop(double timeout, String key) {
1928-
return new JedisClusterCommand<List<String>>(connectionHandler, maxAttempts) {
1928+
public KeyedListElement brpop(double timeout, String key) {
1929+
return new JedisClusterCommand<KeyedListElement>(connectionHandler, maxAttempts) {
19291930
@Override
1930-
public List<String> execute(Jedis connection) {
1931+
public KeyedListElement execute(Jedis connection) {
19311932
return connection.brpop(timeout, key);
19321933
}
19331934
}.run(key);

0 commit comments

Comments
 (0)