rename and renameAsync methods addeded to RObject. #141

pull/100/head
Nikita 10 years ago
parent fd5c610080
commit c54d96fad0

@ -48,6 +48,24 @@ abstract class RedissonObject implements RObject {
public String getName() {
return name;
}
public boolean rename(String newName) {
return connectionManager.get(renameAsync(newName));
}
public Future<Boolean> renameAsync(final String newName) {
return connectionManager.writeAsync(getName(), new AsyncOperation<Object, Boolean>() {
@Override
public void execute(final Promise<Boolean> promise, RedisAsyncConnection<Object, Object> async) {
async.rename(getName(), newName).addListener(new OperationListener<Object, Boolean, String>(promise, async, this) {
@Override
public void onOperationComplete(Future<String> future) throws Exception {
promise.setSuccess("OK".equals(future.get()));
}
});
}
});
}
public boolean delete() {
return connectionManager.get(deleteAsync());
@ -57,10 +75,10 @@ abstract class RedissonObject implements RObject {
return connectionManager.writeAsync(getName(), new AsyncOperation<Object, Boolean>() {
@Override
public void execute(final Promise<Boolean> promise, RedisAsyncConnection<Object, Object> async) {
async.del(getName()).addListener(new OperationListener<Object, Boolean, Object>(promise, async, this) {
async.del(getName()).addListener(new OperationListener<Object, Boolean, Number>(promise, async, this) {
@Override
public void onOperationComplete(Future<Object> future) throws Exception {
promise.setSuccess(((Number) future.get()).byteValue() == 1);
public void onOperationComplete(Future<Number> future) throws Exception {
promise.setSuccess(future.get().byteValue() == 1);
}
});
}

@ -39,4 +39,8 @@ public interface RObject {
Future<Boolean> deleteAsync();
boolean rename(String newName);
Future<Boolean> renameAsync(String newName);
}

@ -10,6 +10,17 @@ import java.util.List;
public class RedissonBucketTest extends BaseTest {
@Test
public void testRename() {
RBucket<String> bucket = redisson.getBucket("test");
bucket.set("someValue");
Assert.assertTrue(bucket.rename("test1"));
RBucket<String> oldBucket = redisson.getBucket("test");
Assert.assertNull(oldBucket.get());
RBucket<String> newBucket = redisson.getBucket("test1");
Assert.assertEquals("someValue", newBucket.get());
}
@Test
public void testSetGet() {
RBucket<String> bucket = redisson.getBucket("test");

Loading…
Cancel
Save