1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.mycore.datamodel.language;
20
21 import java.util.HashMap;
22 import java.util.Locale;
23 import java.util.Map;
24
25
26
27
28
29
30 public class MCRLanguage {
31
32
33
34
35 private Map<MCRLanguageCodeType, String> codesByType = new HashMap<>();
36
37
38
39
40 private Map<MCRLanguage, String> labelsByLanguage = new HashMap<>();
41
42 private Locale locale;
43
44
45
46
47
48
49 MCRLanguage() {
50 }
51
52
53
54
55 void setCode(MCRLanguageCodeType type, String code) {
56 codesByType.put(type, code);
57 }
58
59
60
61
62 public String getCode(MCRLanguageCodeType type) {
63 return codesByType.get(type);
64 }
65
66
67
68
69 public Map<MCRLanguageCodeType, String> getCodes() {
70 return codesByType;
71 }
72
73
74
75
76 void setLabel(MCRLanguage language, String label) {
77 labelsByLanguage.put(language, label);
78 }
79
80
81
82
83 public String getLabel(MCRLanguage language) {
84 return labelsByLanguage.get(language);
85 }
86
87
88
89
90 public String getLabel(String languageCode) {
91 MCRLanguage language = MCRLanguageFactory.instance().getLanguage(languageCode);
92 return labelsByLanguage.get(language);
93 }
94
95
96
97
98 public Map<MCRLanguage, String> getLabels() {
99 return labelsByLanguage;
100 }
101
102 @Override
103 public boolean equals(Object obj) {
104 if (obj instanceof MCRLanguage) {
105 return this.toString().equals(obj.toString());
106 } else {
107 return false;
108 }
109 }
110
111 @Override
112 public int hashCode() {
113 return toString().hashCode();
114 }
115
116 @Override
117 public String toString() {
118 return getCode(MCRLanguageCodeType.xmlCode);
119 }
120
121 public Locale getLocale() {
122 return locale;
123 }
124
125 void setLocale(Locale locale) {
126 this.locale = locale;
127 }
128 }