package com.lordofthejars.nosqlunit.elasticsearch2;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import java.net.InetSocketAddress;
public class RemoteElasticsearchConfigurationBuilder {
private ElasticsearchConfiguration elasticsearchConfiguration = new ElasticsearchConfiguration();
private RemoteElasticsearchConfigurationBuilder() {
super();
}
public static RemoteElasticsearchConfigurationBuilder remoteElasticsearch() {
return new RemoteElasticsearchConfigurationBuilder();
}
public RemoteElasticsearchConfigurationBuilder port(int port) {
this.elasticsearchConfiguration.setPort(port);
return this;
}
public RemoteElasticsearchConfigurationBuilder host(String host) {
this.elasticsearchConfiguration.setHost(host);
return this;
}
public RemoteElasticsearchConfigurationBuilder settings(Settings settings) {
this.elasticsearchConfiguration.setSettings(settings);
return this;
}
public RemoteElasticsearchConfigurationBuilder connectionIdentifier(String connectionIdentifier) {
this.elasticsearchConfiguration.setConnectionIdentifier(connectionIdentifier);
return this;
}
public ElasticsearchConfiguration build() {
final InetSocketAddress address = new InetSocketAddress(this.elasticsearchConfiguration.getHost(), this.elasticsearchConfiguration.getPort());
final TransportClient client = getClient().addTransportAddress(new InetSocketTransportAddress(address));
this.elasticsearchConfiguration.setClient(client);
return this.elasticsearchConfiguration;
}
private TransportClient getClient() {
if (this.elasticsearchConfiguration.getSettings() == null) {
return TransportClient.builder().build();
} else {
return TransportClient.builder().settings(this.elasticsearchConfiguration.getSettings()).build();
}
}
}