X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=svjatoslav_commons.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fcommons%2Fnetwork%2FLocaleConfiguration.java;h=2bb15e2ce783f1e6839094950c5560c545b2230f;hp=2230885078fcc3ae95bf09d1bac0bf93d558e699;hb=acde4973ab5eb9f8d7ec5ef2cba2d5f3dc6cdb1c;hpb=3767b0eff204f40a830f657fff341cb78abbaadf diff --git a/src/main/java/eu/svjatoslav/commons/network/LocaleConfiguration.java b/src/main/java/eu/svjatoslav/commons/network/LocaleConfiguration.java index 2230885..2bb15e2 100755 --- a/src/main/java/eu/svjatoslav/commons/network/LocaleConfiguration.java +++ b/src/main/java/eu/svjatoslav/commons/network/LocaleConfiguration.java @@ -16,48 +16,44 @@ import javax.servlet.http.HttpServletRequest; public class LocaleConfiguration { - Locale defaultLocale; + String defaultLocale; - private final List allowedLocales = new ArrayList(); + private final List allowedLocales = new ArrayList(); - public LocaleConfiguration(final Locale defaultLocale, - final Locale... allowedLocales) { + public LocaleConfiguration(final String defaultLocale, + final String... allowedLocales) { this.defaultLocale = defaultLocale; - for (final Locale locale : allowedLocales) - this.getAllowedLocales().add(locale); + for (final String locale : allowedLocales) + getAllowedLocales().add(locale); } - public Locale detectCurrentLocale(final HttpServletRequest request) { + public String detectCurrentLocale(final HttpServletRequest request) { final String sessionLocaleString = (String) request.getSession() .getAttribute("locale"); - Locale result = localeFromString(sessionLocaleString); - if (result == null) - result = defaultLocale; + String result = defaultLocale; + if (isAllowedLocale(sessionLocaleString)) + result = sessionLocaleString; - final Locale requestLocale = localeFromString(request - .getParameter("locale")); - if (requestLocale != null) + final String requestLocale = request.getParameter("locale"); + + if (isAllowedLocale(requestLocale)) result = requestLocale; - request.getSession().setAttribute("locale", result.asString()); + request.getSession().setAttribute("locale", result); return result; } - private Locale localeFromString(final String localeString) { - for (final Locale locale : getAllowedLocales()) - if (locale.asString().equals(localeString)) - return locale; - - return null; + public List getAllowedLocales() { + return allowedLocales; } - public List getAllowedLocales() { - return allowedLocales; + public boolean isAllowedLocale(final String locale) { + return allowedLocales.contains(locale); } }