KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > appfuse > webapp > filter > LocaleRequestWrapper


1 package org.appfuse.webapp.filter;
2
3 import java.util.Collections JavaDoc;
4 import java.util.Enumeration JavaDoc;
5 import java.util.List JavaDoc;
6 import java.util.Locale JavaDoc;
7
8 import javax.servlet.http.HttpServletRequest JavaDoc;
9 import javax.servlet.http.HttpServletRequestWrapper JavaDoc;
10
11 import org.apache.commons.logging.Log;
12 import org.apache.commons.logging.LogFactory;
13
14 /**
15  * HttpRequestWrapper overriding methods getLocale(), getLocales() to include
16  * the user's preferred locale.
17  */

18 public class LocaleRequestWrapper extends HttpServletRequestWrapper JavaDoc {
19     private final transient Log log = LogFactory.getLog(LocaleRequestWrapper.class);
20     private final Locale JavaDoc preferredLocale;
21
22     public LocaleRequestWrapper(HttpServletRequest JavaDoc decorated, Locale JavaDoc 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     /**
31      * @see javax.servlet.ServletRequestWrapper#getLocale()
32      */

33     public Locale JavaDoc getLocale() {
34         if (null != preferredLocale) {
35             return preferredLocale;
36         } else {
37             return super.getLocale();
38         }
39     }
40
41     /**
42      * @see javax.servlet.ServletRequestWrapper#getLocales()
43      */

44     public Enumeration JavaDoc getLocales() {
45         if (null != preferredLocale) {
46             List JavaDoc 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