1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package ch.qos.logback.core.joran.implicitAction;
16
17 import ch.qos.logback.core.Context;
18 import ch.qos.logback.core.model.Model;
19 import ch.qos.logback.core.model.processor.ModelHandlerBase;
20 import ch.qos.logback.core.model.processor.ModelHandlerException;
21 import ch.qos.logback.core.model.processor.ModelInterpretationContext;
22
23 public class FruitContextModelHandler extends ModelHandlerBase {
24
25 public FruitContextModelHandler(Context context) {
26 super(context);
27 }
28
29 static public ModelHandlerBase makeInstance(Context context, ModelInterpretationContext ic) {
30 return new FruitContextModelHandler(context);
31 }
32
33 @Override
34 public void handle(ModelInterpretationContext interpretationContext, Model model) throws ModelHandlerException {
35 interpretationContext.pushObject(context);
36 }
37
38 @Override
39 public void postHandle(ModelInterpretationContext ec, Model model) throws ModelHandlerException {
40
41 Object o = ec.peekObject();
42
43 if (o != context) {
44 addWarn("The object [" + o + "] at top of the stack is not the context named [" + context.getName()
45 + "] pushed earlier.");
46 } else {
47 addInfo("Popping context named [" + context.getName() + "] from the object stack");
48 ec.popObject();
49 }
50 }
51
52 }