Skip to content

Instantly share code, notes, and snippets.

@daschl
Last active August 29, 2015 13:56
Show Gist options
  • Save daschl/8934453 to your computer and use it in GitHub Desktop.
Save daschl/8934453 to your computer and use it in GitHub Desktop.
any idea how I can make this nicer?
public Promise<String> load() {
final Deferred<String,Promise<String>> deferred = Promises.defer(env.reactorEnv());
addNode().consume(new Consumer<Boolean>() {
@Override
public void accept(Boolean success) {
if(success) {
addService().consume(new Consumer<Boolean>() {
@Override
public void accept(Boolean success) {
if (success) {
loadRawConfig().onComplete(new Consumer<Promise<String>>() {
@Override
public void accept(Promise<String> stringPromise) {
deferred.accept(stringPromise.get());
}
});
}
}
});
}
}
});
return deferred.compose();
}
private Promise<Configuration> loadConfigForNode(final InetSocketAddress seedNode, final String bucket,
final String password) {
final Deferred<Configuration,Promise<Configuration>> configPromise =
Promises.defer(env.reactorEnv());
Promise<Configuration> binaryConfig = loadConfigOverBinary(seedNode, bucket, password);
binaryConfig.consume(new Consumer<Configuration>() {
@Override
public void accept(Configuration configuration) {
configPromise.accept(configuration);
}
}).when(Exception.class, new Consumer<Exception>() {
@Override
public void accept(Exception e) {
Promise<Configuration> httpConfig = loadConfigOverHttp(seedNode, bucket, password);
httpConfig.consume(new Consumer<Configuration>() {
@Override
public void accept(Configuration configuration) {
configPromise.accept(configuration);
}
}).when(Exception.class, new Consumer<Exception>() {
@Override
public void accept(Exception e) {
configPromise.accept(e);
}
});
}
});
return configPromise.compose();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment