RSortedSet.readAll added. #701

pull/709/head
Nikita 8 years ago
parent c378299009
commit d1ae9cf3b7

@ -26,6 +26,7 @@ import java.util.Collection;
import java.util.Comparator;
import java.util.Iterator;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.SortedSet;
import org.redisson.api.RBucket;
@ -162,6 +163,16 @@ public class RedissonSortedSet<V> extends RedissonObject implements RSortedSet<V
}
}
@Override
public Set<V> readAll() {
return get(readAllAsync());
}
@Override
public RFuture<Set<V>> readAllAsync() {
return commandExecutor.readAsync(getName(), codec, RedisCommands.LRANGE_SET, getName(), 0, -1);
}
@Override
public int size() {
return list.size();
@ -316,7 +327,7 @@ public class RedissonSortedSet<V> extends RedissonObject implements RSortedSet<V
@Override
public boolean retainAll(Collection<?> c) {
boolean changed = false;
for (Iterator iterator = iterator(); iterator.hasNext();) {
for (Iterator<?> iterator = iterator(); iterator.hasNext();) {
Object object = (Object) iterator.next();
if (!c.contains(object)) {
iterator.remove();

@ -16,10 +16,15 @@
package org.redisson.api;
import java.util.Comparator;
import java.util.Set;
import java.util.SortedSet;
public interface RSortedSet<V> extends SortedSet<V>, RObject {
Set<V> readAll();
RFuture<Set<V>> readAllAsync();
RFuture<Boolean> addAsync(V value);
RFuture<Boolean> removeAsync(V value);

@ -188,6 +188,7 @@ public interface RedisCommands {
RedisCommand<Boolean> LPUSH_BOOLEAN = new RedisCommand<Boolean>("LPUSH", new TrueReplayConvertor(), 2, ValueType.OBJECTS);
RedisStrictCommand<Void> LPUSH_VOID = new RedisStrictCommand<Void>("LPUSH", new VoidReplayConvertor(), 2);
RedisCommand<List<Object>> LRANGE = new RedisCommand<List<Object>>("LRANGE", new ObjectListReplayDecoder<Object>());
RedisCommand<Set<Object>> LRANGE_SET = new RedisCommand<Set<Object>>("LRANGE", new ObjectSetReplayDecoder<Object>());
RedisCommand<Long> RPUSH = new RedisCommand<Long>("RPUSH", 2, ValueType.OBJECTS);
RedisCommand<Boolean> RPUSH_BOOLEAN = new RedisCommand<Boolean>("RPUSH", new TrueReplayConvertor(), 2, ValueType.OBJECTS);
RedisCommand<Void> RPUSH_VOID = new RedisCommand<Void>("RPUSH", new VoidReplayConvertor(), 2, ValueType.OBJECTS);

@ -15,7 +15,6 @@
*/
package org.redisson.client.protocol.decoder;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
@ -24,6 +23,12 @@ import org.redisson.client.handler.State;
import io.netty.buffer.ByteBuf;
/**
*
* @author Nikita Koksharov
*
* @param <T> value type
*/
public class ObjectSetReplayDecoder<T> implements MultiDecoder<Set<T>> {
@Override

@ -17,6 +17,17 @@ import org.redisson.api.RSortedSet;
public class RedissonSortedSetTest extends BaseTest {
@Test
public void testReadAll() {
RSortedSet<Integer> set = redisson.getSortedSet("simple");
set.add(2);
set.add(0);
set.add(1);
set.add(5);
assertThat(set.readAll()).containsExactly(0, 1, 2, 5);
}
@Test
public void testAddAsync() throws InterruptedException, ExecutionException {
RSortedSet<Integer> set = redisson.getSortedSet("simple");

Loading…
Cancel
Save