portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tay...@apache.org
Subject svn commit: r382476 - /portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/localization/impl/SimplifiedLocalizationValveImpl.java
Date Thu, 02 Mar 2006 19:24:29 GMT
Author: taylor
Date: Thu Mar  2 11:24:26 2006
New Revision: 382476

URL: http://svn.apache.org/viewcvs?rev=382476&view=rev
Log:
a simplified localization valve alternative

Added:
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/localization/impl/SimplifiedLocalizationValveImpl.java

Added: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/localization/impl/SimplifiedLocalizationValveImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/localization/impl/SimplifiedLocalizationValveImpl.java?rev=382476&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/localization/impl/SimplifiedLocalizationValveImpl.java
(added)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/localization/impl/SimplifiedLocalizationValveImpl.java
Thu Mar  2 11:24:26 2006
@@ -0,0 +1,130 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.localization.impl;
+
+import java.util.Enumeration;
+import java.util.Locale;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.jetspeed.PortalReservedParameters;
+import org.apache.jetspeed.i18n.CurrentLocale;
+import org.apache.jetspeed.pipeline.PipelineException;
+import org.apache.jetspeed.pipeline.valve.AbstractValve;
+import org.apache.jetspeed.pipeline.valve.LocalizationValve;
+import org.apache.jetspeed.pipeline.valve.ValveContext;
+import org.apache.jetspeed.request.RequestContext;
+
+/**
+ * LocalizationValveImpl
+ * 
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor </a>
+ * @version $Id: LocalizationValveImpl.java 378091 2006-02-15 21:12:28Z taylor $
+ */
+public class SimplifiedLocalizationValveImpl extends AbstractValve implements LocalizationValve
+{
+    private static final Log log = LogFactory.getLog(LocalizationValveImpl.class);
+    private Locale defaultLocale = null;
+    
+    public SimplifiedLocalizationValveImpl() {}
+    
+    public SimplifiedLocalizationValveImpl(String defaultLanguage)
+    {
+        String language = defaultLanguage != null ? defaultLanguage.trim() : "";
+        if (language.length()>0)
+        {
+            // Code taken from LocaleSelectorPorltet
+            String country = "";
+            String variant = "";
+            int countryIndex = language.indexOf('_');
+            if (countryIndex > -1)
+            {
+                country = language.substring(countryIndex + 1).trim();
+                language = language.substring(0, countryIndex).trim();
+                int vDash = country.indexOf("_");
+                if (vDash > 0)
+                {
+                    String cTemp = country.substring(0, vDash);
+                    variant = country.substring(vDash + 1);
+                    country = cTemp;
+                }
+            }
+
+            defaultLocale = new Locale(language, country, variant);
+            if ( defaultLocale.getLanguage().length() == 0 )
+            {
+                // not a valid language
+                defaultLocale = null;
+                log.warn("Invalid or unrecognized default language: "+language);
+            }
+            else
+            {
+                log.info("Default language set: "+defaultLocale);
+            }
+                
+        }
+    }
+    
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.jetspeed.pipeline.valve.Valve#invoke(org.apache.jetspeed.request.RequestContext,
+     *      org.apache.jetspeed.pipeline.valve.ValveContext)
+     */
+    public void invoke( RequestContext request, ValveContext context ) throws PipelineException
+    {
+        Locale locale = (Locale)request.getRequest().getSession().getAttribute(PortalReservedParameters.PREFERED_LOCALE_ATTRIBUTE);
+        
+        if ( locale == null && defaultLocale != null )
+        {
+            locale = defaultLocale;
+        }
+
+        if (locale == null)
+        {
+            locale = request.getRequest().getLocale();
+        }
+        
+        if (locale == null)
+        {
+            Enumeration preferedLocales = request.getRequest().getLocales();
+            while (preferedLocales.hasMoreElements() && locale == null)
+            {
+                locale = (Locale) preferedLocales.nextElement();
+            }
+        }
+
+        if (locale == null)
+        {
+            locale = Locale.getDefault();
+        }
+
+        request.setLocale(locale);
+        request.getRequest().setAttribute(PortalReservedParameters.PREFERED_LOCALE_ATTRIBUTE,
locale);
+        request.getRequest().getSession().setAttribute(PortalReservedParameters.PREFERED_LOCALE_ATTRIBUTE,
locale);
+        CurrentLocale.set(locale);
+       
+        // Pass control to the next Valve in the Pipeline
+        context.invokeNext(request);
+
+    }
+
+    public String toString()
+    {
+        return "LocalizationValve";
+    }
+
+}
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org


Mime
View raw message