1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.jadira.bindings.core.jdk;
17
18 import java.util.Locale;
19
20 import org.jadira.bindings.core.api.Binding;
21
22
23
24
25 public class LocaleStringBinding extends AbstractStringBinding<Locale> implements Binding<Locale, String> {
26
27
28
29
30 @Override
31 public Locale unmarshal(String object) {
32
33 String[] components = object.split("_", 3);
34
35 final Locale result;
36
37 if (components.length == 1) {
38 result = new Locale(components[0]);
39 } else if (components.length == 2) {
40 result = new Locale(components[0], components[1]);
41 } else if (components.length == 3) {
42 result = new Locale(components[0], components[1], components[2]);
43 } else {
44 throw new IllegalArgumentException("Unable to unmarshall String to Locale: " + object);
45 }
46 return result;
47 }
48
49
50
51
52
53 public Class<Locale> getBoundClass() {
54 return Locale.class;
55 }
56 }