freemarker.template
Class SimpleHash
- Serializable, TemplateHashModel, TemplateHashModelEx, TemplateModel
A simple implementation of the
TemplateHashModelEx
interface, using an underlying
Map
or
SortedMap
.
This class is thread-safe if you don't call the
put or
remove methods
after you have made the object available for multiple threads.
Note:
As of 2.0, this class is unsynchronized by default.
To obtain a synchronized wrapper, call the
synchronizedWrapper()
method.
$Id: SimpleHash.java,v 1.72.2.2 2006/02/26 18:26:18 revusky Exp $
SimpleHash
public SimpleHash()
SimpleHash
public SimpleHash(Map map)
map
- The Map to use for the key/value pairs. It makes a copy for
internal use. If the map implements the SortedMap
interface, the
internal copy will be a TreeMap
, otherwise it will be a
HashMap
.
SimpleHash
public SimpleHash(Map map,
ObjectWrapper wrapper)
map
- The Map to use for the key/value pairs. It makes a copy for
internal use. If the map implements the SortedMap
interface, the
internal copy will be a TreeMap
, otherwise it will be awrapper
- The object wrapper to use to wrap objects into
TemplateModel
instances. If null, the default wrapper set in
WrappingTemplateModel.setDefaultObjectWrapper(ObjectWrapper)
is
used.
SimpleHash
public SimpleHash(ObjectWrapper wrapper)
Creates an empty simple hash using the specified object wrapper.
copyMap
protected Map copyMap(Map map)
put
public void put(String key,
Object obj)
Adds a key-value entry to the map.
key
- the name by which the object is
identified in the template.obj
- the object to store.
put
public void put(String key,
boolean b)
Puts a boolean in the map
key
- the name by which the resulting TemplateModel
is identified in the template.b
- the boolean to store.
putAll
public void putAll(Map m)
Adds all the key/value entries in the map
m
- the map with the entries to add, the keys are assumed to be strings.
remove
public void remove(String key)
Removes the given key from the underlying map.
key
- the key to be removed
synchronizedWrapper
public SimpleHash synchronizedWrapper()
toMap
public Map toMap()
throws TemplateModelException
Note that this method creates and returns a deep-copy of the underlying hash used
internally. This could be a gotcha for some people
at some point who want to alter something in the data model,
but we should maintain our immutability semantics (at least using default SimpleXXX wrappers)
for the data model. It will recursively unwrap the stuff in the underlying container.
toString
public String toString()
Convenience method for returning the String value of the
underlying map.