com.google.code.morphia.converters.LocaleConverter Maven / Gradle / Ivy
package com.google.code.morphia.converters;
import java.util.Locale;
import java.util.StringTokenizer;
import com.google.code.morphia.mapping.MappedField;
import com.google.code.morphia.mapping.MappingException;
/**
* @author Uwe Schaefer, ([email protected])
* @author scotthernandez
*/
@SuppressWarnings({"rawtypes" })
public class LocaleConverter extends TypeConverter implements SimpleValueConverter {
public LocaleConverter() {
super(Locale.class);
}
@Override
public Object decode(final Class targetClass, final Object fromDBObject, final MappedField optionalExtraInfo) throws MappingException {
return parseLocale(fromDBObject.toString());
}
@Override
public Object encode(final Object val, final MappedField optionalExtraInfo) {
if (val == null) {
return null;
}
return val.toString();
}
public static Locale parseLocale(final String localeString) {
if ((localeString != null) && (localeString.length() != 0)) {
final StringTokenizer st = new StringTokenizer(localeString, "_");
final String language = st.hasMoreElements() ? st.nextToken() : Locale.getDefault().getLanguage();
final String country = st.hasMoreElements() ? st.nextToken() : "";
final String variant = st.hasMoreElements() ? st.nextToken() : "";
return new Locale(language, country, variant);
}
return null;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy