1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package ch.qos.cal10n.verifier;
23
24 import java.util.Locale;
25
26
27
28
29
30
31
32
33 public class Cal10nError {
34
35 enum ErrorType {
36
37
38 MISSING_RBN_ANNOTATION, FAILED_TO_FIND_RB, EMPTY_RB, EMPTY_ENUM, ABSENT_IN_RB, ABSENT_IN_ENUM;
39 }
40
41 final ErrorType errorType;
42 final String code;
43 final Locale locale;
44 final Class<?> enumClass;
45 final String enumClassName;
46 final String resouceBundleName;
47
48 Cal10nError(ErrorType errorType, String code, Class<?> enumClass,
49 Locale locale, String resourceBundleName) {
50 this.errorType = errorType;
51 this.code = code;
52 this.enumClass = enumClass;
53 this.enumClassName = enumClass.getName();
54 this.locale = locale;
55 this.resouceBundleName = resourceBundleName;
56 }
57
58 public ErrorType getErrorType() {
59 return errorType;
60 }
61
62 public String getCode() {
63 return code;
64 }
65
66 public Locale getLocale() {
67 return locale;
68 }
69
70 public Class<?> getEnumClass() {
71 return enumClass;
72 }
73
74 @Override
75 public String toString() {
76 switch (errorType) {
77 case MISSING_RBN_ANNOTATION:
78 return "Missing @ResourceBundleName annotation in enum type ["
79 + enumClassName + "]";
80
81
82
83
84 case FAILED_TO_FIND_RB:
85 return "Failed to locate resource bundle [" + resouceBundleName
86 + "]for locale [" + locale + "] for enum type [" + enumClassName
87 + "]";
88 case EMPTY_RB:
89 return "Empty resource bundle named [" + resouceBundleName
90 + "] for locale [" + locale + "]";
91 case EMPTY_ENUM:
92 return "Empty enum type [" + enumClassName + "]";
93 case ABSENT_IN_ENUM:
94 return "Code [" + code + "] present in resource bundle named ["
95 + resouceBundleName + "] for locale [" + locale
96 + "] but absent in enum type [" + enumClassName + "]";
97 case ABSENT_IN_RB:
98 return "Code [" + code + "] present in enum type [" + enumClassName
99 + "] but absent in resource bundle named [" + resouceBundleName
100 + "] for locale [" + locale + "]";
101 default:
102 throw new IllegalStateException("Impossible to reach here");
103 }
104 }
105 }