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.RuleStore;
23  import ch.qos.logback.core.joran.spi.SaxEventInterpreter;
24  
25  public class SimpleConfigurator extends GenericXMLConfigurator {
26  
27      HashMap<ElementSelector, Supplier<Action>> rulesMap;
28  
29      public SimpleConfigurator(HashMap<ElementSelector, Supplier<Action>> rules) {
30          this.rulesMap = rules;
31      }
32  
33      @Override
34      protected void setImplicitRuleSupplier(SaxEventInterpreter interpreter) {
35          interpreter.setImplicitActionSupplier(() -> new ImplicitModelAction());
36      }
37  
38      public SaxEventInterpreter getInterpreter() {
39          return saxEventInterpreter;
40      }
41  
42      @Override
43      protected void addElementSelectorAndActionAssociations(RuleStore rs) {
44          for (ElementSelector elementSelector : rulesMap.keySet()) {
45              Supplier<Action> actionSupplier = rulesMap.get(elementSelector);
46              rs.addRule(elementSelector, actionSupplier);
47          }
48      }
49  }