Removed Locale enum to make code usable for every possible language.
[svjatoslav_commons.git] / src / main / java / eu / svjatoslav / commons / network / LocaleConfiguration.java
index 2230885..2bb15e2 100755 (executable)
@@ -16,48 +16,44 @@ import javax.servlet.http.HttpServletRequest;
 
 public class LocaleConfiguration {
 
-       Locale defaultLocale;
+       String defaultLocale;
 
-       private final List<Locale> allowedLocales = new ArrayList<Locale>();
+       private final List<String> allowedLocales = new ArrayList<String>();
 
-       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<String> getAllowedLocales() {
+               return allowedLocales;
        }
 
-       public List<Locale> getAllowedLocales() {
-               return allowedLocales;
+       public boolean isAllowedLocale(final String locale) {
+               return allowedLocales.contains(locale);
        }
 
 }