1 package com.terradue.jcatalogue.client.internal.converters;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import static java.lang.String.format;
20
21 import java.util.Locale;
22 import java.util.StringTokenizer;
23
24 import org.apache.commons.beanutils.ConversionException;
25 import org.apache.commons.beanutils.Converter;
26
27 public final class LocaleConverter
28 implements Converter
29 {
30
31 private static final String SEPARATOR = "-";
32
33 public Object convert( @SuppressWarnings( "rawtypes" ) Class type, Object value )
34 {
35 if ( value == null )
36 {
37 throw new ConversionException( "Null values not supported in this version." );
38 }
39
40 if ( String.class == type )
41 {
42 if ( value instanceof Locale )
43 {
44 Locale locale = (Locale) value;
45 return locale.getLanguage() + SEPARATOR + locale.getCountry();
46 }
47 }
48 else if ( Locale.class == type )
49 {
50 if ( value instanceof String )
51 {
52 StringTokenizer tokenizer = new StringTokenizer( (String) value, SEPARATOR );
53 return new Locale( tokenizer.nextToken(), tokenizer.nextToken() );
54 }
55 }
56 throw new ConversionException( format( "type %s and value %s not supported", type, value ) );
57 }
58
59 }