1
2
3
4
5
6
7
8
9
10
11
12
13
14 package ch.qos.logback.core.model.processor;
15
16 import ch.qos.logback.core.Context;
17 import ch.qos.logback.core.model.AppenderRefModel;
18 import ch.qos.logback.core.model.Model;
19
20 @PhaseIndicator(phase = ProcessingPhase.DEPENDENCY_ANALYSIS)
21 public class AppenderRefDependencyAnalyser extends ModelHandlerBase {
22
23 public AppenderRefDependencyAnalyser(Context context) {
24 super(context);
25 }
26
27 @Override
28 protected Class<AppenderRefModel> getSupportedModelClass() {
29 return AppenderRefModel.class;
30 }
31
32 @Override
33 public void handle(ModelInterpretationContext mic, Model model) throws ModelHandlerException {
34
35 AppenderRefModel appenderRefModel = (AppenderRefModel) model;
36
37 String ref = mic.subst(appenderRefModel.getRef());
38
39 Model depender;
40 if (mic.isModelStackEmpty()) {
41
42 depender = appenderRefModel;
43 } else {
44 Model parentModel = mic.peekModel();
45 depender = parentModel;
46 }
47
48 DependencyDefinition dd = new DependencyDefinition(depender, ref);
49 mic.addDependencyDefinition(dd);
50
51 }
52
53 }