freemarker.ext.misc
Class HashKeys

java.lang.Object
  |
  +--freemarker.ext.misc.HashKeys
All Implemented Interfaces:
TemplateMethodModel2, TemplateModel

public final class HashKeys
extends java.lang.Object
implements TemplateMethodModel2

Determines the keyset of the underlying Map object given a TemplateObjectModel. Does this by calling the getAsObject method. If the object is of the expected type, the keyset is returned as a FastList. Otherwise, a TemplateModelException is thrown.

Usage:
From java:

 TemplateModelRoot root = new SimpleHash();

 root.put( "keys", freemarker.ext.misc.HashKeys.getInstance() );

 ...
 

From your FM-Classic template:

 <assign hash1 = { "test1", "value1",
                      "test2", "value2",
                      "test3", "value3" }>
 <assign keyList = keys( hash1 )>
 <p>The keys of hash1 are:</p>
 <p><foreach key in keyList>
 ${key}<br>
 </foreach></p>

 ...
 

Note:
HashKeys is a singleton instance. Use the getInstance() method to retrieve instances of this model.

Since:
1.8
Version:
$Id: HashKeys.java,v 1.1 2003/11/17 13:05:37 run2000 Exp $
Author:
Nicholas Cull

Method Summary
 TemplateModel exec(java.util.List arguments)
          Executes a method call.
static HashKeys getInstance()
          Retrieve a singleton instance of this class.
 boolean isEmpty()
          Is the object empty?
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getInstance

public static HashKeys getInstance()
Retrieve a singleton instance of this class. Since there is no state information held between calls, there is only a need for one instance.
Returns:
an instance of this HashKeys class

isEmpty

public boolean isEmpty()
                throws TemplateModelException
Is the object empty?
Specified by:
isEmpty in interface TemplateModel
Returns:
false, since the method is never empty

exec

public TemplateModel exec(java.util.List arguments)
                   throws TemplateModelException
Executes a method call. Arguments are passed as a List of TemplateModel objects.
Specified by:
exec in interface TemplateMethodModel2
Parameters:
arguments - a List of TemplateModel objects containing the values of the arguments passed to the method.
Returns:
the TemplateModel produced by the method, or null.