1 package fr.inrae.agroclim.indicators.exception.type;
2
3 import java.util.StringJoiner;
4
5 import fr.inrae.agroclim.indicators.exception.ErrorType;
6
7
8
9
10
11
12 public interface CommonErrorType extends ErrorType {
13
14
15
16 private String getShortKey() {
17 return getName().toLowerCase().replace("_", ".");
18 }
19
20
21
22
23 CommonErrorType getParent();
24
25
26
27
28 String name();
29
30
31
32
33 @Override
34 default String getI18nKey() {
35 final String cat = getCategory().getName().toLowerCase();
36 final StringJoiner sj = new StringJoiner(".", "error.", "");
37 if (!getShortKey().startsWith(cat)) {
38 sj.add(cat);
39 }
40 if (getParent() != null && !getShortKey().startsWith(getParent().getShortKey())) {
41 sj.add(getParent().getShortKey());
42 }
43 sj.add(getShortKey());
44 return sj.toString();
45 }
46
47 @Override
48 default String getName() {
49 return name();
50 }
51 }