
com.englishtown.vertx.zookeeper.promises.impl.DefaultWhenZooKeeperClient Maven / Gradle / Ivy
The newest version!
package com.englishtown.vertx.zookeeper.promises.impl;
import com.englishtown.promises.Deferred;
import com.englishtown.promises.Promise;
import com.englishtown.promises.When;
import com.englishtown.vertx.zookeeper.ZooKeeperClient;
import com.englishtown.vertx.zookeeper.ZooKeeperOperation;
import com.englishtown.vertx.zookeeper.promises.WhenZooKeeperClient;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.api.CuratorEvent;
import javax.inject.Inject;
/**
* Default implementation of {@link com.englishtown.vertx.zookeeper.promises.WhenZooKeeperClient}
*/
public class DefaultWhenZooKeeperClient implements WhenZooKeeperClient {
private final ZooKeeperClient client;
private final When when;
@Inject
public DefaultWhenZooKeeperClient(ZooKeeperClient client, When when) {
this.client = client;
this.when = when;
}
@Override
public CuratorFramework getCuratorFramework() {
return client.getCuratorFramework();
}
@Override
public Promise execute(ZooKeeperOperation operation) {
Deferred d = when.defer();
client.execute(operation, result -> {
if (result.succeeded()) {
d.resolve(result.result());
} else {
d.reject(result.cause());
}
});
return d.getPromise();
}
@Override
public WhenZooKeeperClient usingNamespace(String namespace) {
return new DefaultWhenZooKeeperClient(client.usingNamespace(namespace), when);
}
@Override
public boolean initialized() {
return client.initialized();
}
@Override
public Promise onReady() {
Deferred d = when.defer();
client.onReady(result -> {
if (result.succeeded()) {
d.resolve((Void) null);
} else {
d.reject(result.cause());
}
});
return d.getPromise();
}
@Override
public void close() {
client.close();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy