Author: ivaynberg
Date: Fri Sep 16 04:50:16 2011
New Revision: 1171386

URL: http://svn.apache.org/viewvc?rev=1171386&view=rev
Log:
WICKET-4055

Modified:
    
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/requestmapper/LocaleFirstMapper.java

Modified: 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/requestmapper/LocaleFirstMapper.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/requestmapper/LocaleFirstMapper.java?rev=1171386&r1=1171385&r2=1171386&view=diff
==============================================================================
--- 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/requestmapper/LocaleFirstMapper.java
 (original)
+++ 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/requestmapper/LocaleFirstMapper.java
 Fri Sep 16 04:50:16 2011
@@ -51,16 +51,25 @@ public class LocaleFirstMapper extends A
        /**
         * @see 
org.apache.wicket.request.IRequestMapper#getCompatibilityScore(org.apache.wicket.request.Request)
         */
-       public int getCompatibilityScore(final Request request)
+       public int getCompatibilityScore(Request request)
        {
+               if (getLocaleFromUrl(request) != null)
+               {
+                       request = stripLocaleSegment(request);
+               }
+
                // since we match all urls the score is simply delegated to the 
chain
                return chain.getCompatibilityScore(request);
        }
 
-       /**
-        * @see 
org.apache.wicket.request.IRequestMapper#mapRequest(org.apache.wicket.request.Request)
-        */
-       public IRequestHandler mapRequest(Request request)
+       private Request stripLocaleSegment(Request request)
+       {
+               Url url = request.getUrl();
+               url.getSegments().remove(0);
+               return request.cloneWithUrl(url);
+       }
+
+       private Locale getLocaleFromUrl(Request request)
        {
                // locale is the first segment in the url
                List<String> segments = request.getUrl().getSegments();
@@ -69,20 +78,25 @@ public class LocaleFirstMapper extends A
                        String localeAsString = segments.get(0);
                        if (!Strings.isEmpty(localeAsString))
                        {
-                               Locale locale = 
LocaleHelper.parseLocale(localeAsString);
-                               if (locale != null)
-                               {
-                                       Session.get().setLocale(locale);
-
-                                       // now that we have proccessed the 
first segment we need to strip from the url
-                                       Url url = request.getUrl();
-                                       url.getSegments().remove(0);
-
-                                       // create a request based on the new url
-                                       request = request.cloneWithUrl(url);
-                               }
+                               return LocaleHelper.parseLocale(localeAsString);
                        }
                }
+               return null;
+       }
+
+       /**
+        * @see 
org.apache.wicket.request.IRequestMapper#mapRequest(org.apache.wicket.request.Request)
+        */
+       public IRequestHandler mapRequest(Request request)
+       {
+               Locale locale = getLocaleFromUrl(request);
+               if (locale != null)
+               {
+                       Session.get().setLocale(locale);
+
+                       // now that we have proccessed the first segment we 
need to strip from the url
+                       request = stripLocaleSegment(request);
+               }
 
                // chain url processing
                return chain.mapRequest(request);


Reply via email to