freemarker.ext.beans
Class ResourceBundleModel

java.lang.Object
  extended by freemarker.ext.beans.BeanModel
      extended by freemarker.ext.beans.ResourceBundleModel
All Implemented Interfaces:
WrapperTemplateModel, AdapterTemplateModel, TemplateHashModel, TemplateHashModelEx, TemplateMethodModel, TemplateMethodModelEx, TemplateModel

public class ResourceBundleModel
extends BeanModel
implements TemplateMethodModelEx

A hash model that wraps a resource bundle. Makes it convenient to store localized content in the data model. It also acts as a method model that will take a resource key and arbitrary number of arguments and will apply MessageFormat with arguments on the string represented by the key.

Typical usages:

Version:
$Id: ResourceBundleModel.java,v 1.22.2.2 2007/04/02 13:19:37 szegedia Exp $
Author:
Attila Szegedi

Field Summary
 
Fields inherited from class freemarker.ext.beans.BeanModel
object, wrapper
 
Fields inherited from interface freemarker.template.TemplateModel
NOTHING
 
Constructor Summary
ResourceBundleModel(java.util.ResourceBundle bundle, BeansWrapper wrapper)
           
 
Method Summary
 java.lang.Object exec(java.util.List arguments)
          Takes first argument as a resource key, looks up a string in resource bundle with this key, then applies a MessageFormat.format on the string with the rest of the arguments.
 java.lang.String format(java.lang.String key, java.lang.Object[] params)
          Provides direct access to caching format engine from code (instead of from script).
 java.util.ResourceBundle getBundle()
           
protected  TemplateModel invokeGenericGet(java.util.Map keyMap, java.lang.Class clazz, java.lang.String key)
          Overridden to invoke the getObject method of the resource bundle.
 boolean isEmpty()
          Returns true if this bundle contains no objects.
protected  java.util.Set keySet()
          Helper method to support TemplateHashModelEx.
 int size()
           
 
Methods inherited from class freemarker.ext.beans.BeanModel
get, getAdaptedObject, getWrappedObject, hasPlainGetMethod, keys, toString, unwrap, values, wrap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ResourceBundleModel

public ResourceBundleModel(java.util.ResourceBundle bundle,
                           BeansWrapper wrapper)
Method Detail

invokeGenericGet

protected TemplateModel invokeGenericGet(java.util.Map keyMap,
                                         java.lang.Class clazz,
                                         java.lang.String key)
                                  throws TemplateModelException
Overridden to invoke the getObject method of the resource bundle.

Overrides:
invokeGenericGet in class BeanModel
Throws:
TemplateModelException

isEmpty

public boolean isEmpty()
Returns true if this bundle contains no objects.

Specified by:
isEmpty in interface TemplateHashModel
Overrides:
isEmpty in class BeanModel

size

public int size()
Specified by:
size in interface TemplateHashModelEx
Overrides:
size in class BeanModel
Returns:
the number of key/value mappings in the hash.

keySet

protected java.util.Set keySet()
Description copied from class: BeanModel
Helper method to support TemplateHashModelEx. Returns the Set of Strings which are available via the TemplateHashModel interface. Subclasses that override invokeGenericGet to provide additional hash keys should also override this method.

Overrides:
keySet in class BeanModel

exec

public java.lang.Object exec(java.util.List arguments)
                      throws TemplateModelException
Takes first argument as a resource key, looks up a string in resource bundle with this key, then applies a MessageFormat.format on the string with the rest of the arguments. The created MessageFormats are cached for later reuse.

Specified by:
exec in interface TemplateMethodModel
Specified by:
exec in interface TemplateMethodModelEx
Parameters:
arguments - a List of TemplateModel objects containing the values of the arguments passed to the method. If the implementation wishes to operate on POJOs that might be underlying the models, it can use the static utility methods in the DeepUnwrap class to easily obtain them.
Returns:
the return value of the method, or null. If the returned value does not implement TemplateModel, it will be automatically wrapped using the environment object wrapper.
Throws:
TemplateModelException

format

public java.lang.String format(java.lang.String key,
                               java.lang.Object[] params)
                        throws java.util.MissingResourceException
Provides direct access to caching format engine from code (instead of from script).

Throws:
java.util.MissingResourceException

getBundle

public java.util.ResourceBundle getBundle()