kpiroumian 2002/07/09 14:12:58
Modified: src/java/org/apache/cocoon/acting LocaleAction.java
Log:
Cleanup inspired by Michael Enke ([EMAIL PROTECTED])
PR: 10559
Revision Changes Path
1.10 +22 -31 xml-cocoon2/src/java/org/apache/cocoon/acting/LocaleAction.java
Index: LocaleAction.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/LocaleAction.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- LocaleAction.java 27 Apr 2002 09:36:22 -0000 1.9
+++ LocaleAction.java 9 Jul 2002 21:12:58 -0000 1.10
@@ -272,17 +272,12 @@
Parameters par
) throws Exception {
- // obtain locale information (note, Locale.get* do not return null)
- String lc = getLocaleAttribute(objectModel, localeAttr);
- Locale locale = I18nUtils.parseLocale(lc);
- String l = locale.getLanguage();
- String c = locale.getCountry();
- String v = locale.getVariant();
-
- debug("obtained locale information, locale = " + lc);
- debug("language = " + l + ", country = " + c + ", variant = " + v);
+ // obtain locale information from params, session or cookies
+ Locale locale = getLocaleAttribute(objectModel, localeAttr);
+ String lc = locale.toString();
if (getLogger().isDebugEnabled()) {
+ debug("obtained locale information, locale = " + lc);
checkParams(par);
}
@@ -312,58 +307,54 @@
debug("created cookies");
}
- // set up a map for XPath Substituion
+ // set up a map for sitemap parameters
Map map = new HashMap();
- map.put(langAttr, l);
- map.put(countryAttr, c);
- map.put(variantAttr, v);
+ map.put(langAttr, locale.getLanguage());
+ map.put(countryAttr, locale.getCountry());
+ map.put(variantAttr, locale.getVariant());
map.put(localeAttr, lc);
- debug("returning map for XPath substitutions");
-
return map;
}
/**
- * Helper method to access Locale sub component values.
+ * Helper method to retreive the attribute value containing locale
+ * information. See class documentation for locale determination algorythm.
*
* @param objectModel requesting object's environment
- * @return locale value
- * @throws Exception should some error occur
+ * @return locale value or <code>null</null> if no locale was found
*/
- public static String getLocaleAttribute(Map objectModel, String localeAttrName)
throws Exception {
+ public static Locale getLocaleAttribute(Map objectModel,
+ String localeAttrName) {
String ret_val;
- // 1. Request CGI parameter 'locale'
Request request = ObjectModelHelper.getRequest(objectModel);
+ // 1. Request CGI parameter 'locale'
if ((ret_val = request.getParameter(localeAttrName)) != null)
- return ret_val;
+ return I18nUtils.parseLocale(ret_val);
// 2. Session attribute 'locale'
Session session = request.getSession(false);
if (session != null &&
- ((ret_val = (String) session.getAttribute(localeAttrName)) != null)
- )
- return ret_val;
+ ((ret_val = (String) session.getAttribute(localeAttrName)) != null))
+ return I18nUtils.parseLocale(ret_val);
// 3. First matching cookie parameter 'locale' within each cookie sent
Cookie[] cookies = request.getCookies();
-
if (cookies != null) {
for (int i = 0; i < cookies.length; ++i) {
Cookie cookie = cookies[i];
if (cookie.getName().equals(localeAttrName))
- return cookie.getValue();
+ return I18nUtils.parseLocale(cookie.getValue());
}
}
// 4. Locale setting of the requesting object/server
- return request.getLocale().toString();
+ return request.getLocale();
}
-
/**
* Method to check <map:act type="locale"/> invocations for local
* customisation.
@@ -401,12 +392,12 @@
}
/**
- * Helper debug method, prefixes all debug messages with the classes name
+ * Helper debug method
*
* @param msg debugging message
*/
private void debug(String msg) {
- getLogger().debug(getClass().getName() + ": " + msg);
+ getLogger().debug(msg);
}
// Store the lang in request. Default is not to do this.
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]