1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package ch.qos.logback.core.model.processor;
16
17 import ch.qos.logback.core.Context;
18 import ch.qos.logback.core.CoreConstants;
19 import ch.qos.logback.core.model.ImportModel;
20 import ch.qos.logback.core.model.Model;
21 import ch.qos.logback.core.util.OptionHelper;
22
23 public class ImportModelHandler extends ModelHandlerBase {
24
25 public ImportModelHandler(Context context) {
26 super(context);
27 }
28
29 static public ModelHandlerBase makeInstance(Context context, ModelInterpretationContext ic) {
30 return new ImportModelHandler(context);
31 }
32
33 @Override
34 protected Class<ImportModel> getSupportedModelClass() {
35 return ImportModel.class;
36 }
37
38 @Override
39 public void handle(ModelInterpretationContext intercon, Model model) throws ModelHandlerException {
40 ImportModel importModel = (ImportModel) model;
41
42 String className = importModel.getClassName();
43 if (OptionHelper.isNullOrEmptyOrAllSpaces(className)) {
44 addWarn("Empty className not allowed");
45 return;
46 }
47
48 String stem = extractStem(className);
49 if (stem == null) {
50 addWarn("[" + className + "] could not be imported due to incorrect format");
51 return;
52 }
53
54 intercon.addImport(stem, className);
55
56 }
57
58 String extractStem(String className) {
59 if (className == null)
60 return null;
61
62 int lastDotIndex = className.lastIndexOf(CoreConstants.DOT);
63 if (lastDotIndex == -1)
64 return null;
65 if ((lastDotIndex + 1) == className.length())
66 return null;
67 return className.substring(lastDotIndex + 1);
68 }
69
70 }