X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fcommons%2Fnetwork%2FLocaleConfiguration.java;h=447f5307d13df7b62ac014adf7a0d032a04878fb;hb=3fea835d27c37142574f6640fca663522b2162c0;hp=2230885078fcc3ae95bf09d1bac0bf93d558e699;hpb=869bf9eeef97f5364d46b76f64c94cec67846c28;p=svjatoslav_commons.git diff --git a/src/main/java/eu/svjatoslav/commons/network/LocaleConfiguration.java b/src/main/java/eu/svjatoslav/commons/network/LocaleConfiguration.java index 2230885..447f530 100755 --- a/src/main/java/eu/svjatoslav/commons/network/LocaleConfiguration.java +++ b/src/main/java/eu/svjatoslav/commons/network/LocaleConfiguration.java @@ -1,6 +1,6 @@ /* * Svjatoslav Commons - shared library of common functionality. - * Copyright ©2012-2014, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu + * Copyright ©2012-2017, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu * * This program is free software; you can redistribute it and/or * modify it under the terms of version 3 of the GNU Lesser General Public License @@ -9,55 +9,49 @@ package eu.svjatoslav.commons.network; +import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; -import javax.servlet.http.HttpServletRequest; - public class LocaleConfiguration { - Locale defaultLocale; - - private final List allowedLocales = new ArrayList(); + final String defaultLocale; + 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; + 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"); + 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) - result = requestLocale; + final String requestLocale = request.getParameter("locale"); - request.getSession().setAttribute("locale", result.asString()); + if (isAllowedLocale(requestLocale)) + result = requestLocale; - return result; - } + request.getSession().setAttribute("locale", result); - private Locale localeFromString(final String localeString) { - for (final Locale locale : getAllowedLocales()) - if (locale.asString().equals(localeString)) - return locale; + return result; + } - return null; - } + public List getAllowedLocales() { + return allowedLocales; + } - public List getAllowedLocales() { - return allowedLocales; - } + public boolean isAllowedLocale(final String locale) { + return allowedLocales.contains(locale); + } }