1
2
3
4
5
6
7
8
9
10
11
12
13
14 package ch.qos.logback.classic.model.processor;
15
16 import java.util.List;
17 import java.util.Map;
18
19 import ch.qos.logback.classic.model.ConfigurationModel;
20 import ch.qos.logback.core.Context;
21 import ch.qos.logback.core.model.Model;
22 import ch.qos.logback.core.model.processor.ModelHandlerBase;
23 import ch.qos.logback.core.model.processor.ModelHandlerException;
24 import ch.qos.logback.core.model.processor.ModelInterpretationContext;
25 import ch.qos.logback.core.model.processor.PhaseIndicator;
26 import ch.qos.logback.core.model.processor.ProcessingPhase;
27 import ch.qos.logback.core.status.Status;
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 @PhaseIndicator(phase = ProcessingPhase.DEPENDENCY_ANALYSIS)
50 public class CallerContradictionWarnAnalyser extends ModelHandlerBase {
51
52 public CallerContradictionWarnAnalyser(Context context) {
53 super(context);
54 }
55
56 @Override
57 protected Class<ConfigurationModel> getSupportedModelClass() {
58 return ConfigurationModel.class;
59 }
60
61 @Override
62 public void handle(ModelInterpretationContext mic, Model model) throws ModelHandlerException {
63
64 }
65
66 @Override
67 public void postHandle(ModelInterpretationContext mic, Model model) throws ModelHandlerException {
68 if (CallerContradictionAnalyser.isSkipCallerContradictionAnalysis(mic)) {
69 return;
70 }
71
72 Map<String, CallerInstructionLogic.Instruction> appenderNameToCallerInstructionMap =
73 CallerContradictionAnalyser.getAppenderNameToCallerInstructionMap(mic);
74
75 CallerInstructionLogic callerInstructionLogic = new CallerInstructionLogic();
76
77 List<Status> messages = callerInstructionLogic.contradiction(appenderNameToCallerInstructionMap);
78
79 messages.forEach(message -> addStatus(message));
80 }
81 }