package org.wildfly.swarm.jolokia.access; import java.util.ArrayList; import java.util.List; /** * An allow or deny section. * * @author Bob McWhirter */ public class Section { public static Section allow() { return new Section(Type.allow); } public static Section deny() { return new Section(Type.deny); } private enum Type { allow, deny } private Section(Type type) { this.type = type; } public String type() { return this.type.toString(); } /** * Define a rule for a given MBean. * * @param name The mbean name or pattern. * @param config Configuration. * @return This section. */ public Section mbean(String name, MBeanRule.Consumer config) { MBeanRule rule = new MBeanRule(name); config.accept(rule); this.rules.add(rule); return this; } public List<MBeanRule> mbeans() { return this.rules; } private Type type; private List<MBeanRule> rules = new ArrayList<>(); public interface Consumer extends java.util.function.Consumer<Section> { } }