1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package ch.qos.logback.core.blackbox.joran;
16
17 import ch.qos.logback.core.joran.GenericXMLConfigurator;
18 import ch.qos.logback.core.joran.action.Action;
19 import ch.qos.logback.core.joran.action.ImplicitModelAction;
20 import ch.qos.logback.core.joran.spi.ElementSelector;
21 import ch.qos.logback.core.joran.spi.RuleStore;
22 import ch.qos.logback.core.joran.spi.SaxEventInterpreter;
23
24 import java.util.HashMap;
25 import java.util.function.Supplier;
26
27 public class BlackboxSimpleConfigurator extends GenericXMLConfigurator {
28
29
30 HashMap<ElementSelector, Supplier<Action>> rulesMap;
31
32 public BlackboxSimpleConfigurator(HashMap<ElementSelector, Supplier<Action>> rules) {
33 this.rulesMap = rules;
34 }
35
36 @Override
37 protected void setImplicitRuleSupplier(SaxEventInterpreter interpreter) {
38 interpreter.setImplicitActionSupplier(() -> new ImplicitModelAction());
39 }
40
41 public SaxEventInterpreter getInterpreter() {
42 return saxEventInterpreter;
43 }
44
45 @Override
46 protected void addElementSelectorAndActionAssociations(RuleStore rs) {
47 for (ElementSelector elementSelector : rulesMap.keySet()) {
48 Supplier<Action> actionSupplier = rulesMap.get(elementSelector);
49 rs.addRule(elementSelector, actionSupplier);
50 }
51 }
52 }