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