org.elasticsearch.common.settings.SettingsFilter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of elasticsearch Show documentation
Show all versions of elasticsearch Show documentation
Elasticsearch subproject :server
package org.elasticsearch.common.settings;
import org.elasticsearch.common.component.AbstractComponent;
import org.elasticsearch.common.inject.Inject;
import java.util.concurrent.CopyOnWriteArrayList;
/**
* @author kimchy (shay.banon)
*/
public class SettingsFilter extends AbstractComponent {
public static interface Filter {
void filter(ImmutableSettings.Builder settings);
}
private final CopyOnWriteArrayList filters = new CopyOnWriteArrayList();
@Inject public SettingsFilter(Settings settings) {
super(settings);
}
public void addFilter(Filter filter) {
filters.add(filter);
}
public void removeFilter(Filter filter) {
filters.remove(filter);
}
public Settings filterSettings(Settings settings) {
ImmutableSettings.Builder builder = ImmutableSettings.settingsBuilder().put(settings);
for (Filter filter : filters) {
filter.filter(builder);
}
return builder.build();
}
}