All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.elasticsearch.common.settings.SettingsFilter Maven / Gradle / Ivy

There is a newer version: 8.14.1
Show newest version
package org.elasticsearch.common.settings;

import org.elasticsearch.common.component.AbstractComponent;
import org.elasticsearch.common.inject.Inject;

import java.util.concurrent.CopyOnWriteArrayList;

/**
 *
 */
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();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy