1 package org.appfuse.webapp.filter; 2 3 import java.util.Collections ; 4 import java.util.Enumeration ; 5 import java.util.List ; 6 import java.util.Locale ; 7 8 import javax.servlet.http.HttpServletRequest ; 9 import javax.servlet.http.HttpServletRequestWrapper ; 10 11 import org.apache.commons.logging.Log; 12 import org.apache.commons.logging.LogFactory; 13 14 18 public class LocaleRequestWrapper extends HttpServletRequestWrapper { 19 private final transient Log log = LogFactory.getLog(LocaleRequestWrapper.class); 20 private final Locale preferredLocale; 21 22 public LocaleRequestWrapper(HttpServletRequest decorated, Locale userLocale) { 23 super(decorated); 24 preferredLocale = userLocale; 25 if (null == preferredLocale) { 26 log.error("preferred locale = null, it is an unexpected value!"); 27 } 28 } 29 30 33 public Locale getLocale() { 34 if (null != preferredLocale) { 35 return preferredLocale; 36 } else { 37 return super.getLocale(); 38 } 39 } 40 41 44 public Enumeration getLocales() { 45 if (null != preferredLocale) { 46 List l = Collections.list(super.getLocales()); 47 if(l.contains(preferredLocale)) 48 { 49 l.remove(preferredLocale); 50 } 51 l.add(0, preferredLocale); 52 return Collections.enumeration(l); 53 } else { 54 return super.getLocales(); 55 } 56 } 57 58 } 59 | Popular Tags |