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