package io.searchbox.indices.aliases;
import com.google.common.collect.ImmutableMap;
import io.searchbox.action.GenericResultAbstractAction;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
/**
* @author cihat keser
*/
public class ModifyAliases extends GenericResultAbstractAction {
protected ModifyAliases(Builder builder) {
super(builder);
List<Map> actions = new LinkedList<Map>();
for (AliasMapping aliasMapping : builder.actions) {
actions.addAll(aliasMapping.getData());
}
this.payload = ImmutableMap.<String, Object>of("actions", actions);
setURI(buildURI());
}
@Override
protected String buildURI() {
return super.buildURI() + "/_aliases";
}
@Override
public String getRestMethodName() {
return "POST";
}
public static class Builder extends GenericResultAbstractAction.Builder<ModifyAliases, Builder> {
private List<AliasMapping> actions = new LinkedList<AliasMapping>();
public Builder(AliasMapping action) {
actions.add(action);
}
public Builder(Collection<AliasMapping> actions) {
this.actions.addAll(actions);
}
public Builder addAlias(AliasMapping action) {
actions.add(action);
return this;
}
public Builder addAlias(Collection<AliasMapping> actions) {
this.actions.addAll(actions);
return this;
}
public ModifyAliases build() {
return new ModifyAliases(this);
}
}
}