View Javadoc
1   /**
2    * Logback: the reliable, generic, fast and flexible logging framework.
3    * Copyright (C) 1999-2015, QOS.ch. All rights reserved.
4    *
5    * This program and the accompanying materials are dual-licensed under
6    * either the terms of the Eclipse Public License v1.0 as published by
7    * the Eclipse Foundation
8    *
9    *   or (per the licensee's choosing)
10   *
11   * under the terms of the GNU Lesser General Public License version 2.1
12   * as published by the Free Software Foundation.
13   */
14  package ch.qos.logback.core.joran.spi;
15  
16  import java.util.List;
17  
18  import ch.qos.logback.core.joran.action.Action;
19  
20  /**
21   * 
22   * As its name indicates, a RuleStore contains 2-tuples consists of a ElementSelector
23   * and an Action.
24   * 
25   * <p>As a joran configurator goes through the elements in a document, it asks
26   * the rule store whether there are rules matching the current pattern by
27   * invoking the {@link #matchActions(ElementPath)} method.
28   * 
29   * @author Ceki G&uuml;lc&uuml;
30   * 
31   */
32  public interface RuleStore {
33  
34      /**
35       * Add a new rule, given by a pattern and a action class (String).
36       *
37       * @param elementSelector
38       * @param actionClassStr
39       * @throws ClassNotFoundException
40       */
41      void addRule(ElementSelector elementSelector, String actionClassStr) throws ClassNotFoundException;
42  
43      /**
44       * Add a new rule, given by a pattern and an action instance.
45       *
46       * @param elementSelector
47       * @param action
48       */
49      void addRule(ElementSelector elementSelector, Action action);
50  
51      /**
52       * Return a list of actions matching a pattern.
53       *
54       * @param elementPath the path to match for
55       * @return list of matching actions
56       */
57      List<Action> matchActions(ElementPath elementPath);
58  }