[Yanel-commits] rev 23926 - in public/yanel/trunk/src: core/java/org/wyona/yanel/core resources/xml/src/java/org/wyona/yanel/impl/resources

josias at wyona.com josias at wyona.com
Fri Apr 20 16:37:08 CEST 2007


Author: josias
Date: 2007-04-20 16:37:06 +0200 (Fri, 20 Apr 2007)
New Revision: 23926

Modified:
   public/yanel/trunk/src/core/java/org/wyona/yanel/core/Resource.java
   public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java
Log:
refactoring: move getRequestedLanguage() method to Resource class to make it reusable for other resources.

Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/core/Resource.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/core/Resource.java	2007-04-20 14:28:52 UTC (rev 23925)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/core/Resource.java	2007-04-20 14:37:06 UTC (rev 23926)
@@ -21,7 +21,10 @@
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
+import org.wyona.yanel.core.api.attributes.TranslatableV1;
 import org.wyona.yanel.core.map.Realm;
+import org.wyona.yanel.core.util.ResourceAttributeHelper;
 
 import org.apache.log4j.Category;
 
@@ -207,4 +210,54 @@
         this.parameters.put(name, value);
     }
 
+    /**
+     * Get language with the following priorization: 
+     * 1) yanel.meta.language query string parameter 
+     * 2) Translation Manager (if translatable)
+     * 3) Resource Configuration property 
+     * 4) Accept-Language header
+     * 5) Realm default language
+     * 6) Default "en"
+     */
+    public String getRequestedLanguage() throws Exception {
+        // TODO: Make this reusable. Also see org/wyona/yanel/servlet/YanelServlet.java
+        String language = getRequest().getParameter("yanel.meta.language");
+        
+        if (language == null && ResourceAttributeHelper.hasAttributeImplemented(this, 
+                "Translatable", "1")) {
+            // get language from translation manager: 
+            language = ((TranslatableV1)this).getLanguage(); 
+        }
+
+        if (language == null) {
+            ResourceConfiguration rc = getConfiguration();
+            if (rc != null) {
+                language = rc.getProperty("language");
+            }
+        }
+
+        if (language == null) {
+            language = getRequest().getHeader("Accept-Language");
+            if (language != null) {
+                if (language.indexOf(",") > 0) {
+                    language = language.substring(0, language.indexOf(","));
+                }
+                int dashIndex = language.indexOf("-");
+                if (dashIndex > 0) {
+                    language = language.substring(0, dashIndex);
+                }
+            }
+        }
+        
+        if (language == null) {
+            language = getRealm().getDefaultLanguage();
+        }
+        
+        if (language == null || language.length() == 0) {
+            language = "en";
+        }
+        
+        return language;
+    }
+
 }

Modified: public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java
===================================================================
--- public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java	2007-04-20 14:28:52 UTC (rev 23925)
+++ public/yanel/trunk/src/resources/xml/src/java/org/wyona/yanel/impl/resources/XMLResource.java	2007-04-20 14:37:06 UTC (rev 23926)
@@ -202,55 +202,6 @@
     }
 
     /**
-     * Get language with the following priorization: 
-     * 1) yanel.meta.language query string parameter 
-     * 2) Translation Manager
-     * 3) Resource Configuration property 
-     * 4) Accept-Language header
-     * 5) Realm default language
-     * 6) Default "en"
-     */
-    private String getRequestedLanguage() throws Exception {
-        // TODO: Make this reusable. Also see org/wyona/yanel/servlet/YanelServlet.java
-        String language = getRequest().getParameter("yanel.meta.language");
-        
-        if (language == null) {
-            language = getLanguage(); // get language from translation manager 
-        }
-
-        if (language == null) {
-            ResourceConfiguration rc = getConfiguration();
-            if (rc != null) {
-                language = rc.getProperty("language");
-            }
-        }
-
-        if (language == null) {
-            language = getRequest().getHeader("Accept-Language");
-            if (language != null) {
-                if (language.indexOf(",") > 0) {
-                    language = language.substring(0, language.indexOf(","));
-                }
-                int dashIndex = language.indexOf("-");
-                if (dashIndex > 0) {
-                    language = language.substring(0, dashIndex);
-                }
-            }
-        }
-        
-        if (language == null) {
-            language = getRealm().getDefaultLanguage();
-        }
-        
-        if (language == null || language.length() == 0) {
-            language = "en";
-        }
-        
-        return language;
-    }
-
-
-    /**
      *
      */
     private InputStream getContentXML(Repository repo, String yanelPath, String revisionName) throws Exception {




More information about the Yanel-commits mailing list