1
2
3
4
5
6
7
8
9
10
11
12
13
14 package ch.qos.logback.core.sift;
15
16 import java.util.ArrayList;
17 import java.util.List;
18
19 import ch.qos.logback.core.Appender;
20 import ch.qos.logback.core.Context;
21 import ch.qos.logback.core.joran.event.SaxEvent;
22 import ch.qos.logback.core.joran.spi.JoranException;
23
24 public abstract class AppenderFactoryBase<E> {
25
26 final List<SaxEvent> eventList;
27
28 protected AppenderFactoryBase(List<SaxEvent> eventList) {
29 this.eventList = new ArrayList<SaxEvent>(eventList);
30 removeSiftElement();
31 }
32
33 void removeSiftElement() {
34 eventList.remove(0);
35 eventList.remove(eventList.size() - 1);
36 }
37
38 public abstract SiftingJoranConfiguratorBase<E> getSiftingJoranConfigurator(String k);
39
40 Appender<E> buildAppender(Context context, String discriminatingValue) throws JoranException {
41 SiftingJoranConfiguratorBase<E> sjc = getSiftingJoranConfigurator(discriminatingValue);
42 sjc.setContext(context);
43 sjc.doConfigure(eventList);
44 return sjc.getAppender();
45 }
46
47 public List<SaxEvent> getEventList() {
48 return eventList;
49 }
50
51 }