1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.mycore.datamodel.metadata;
20
21 import java.util.Objects;
22
23 import org.apache.logging.log4j.LogManager;
24 import org.apache.logging.log4j.Logger;
25 import org.jdom2.Element;
26 import org.mycore.common.MCRException;
27
28 import com.google.gson.JsonObject;
29
30
31
32
33
34
35
36
37 public final class MCRMetaAddress extends MCRMetaDefault {
38
39 private String country;
40
41 private String state;
42
43 private String zipCode;
44
45 private String city;
46
47 private String street;
48
49 private String number;
50
51 private static final Logger LOGGER = LogManager.getLogger();
52
53
54
55
56
57
58 public MCRMetaAddress() {
59 super();
60 }
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 public MCRMetaAddress(final String subtag, final String defaultLang, final String type,
86 final int inherted, final String country,
87 final String state, final String zipcode, final String city, final String street,
88 final String number) throws MCRException {
89 super(subtag, defaultLang, type, inherted);
90 setCountry(country);
91 setState(state);
92 setZipCode(zipcode);
93 setCity(city);
94 setStreet(street);
95 setNumber(number);
96 }
97
98
99
100
101
102
103
104
105 @Override
106 public MCRMetaAddress clone() {
107 MCRMetaAddress clone = (MCRMetaAddress) super.clone();
108
109 clone.country = this.country;
110 clone.state = this.state;
111 clone.zipCode = this.zipCode;
112 clone.city = this.city;
113 clone.street = this.street;
114 clone.number = this.number;
115
116 return clone;
117 }
118
119
120
121
122
123
124
125
126
127 @Override
128 public Element createXML() throws MCRException {
129 final Element elm = super.createXML();
130 if (getCountry() != null) {
131 elm.addContent(new Element("country").addContent(getCountry()));
132 }
133 if (getState() != null) {
134 elm.addContent(new Element("state").addContent(getState()));
135 }
136 if (getZipCode() != null) {
137 elm.addContent(new Element("zipcode").addContent(getZipCode()));
138 }
139 if (getCity() != null) {
140 elm.addContent(new Element("city").addContent(getCity()));
141 }
142 if (getStreet() != null) {
143 elm.addContent(new Element("street").addContent(getStreet()));
144 }
145 if (getNumber() != null) {
146 elm.addContent(new Element("number").addContent(getNumber()));
147 }
148
149 return elm;
150 }
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168 @Override
169 public JsonObject createJSON() {
170 JsonObject obj = super.createJSON();
171 if (getCountry() != null) {
172 obj.addProperty("country", getCountry());
173 }
174 if (getState() != null) {
175 obj.addProperty("state", getState());
176 }
177 if (getZipCode() != null) {
178 obj.addProperty("zipcode", getZipCode());
179 }
180 if (getCity() != null) {
181 obj.addProperty("city", getCity());
182 }
183 if (getStreet() != null) {
184 obj.addProperty("street", getStreet());
185 }
186 if (getNumber() != null) {
187 obj.addProperty("number", getNumber());
188 }
189 return obj;
190 }
191
192
193
194
195 @Override
196 public void debug() {
197 if (LOGGER.isDebugEnabled()) {
198 super.debugDefault();
199 LOGGER.debug("Country = {}", country);
200 LOGGER.debug("State = {}", state);
201 LOGGER.debug("Zipcode = {}", zipCode);
202 LOGGER.debug("City = {}", city);
203 LOGGER.debug("Street = {}", street);
204 LOGGER.debug("Number = {}", number);
205 LOGGER.debug(" ");
206 }
207 }
208
209
210
211
212
213
214
215 @Override
216 public boolean equals(Object obj) {
217 if (!super.equals(obj)) {
218 return false;
219 }
220 final MCRMetaAddress other = (MCRMetaAddress) obj;
221 return Objects.equals(this.country, other.country) && Objects.equals(this.state, other.state)
222 && Objects.equals(this.zipCode, other.zipCode) && Objects.equals(this.city, other.city)
223 && Objects.equals(this.street, other.street) && Objects.equals(this.number, other.number);
224 }
225
226
227
228
229 public String getCity() {
230 return city;
231 }
232
233
234
235
236 public String getCountry() {
237 return country;
238 }
239
240
241
242
243 public String getNumber() {
244 return number;
245 }
246
247
248
249
250 public String getState() {
251 return state;
252 }
253
254
255
256
257 public String getStreet() {
258 return street;
259 }
260
261
262
263
264 public String getZipCode() {
265 return zipCode;
266 }
267
268
269
270
271
272
273
274
275
276
277
278
279 public void validate() throws MCRException {
280 super.validate();
281 if (getCountry() == null && getState() == null && getZipCode() == null && getCity() == null
282 && getStreet() == null && getNumber() == null) {
283 throw new MCRException(getSubTag() + ": address is empty");
284 }
285 }
286
287
288
289
290 public void setCity(final String city) {
291 this.city = city;
292 }
293
294
295
296
297 public void setCountry(final String country) {
298 this.country = country;
299 }
300
301
302
303
304
305
306
307
308 @Override
309 public void setFromDOM(final Element element) {
310 super.setFromDOM(element);
311 country = element.getChildTextTrim("country");
312 state = element.getChildTextTrim("state");
313 zipCode = element.getChildTextTrim("zipcode");
314 city = element.getChildTextTrim("city");
315 street = element.getChildTextTrim("street");
316 number = element.getChildTextTrim("number");
317 }
318
319
320
321
322 public void setNumber(final String number) {
323 this.number = number;
324 }
325
326
327
328
329 public void setState(final String state) {
330 this.state = state;
331 }
332
333
334
335
336 public void setStreet(final String street) {
337 this.street = street;
338 }
339
340
341
342
343 public void setZipCode(final String zipCode) {
344 this.zipCode = zipCode;
345 }
346 }