package org.jbehave.eclipse.util; import java.util.Locale; import java.util.StringTokenizer; import org.apache.commons.lang.StringUtils; public class LocaleUtils { /** * Creates locale from string representation as returned by Locale::toString(); * * @param code * programmatic name with lang, country, variant, separated by underbars * @return Locale object (never returns <code>null</code>) */ public static Locale createLocaleFromCode(String code, Locale defaultLocale) { if (code == null) { return defaultLocale; } String params[] = new String[3]; StringTokenizer st = new StringTokenizer(code, "_"); for (int i = 0; i < params.length; i++) { params[i] = (st.hasMoreTokens() ? st.nextToken() : StringUtils.EMPTY); } if (params[0].length() > 0) { return new Locale(params[0], params[1], params[2]); } return defaultLocale; } }