import org.apache.struts.util.*;
/**
- * A FreeMarker <code>TemplateMethodModel</code> that provides access to a
+ * A FreeMarker <code>TemplateMethodModel</code> that provides access to a
* Struts <code>MessageResources</code>, for use in Interantionalized templates.
*
- * TODO: we probably want to be doing some memoizing or something with this class*
+ * TODO: we probably want to be doing some memoizing or something with this class*
* @author Kellan <kellan@protest.net>
*
*/
/**
* The perferred locale for this instance of MessageMethod.
*/
- private Locale locale;
+ private Locale locale;
/**
* The MessageResources to query, a single instances shared for
* the lifetime of servlet.
*/
- private MessageResources messages;
+ private MessageResources messages;
- /**
- * Construct a MessageMethod that uses the JVM's default locale.
- *
- * @param message The MessageResources object to query
- */
- public MessageMethodModel(MessageResources messages) {
- this(null, messages);
- }
-
- /**
- * Construct a MessageMethod
- *
- * @param locale a Locale object, persumably initialized
- * from users Accept-Language header field
- *
- * @param message The MessageResources object to query
- */
- public MessageMethodModel(Locale locale, MessageResources messages) {
- this.locale = locale;
- this.messages = messages;
- }
+ /**
+ * Construct a MessageMethod that uses the JVM's default locale.
+ *
+ * @param message The MessageResources object to query
+ */
+ public MessageMethodModel(MessageResources messages) {
+ this(null, messages);
+ }
+ /**
+ * Construct a MessageMethod
+ *
+ * @param locale a Locale object, persumably initialized
+ * from users Accept-Language header field
+ *
+ * @param message The MessageResources object to query
+ */
+ public MessageMethodModel(Locale locale, MessageResources messages) {
+ this.locale = locale;
+ this.messages = messages;
+ }
+
/**
* Takes the first argument as a resource key, then looks up
* TODO: this is an alpha implementation. We should then check if we have
* any keys left over, and attempt to apply MessageFormat.format.
* TODO: error messages should be i18n :)
- *
- * @param arguments List passed in by FM, first arguement is a string used as the key
+ *
+ * @param arguments List passed in by FM, first arguement is a string used as the key
*/
- public TemplateModel exec(List arguments) {
- if ( arguments != null ) {
- String key = (String)arguments.get(0);
- String mesg = messages.getMessage(locale, key);
- if ( mesg == null ) {
- return unknownTagScalar;
- }
- return new SimpleScalar(mesg);
- } else {
- return missingKeyScalar;
- }
- }
-
- // i'm not real clear on how this is used - kellan :)
- public boolean isEmpty() {
- if (messages == null)
- return true;
- else
- return false;
- }
+ public TemplateModel exec(List arguments) {
+ if ( arguments != null ) {
+ String key = (String)arguments.get(0);
+ String mesg = messages.getMessage(locale, key);
+ if ( mesg == null ) {
+ return unknownTagScalar;
+ }
+ return new SimpleScalar(mesg);
+ } else {
+ return missingKeyScalar;
+ }
+ }
+
+ // i'm not real clear on how this is used - kellan :)
+ public boolean isEmpty() {
+ if (messages == null)
+ return true;
+ else
+ return false;
+ }
- private static String errUnknownTag = "TAG NOT FOUND";
- private static String missingKey = "MESSAGE CALL WITHOUT KEY";
- private static SimpleScalar unknownTagScalar =
- new SimpleScalar(errUnknownTag);
- private static SimpleScalar missingKeyScalar =
- new SimpleScalar(missingKey);
+ private static String errUnknownTag = "TAG NOT FOUND";
+ private static String missingKey = "MESSAGE CALL WITHOUT KEY";
+ private static SimpleScalar unknownTagScalar =
+ new SimpleScalar(errUnknownTag);
+ private static SimpleScalar missingKeyScalar =
+ new SimpleScalar(missingKey);
}