package io.searchbox.core;
import com.google.common.collect.ImmutableMap;
import io.searchbox.action.GenericResultAbstractAction;
import java.util.Collection;
import java.util.LinkedHashSet;
import java.util.Set;
public class ClearScroll extends GenericResultAbstractAction {
private final String uri;
public ClearScroll(Builder builder) {
if (builder.getScrollIds().size() == 0) {
uri = "/_search/scroll/_all";
this.payload = null;
} else {
uri = "/_search/scroll";
this.payload = ImmutableMap.of("scroll_id", builder.getScrollIds());
}
setURI(buildURI());
}
@Override
public String getRestMethodName() {
return "DELETE";
}
@Override
protected String buildURI() {
return super.buildURI() + uri;
}
public static class Builder extends GenericResultAbstractAction.Builder<ClearScroll, Builder> {
protected Collection<String> scrollIds = new LinkedHashSet<String>();
public Builder addScrollId(String scrollId) {
this.scrollIds.add(scrollId);
return this;
}
public Builder addScrollIds(Set<String> scrollIds) {
this.scrollIds.addAll(scrollIds);
return this;
}
@Override
public ClearScroll build() {
return new ClearScroll(this);
}
public Collection<String> getScrollIds() {
return scrollIds;
}
}
}