diff --git a/pom.xml b/pom.xml index 80fe26f..e55a4a5 100644 --- a/pom.xml +++ b/pom.xml @@ -12,4 +12,17 @@ compile - \ No newline at end of file + + + + org.apache.maven.plugins + maven-compiler-plugin + 2.0.2 + + 1.6 + 1.6 + + + + + diff --git a/src/main/java/redis/clients/jedis/Client.java b/src/main/java/redis/clients/jedis/Client.java index a20eecb..a01b2d4 100644 --- a/src/main/java/redis/clients/jedis/Client.java +++ b/src/main/java/redis/clients/jedis/Client.java @@ -340,8 +340,8 @@ public class Client extends Connection { } public void zrevrange(String key, int start, int end) throws JedisException { - sendCommand("ZREVRANGE", key, String.valueOf(start), String - .valueOf(end)); + sendCommand("ZREVRANGE", key, String.valueOf(start), + String.valueOf(end)); } public void zrangeWithScores(String key, int start, int end) @@ -352,8 +352,8 @@ public class Client extends Connection { public void zrevrangeWithScores(String key, int start, int end) throws JedisException { - sendCommand("ZREVRANGE", key, String.valueOf(start), String - .valueOf(end), "WITHSCORES"); + sendCommand("ZREVRANGE", key, String.valueOf(start), + String.valueOf(end), "WITHSCORES"); } public void zcard(String key) throws JedisException { @@ -383,4 +383,13 @@ public class Client extends Connection { public void unwatch() throws JedisException { sendCommand("UNWATCH"); } -} \ No newline at end of file + + public void sort(String key) throws JedisException { + sendCommand("SORT", key); + } + + public void sort(String key, SortingParams sortingParameters) + throws JedisException { + sendCommand("SORT", sortingParameters.getParams()); + } +} diff --git a/src/main/java/redis/clients/jedis/Jedis.java b/src/main/java/redis/clients/jedis/Jedis.java index 784dd5d..2ca7c41 100644 --- a/src/main/java/redis/clients/jedis/Jedis.java +++ b/src/main/java/redis/clients/jedis/Jedis.java @@ -428,9 +428,7 @@ public class Jedis { Set set = new LinkedHashSet(); Iterator iterator = membersWithScores.iterator(); while (iterator.hasNext()) { - set - .add(new Tuple(iterator.next(), Double.valueOf(iterator - .next()))); + set.add(new Tuple(iterator.next(), Double.valueOf(iterator.next()))); } return set; } @@ -442,9 +440,7 @@ public class Jedis { Set set = new LinkedHashSet(); Iterator iterator = membersWithScores.iterator(); while (iterator.hasNext()) { - set - .add(new Tuple(iterator.next(), Double.valueOf(iterator - .next()))); + set.add(new Tuple(iterator.next(), Double.valueOf(iterator.next()))); } return set; } @@ -496,4 +492,15 @@ public class Jedis { return client.getStatusCodeReply(); } + public List sort(String key) throws JedisException { + client.sort(key); + return client.getMultiBulkReply(); + } + + public List sort(String key, SortingParams sortingParameters) + throws JedisException { + client.sort(key, sortingParameters); + return client.getMultiBulkReply(); + } + } diff --git a/src/test/java/redis/clients/jedis/SortingParams.java b/src/test/java/redis/clients/jedis/SortingParams.java new file mode 100644 index 0000000..96135a9 --- /dev/null +++ b/src/test/java/redis/clients/jedis/SortingParams.java @@ -0,0 +1,20 @@ +package redis.clients.jedis; + +import java.util.ArrayList; +import java.util.List; + +public class SortingParams { + private String pattern = null; + private List params = new ArrayList(); + + public SortingParams by(String pattern) { + this.pattern = pattern; + params.add("BY"); + params.add(pattern); + return this; + } + + public String[] getParams() { + return params.toArray(new String[params.size()]); + } +} diff --git a/src/test/java/redis/clients/jedis/tests/commands/SortingCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/SortingCommandsTest.java new file mode 100644 index 0000000..251d2f6 --- /dev/null +++ b/src/test/java/redis/clients/jedis/tests/commands/SortingCommandsTest.java @@ -0,0 +1,65 @@ +package redis.clients.jedis.tests.commands; + +import java.util.ArrayList; +import java.util.List; + +import junit.framework.Assert; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import redis.clients.jedis.Jedis; +import redis.clients.jedis.JedisException; +import redis.clients.jedis.SortingParams; + +public class SortingCommandsTest extends Assert { + private Jedis jedis; + + @Before + public void setUp() throws Exception { + jedis = new Jedis("localhost"); + jedis.connect(); + } + + @After + public void tearDown() throws Exception { + jedis.flushDB(); + jedis.disconnect(); + } + + @Test + public void sort() throws JedisException { + jedis.lpush("foo", "3"); + jedis.lpush("foo", "2"); + jedis.lpush("foo", "1"); + + List result = jedis.sort("foo"); + + List expected = new ArrayList(); + expected.add("1"); + expected.add("2"); + expected.add("3"); + + assertEquals(expected, result); + } + + @Test + public void sortBy() throws JedisException { + jedis.lpush("foo", "3"); + jedis.lpush("foo", "2"); + jedis.lpush("foo", "1"); + + SortingParams sp = new SortingParams(); + sp.by("bar_*"); + + List result = jedis.sort("foo", sp); + + List expected = new ArrayList(); + expected.add("foo_1"); + expected.add("foo_2"); + expected.add("foo_3"); + + assertEquals(expected, result); + } +} \ No newline at end of file