From 6ab48d3c7c649ff190723851bc246a212c76edd5 Mon Sep 17 00:00:00 2001 From: Costin Leau Date: Mon, 8 Nov 2010 20:19:29 +0200 Subject: [PATCH] + add Queue support for the the redis list --- .../redis/util/DefaultRedisList.java | 43 ++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/spring-datastore-redis/src/main/java/org/springframework/datastore/redis/util/DefaultRedisList.java b/spring-datastore-redis/src/main/java/org/springframework/datastore/redis/util/DefaultRedisList.java index 45105d6f8..c18761033 100644 --- a/spring-datastore-redis/src/main/java/org/springframework/datastore/redis/util/DefaultRedisList.java +++ b/spring-datastore-redis/src/main/java/org/springframework/datastore/redis/util/DefaultRedisList.java @@ -19,6 +19,8 @@ import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.ListIterator; +import java.util.NoSuchElementException; +import java.util.Queue; import org.springframework.datastore.redis.connection.RedisCommands; @@ -27,7 +29,7 @@ import org.springframework.datastore.redis.connection.RedisCommands; * * @author Costin Leau */ -public class DefaultRedisList extends AbstractRedisCollection implements RedisList { +public class DefaultRedisList extends AbstractRedisCollection implements RedisList, Queue { public DefaultRedisList(String key, RedisCommands commands) { super(key, commands); @@ -144,4 +146,43 @@ public class DefaultRedisList extends AbstractRedisCollection implements RedisLi public List subList(int fromIndex, int toIndex) { throw new UnsupportedOperationException(); } + + + @Override + public String element() { + String value = peek(); + if (value == null) + throw new NoSuchElementException(); + + return value; + } + + + @Override + public boolean offer(String e) { + commands.lPush(key, e); + return true; + } + + + @Override + public String peek() { + return commands.lIndex(key, 0); + } + + + @Override + public String poll() { + return commands.lPop(key); + } + + + @Override + public String remove() { + String value = poll(); + if (value == null) + throw new NoSuchElementException(); + + return value; + } } \ No newline at end of file