1 package ch.qos.logback.core.blackbox.model.processor; 2 3 import java.util.Stack; 4 5 import ch.qos.logback.core.Context; 6 import ch.qos.logback.core.ContextBase; 7 import ch.qos.logback.core.blackbox.model.BlackboxStackModel; 8 import ch.qos.logback.core.model.Model; 9 import ch.qos.logback.core.model.processor.ModelHandlerBase; 10 import ch.qos.logback.core.model.processor.ModelHandlerException; 11 import ch.qos.logback.core.model.processor.ModelInterpretationContext; 12 13 public class BlackboxStackModelHandler extends ModelHandlerBase { 14 15 static public final String STACK_TEST = "STACK_TEST"; 16 17 public BlackboxStackModelHandler(Context context) { 18 super(context); 19 } 20 21 static public BlackboxStackModelHandler makeInstance(Context context, ModelInterpretationContext ic) { 22 return new BlackboxStackModelHandler(context); 23 } 24 25 @Override 26 protected Class<BlackboxStackModel> getSupportedModelClass() { 27 return BlackboxStackModel.class; 28 } 29 30 @Override 31 public void handle(ModelInterpretationContext mic, Model model) throws ModelHandlerException { 32 33 BlackboxStackModel stackModel = (BlackboxStackModel) model; 34 35 String name = stackModel.getName(); 36 37 ContextBase contextBase = (ContextBase) context; 38 39 @SuppressWarnings("unchecked") 40 Stack<String> aStack = (Stack) context.getObject(STACK_TEST); 41 if(aStack == null) { 42 aStack = new Stack<>(); 43 contextBase.putObject(STACK_TEST, aStack); 44 } 45 aStack.push(name); 46 } 47 48 @Override 49 public void postHandle(ModelInterpretationContext intercon, Model model) throws ModelHandlerException { 50 } 51 52 }