package org.test4j.json.decoder.single;
import java.lang.reflect.Type;
import java.util.Locale;
import org.test4j.json.decoder.base.FixedTypeDecoder;
@SuppressWarnings({ "unchecked", "rawtypes" })
public class LocaleDecoder extends FixedTypeDecoder {
public final static LocaleDecoder toLOCAL = new LocaleDecoder();
@Override
protected Locale decodeFromString(String value) {
String[] parts = value.split("_");
if (parts.length == 1) {
return new Locale(parts[0]);
}
if (parts.length == 2) {
return new Locale(parts[0], parts[1]);
}
return new Locale(parts[0], parts[1], parts[2]);
}
public boolean accept(Type type) {
Class claz = this.getRawType(type, null);
return Locale.class.isAssignableFrom(claz);
}
}