1
2
3
4
5
6
7
8
9
10 package ch.qos.logback.core.joran.spi;
11
12 import java.util.List;
13
14 import ch.qos.logback.core.joran.event.BodyEvent;
15 import ch.qos.logback.core.joran.event.EndEvent;
16 import ch.qos.logback.core.joran.event.SaxEvent;
17 import ch.qos.logback.core.joran.event.StartEvent;
18
19 public class EventPlayer {
20
21 final Interpreter interpreter;
22 List<SaxEvent> eventList;
23 int currentIndex;
24
25 public EventPlayer(Interpreter interpreter) {
26 this.interpreter = interpreter;
27 }
28
29 public void play(List<SaxEvent> seList) {
30 eventList = seList;
31 SaxEvent se;
32 for(currentIndex = 0; currentIndex < eventList.size(); currentIndex++) {
33 se = eventList.get(currentIndex);
34
35 if(se instanceof StartEvent) {
36 interpreter.startElement((StartEvent) se);
37
38 interpreter.getInterpretationContext().fireInPlay(se);
39 }
40 if(se instanceof BodyEvent) {
41
42 interpreter.getInterpretationContext().fireInPlay(se);
43 interpreter.characters((BodyEvent) se);
44 }
45 if(se instanceof EndEvent) {
46
47 interpreter.getInterpretationContext().fireInPlay(se);
48 interpreter.endElement((EndEvent) se);
49 }
50
51 }
52 }
53
54 public void addEventsDynamically(List<SaxEvent> eventList) {
55 this.eventList.addAll(currentIndex+2, eventList);
56 }
57 }