diff --git a/src/java/com/samskivert/servlet/MessageManager.java b/src/java/com/samskivert/servlet/MessageManager.java
index efcd8356..6487e0ca 100644
--- a/src/java/com/samskivert/servlet/MessageManager.java
+++ b/src/java/com/samskivert/servlet/MessageManager.java
@@ -31,26 +31,23 @@ import com.samskivert.text.MessageUtil;
import com.samskivert.util.StringUtil;
/**
- * The message manager handles the translation messages for a web
- * application. The webapp should construct the message manager with the
- * name of its message properties file and it can then make use of the
- * message manager to generate locale specific messages for a request.
+ * The message manager handles the translation messages for a web application. The webapp should
+ * construct the message manager with the name of its message properties file and it can then make
+ * use of the message manager to generate locale specific messages for a request.
*/
public class MessageManager
{
/**
- * Constructs a message manager with the specified bundle path. The
- * message manager will be instantiating a ResourceBundle
- * with the supplied path, so it should conform to the naming
- * conventions defined by that class.
+ * Constructs a message manager with the specified bundle path. The message manager will be
+ * instantiating a ResourceBundle with the supplied path, so it should conform to
+ * the naming conventions defined by that class.
*
- * @param siteIdent an optional site identifier that can be used to
- * identify the site via which an http request was made.
+ * @param siteIdent an optional site identifier that can be used to identify the site via which
+ * an http request was made.
*
* @see java.util.ResourceBundle
*/
- public MessageManager (String bundlePath, Locale deflocale,
- SiteIdentifier siteIdent)
+ public MessageManager (String bundlePath, Locale deflocale, SiteIdentifier siteIdent)
{
// keep these for later
_bundlePath = bundlePath;
@@ -59,19 +56,16 @@ public class MessageManager
}
/**
- * If the message manager is to be used in a multi-site environment,
- * it can be configured to load site-specific message resources in
- * addition to the default application message resources. It must be
- * configured with the facilities to load site-specific resources by a
+ * If the message manager is to be used in a multi-site environment, it can be configured to
+ * load site-specific message resources in addition to the default application message
+ * resources. It must be configured with the facilities to load site-specific resources by a
* call to this function.
*
- * @param siteBundlePath the path to the site-specific message
- * resources.
- * @param siteLoader a site-specific resource loader, properly
- * configured with a site identifier.
+ * @param siteBundlePath the path to the site-specific message resources.
+ * @param siteLoader a site-specific resource loader, properly configured with a site
+ * identifier.
*/
- public void activateSiteSpecificMessages (String siteBundlePath,
- SiteResourceLoader siteLoader)
+ public void activateSiteSpecificMessages (String siteBundlePath, SiteResourceLoader siteLoader)
{
_siteBundlePath = siteBundlePath;
_siteLoader = siteLoader;
@@ -86,9 +80,8 @@ public class MessageManager
}
/**
- * Looks up the message with the specified path in the resource bundle
- * most appropriate for the locales described as preferred by the
- * request. Always reports missing paths.
+ * Looks up the message with the specified path in the resource bundle most appropriate for the
+ * locales described as preferred by the request. Always reports missing paths.
*/
public String getMessage (HttpServletRequest req, String path)
{
@@ -96,31 +89,27 @@ public class MessageManager
}
/**
- * Looks up the message with the specified path in the resource bundle
- * most appropriate for the locales described as preferred by the
- * request, then substitutes the supplied arguments into that message
- * using a MessageFormat object.
+ * Looks up the message with the specified path in the resource bundle most appropriate for the
+ * locales described as preferred by the request, then substitutes the supplied arguments into
+ * that message using a MessageFormat object.
*
* @see java.text.MessageFormat
*/
- public String getMessage (HttpServletRequest req, String path,
- Object[] args)
+ public String getMessage (HttpServletRequest req, String path, Object[] args)
{
String msg = getMessage(req, path, true);
- // we may cache message formatters later, but for now just use the
- // static convenience function
+ // we may cache message formatters later, but for now just use the static convenience
+ // function
return MessageFormat.format(MessageUtil.escape(msg), args);
}
/**
- * Looks up the message with the specified path in the resource bundle
- * most appropriate for the locales described as preferred by the
- * request. If requested it will log a missing path and return the
- * path as the translation (which should make it obvious in the
- * servlet that the translation is missing) otherwise it returns null.
+ * Looks up the message with the specified path in the resource bundle most appropriate for the
+ * locales described as preferred by the request. If requested it will log a missing path and
+ * return the path as the translation (which should make it obvious in the servlet that the
+ * translation is missing) otherwise it returns null.
*/
- protected String getMessage (HttpServletRequest req, String path,
- boolean reportMissing)
+ protected String getMessage (HttpServletRequest req, String path, boolean reportMissing)
{
if (path == null) {
return "[null message key]";
@@ -139,8 +128,8 @@ public class MessageManager
String[] args = StringUtil.split(argstr, "|");
// unescape and translate the arguments
for (int i = 0; i < args.length; i++) {
- // if the argument is tainted, do no further translation
- // (it might contain |s or other fun stuff)
+ // if the argument is tainted, do no further translation (it might contain |s or
+ // other fun stuff)
if (args[i].startsWith(MessageUtil.TAINT_CHAR)) {
args[i] = MessageUtil.unescape(args[i].substring(1));
} else {
@@ -150,9 +139,9 @@ public class MessageManager
return getMessage(req, key, args);
}
- // load up the matching resource bundles (the array will contain the
- // site-specific resources first and the application resources second);
- // use the locale preferred by the client if possible
+ // load up the matching resource bundles (the array will contain the site-specific
+ // resources first and the application resources second); use the locale preferred by the
+ // client if possible
ResourceBundle[] bundles = resolveBundles(req);
String message = null;
if (bundles != null) {
@@ -163,8 +152,7 @@ public class MessageManager
message = bundles[i].getString(path);
}
} catch (MissingResourceException mre) {
- // no complaints, just try the bundle in the enclosing
- // scope
+ // no complaints, just try the bundle in the enclosing scope
}
}
}
@@ -182,13 +170,11 @@ public class MessageManager
// avoid trivial infinite recursion
if (ref.equals(path)) {
throw new IllegalStateException(
- "Illegal self-referential message " + path + " = " +
- message + ".");
+ "Illegal self-referential message " + path + " = " + message + ".");
}
if (ref.length() > 0 && !Character.isDigit(ref.charAt(0))) {
String refmsg = getMessage(req, ref, true);
- message = message.substring(0, oidx) +
- refmsg + message.substring(cidx+1);
+ message = message.substring(0, oidx) + refmsg + message.substring(cidx+1);
oidx += refmsg.length();
}
}
@@ -206,13 +192,12 @@ public class MessageManager
}
/**
- * Finds the closest matching resource bundle for the locales
- * specified as preferred by the client in the supplied http request.
+ * Finds the closest matching resource bundle for the locales specified as preferred by the
+ * client in the supplied http request.
*/
protected ResourceBundle[] resolveBundles (HttpServletRequest req)
{
- // first look to see if we've cached the bundles for this request
- // in the request object
+ // first look to see if we've cached the bundles for this request in the request object
ResourceBundle[] bundles = null;
if (req != null) {
bundles = (ResourceBundle[])req.getAttribute(getBundleCacheName());
@@ -245,15 +230,14 @@ public class MessageManager
if (siteLoader != null) {
bundles[0] = resolveBundle(req, _siteBundlePath, siteLoader, false);
} else if (siteString != null) {
- // or just try prefixing the site string to the normal bundle path
- // and see if that turns something up
+ // or just try prefixing the site string to the normal bundle path and see if that
+ // turns something up
bundles[0] = resolveBundle(req, siteString + "_" + _bundlePath,
getClass().getClassLoader(), true);
}
// then from the default classloader
- bundles[1] = resolveBundle(
- req, _bundlePath, getClass().getClassLoader(), false);
+ bundles[1] = resolveBundle(req, _bundlePath, getClass().getClassLoader(), false);
// if we found either or both bundles, cache 'em
if (bundles[0] != null || bundles[1] != null && req != null) {
@@ -264,12 +248,11 @@ public class MessageManager
}
/**
- * Resolves the default resource bundle based on the locale
- * information provided in the supplied http request object.
+ * Resolves the default resource bundle based on the locale information provided in the
+ * supplied http request object.
*/
- protected ResourceBundle resolveBundle (
- HttpServletRequest req, String bundlePath, ClassLoader loader,
- boolean silent)
+ protected ResourceBundle resolveBundle (HttpServletRequest req, String bundlePath,
+ ClassLoader loader, boolean silent)
{
ResourceBundle bundle = null;
@@ -279,16 +262,13 @@ public class MessageManager
Locale locale = (Locale)locales.nextElement();
try {
- // java caches resource bundles, so we don't need to
- // reinvent the wheel here. however, java also falls back
- // from a specific bundle to a more general one if it
- // can't find a specific bundle. that's real nice of it,
- // but we want first to see whether or not we have exact
- // matches on any of the preferred locales specified by
- // the client. if we don't, then we can rely on java's
+ // java caches resource bundles, so we don't need to reinvent the wheel here.
+ // however, java also falls back from a specific bundle to a more general one
+ // if it can't find a specific bundle. that's real nice of it, but we want
+ // first to see whether or not we have exact matches on any of the preferred
+ // locales specified by the client. if we don't, then we can rely on java's
// fallback mechanisms
- bundle = ResourceBundle.getBundle(
- bundlePath, locale, loader);
+ bundle = ResourceBundle.getBundle(bundlePath, locale, loader);
// if it's an exact match, off we go
if (bundle.getLocale().equals(locale)) {
@@ -296,28 +276,25 @@ public class MessageManager
}
} catch (MissingResourceException mre) {
- // no need to freak out quite yet, see if we have
- // something for one of the other preferred locales
+ // no need to freak out quite yet, see if we have something for one of the
+ // other preferred locales
}
}
}
- // if we were unable to find an exact match for any of the user's
- // preferred locales, take their most preferred and let java
- // perform it's fallback logic on that one
+ // if we were unable to find an exact match for any of the user's preferred locales, take
+ // their most preferred and let java perform it's fallback logic on that one
if (bundle == null) {
Locale locale = (req == null) ? _deflocale : req.getLocale();
try {
bundle = ResourceBundle.getBundle(bundlePath, locale, loader);
} catch (MissingResourceException mre) {
if (!silent) {
- // if we were unable even to find a default bundle, we may
- // want to log a warning
- Log.warning("Unable to resolve any message bundle " +
- "[req=" + getURL(req) + ", locale=" + locale +
- ", bundlePath=" + bundlePath +
- ", classLoader=" + loader +
- ", siteBundlePath=" + _siteBundlePath +
+ // if we were unable even to find a default bundle, we may want to log a
+ // warning
+ Log.warning("Unable to resolve any message bundle [req=" + getURL(req) +
+ ", locale=" + locale + ", bundlePath=" + bundlePath +
+ ", classLoader=" + loader + ", siteBundlePath=" + _siteBundlePath +
", siteLoader=" + _siteLoader + "].");
}
}
@@ -341,23 +318,20 @@ public class MessageManager
/** The path, relative to the classpath, to our resource bundles. */
protected String _bundlePath;
- /** The path to the site-specific message bundles, fetched via the
- * site-specific resource loader. */
+ /** The path to the site-specific message bundles, fetched via the site-specific resource
+ * loader. */
protected String _siteBundlePath;
- /** The resource loader with which to fetch our site-specific message
- * bundles. */
+ /** The resource loader with which to fetch our site-specific message bundles. */
protected SiteResourceLoader _siteLoader;
- /** The site identifier we use to determine through which site a
- * request was made. */
+ /** The site identifier we use to determine through which site a request was made. */
protected SiteIdentifier _siteIdent;
/** The locale to use if we are accessed without an HTTP request. */
protected Locale _deflocale;
- /** The attribute name that we use for caching resource bundles in
- * request objects. */
+ /** The attribute name that we use for caching resource bundles in request objects. */
protected static final String BUNDLE_CACHE_PREFIX =
"com.samskivert.servlet.MessageManager:CachedResourceBundle:";
}