freemarker.ext.rhino

Class RhinoScriptableModel

Implemented Interfaces:
AdapterTemplateModel, TemplateHashModel, TemplateHashModelEx, TemplateModel, TemplateSequenceModel
Known Direct Subclasses:
RhinoFunctionModel

public class RhinoScriptableModel
extends java.lang.Object
implements TemplateHashModelEx, TemplateSequenceModel, AdapterTemplateModel

Experimental: no backward compatibility guarantees; any feedback is highly welcome!
Version:
$Id: RhinoScriptableModel.java,v 1.4 2005/06/22 10:52:52 ddekany Exp $
Author:
Attila Szegedi

Fields inherited from interface freemarker.template.TemplateModel

NOTHING

Constructor Summary

RhinoScriptableModel(Scriptable scriptable, BeansWrapper wrapper)

Method Summary

TemplateModel
get(String key)
TemplateModel
get(int index)
Object
getAdaptedObject(Class hint)
Retrieves the underlying object, or some other object semantically equivalent to its value narrowed by the class hint.
boolean
isEmpty()
TemplateCollectionModel
keys()
int
size()
TemplateCollectionModel
values()

Constructor Details

RhinoScriptableModel

public RhinoScriptableModel(Scriptable scriptable,
                            BeansWrapper wrapper)

Method Details

get

public TemplateModel get(String key)
            throws TemplateModelException
Specified by:
get in interface TemplateHashModel

get

public TemplateModel get(int index)
            throws TemplateModelException
Specified by:
get in interface TemplateSequenceModel

getAdaptedObject

public Object getAdaptedObject(Class hint)
Retrieves the underlying object, or some other object semantically equivalent to its value narrowed by the class hint.
Specified by:
getAdaptedObject in interface AdapterTemplateModel
Parameters:
hint - the desired class of the returned value. An implementation should make reasonable effort to retrieve an object of the requested class, but if that is impossible, it must at least return the underlying object as-is. As a minimal requirement, an implementation must always return the exact underlying object when hint.isInstance(underlyingObject) == true holds. When called with java.lang.Object.class, it should return a generic Java object (i.e. if the model is wrapping a scripting lanugage object that is further wrapping a Java object, the deepest underlying Java object should be returned).
Returns:
the underlying object, or its value accommodated for the hint class.

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface TemplateHashModel

keys

public TemplateCollectionModel keys()
            throws TemplateModelException
Specified by:
keys in interface TemplateHashModelEx
Returns:
a collection containing the keys in the hash. Every element of the returned collection must implement the TemplateScalarModel (as the keys of hashes are always strings).

size

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

values

public TemplateCollectionModel values()
            throws TemplateModelException
Specified by:
values in interface TemplateHashModelEx
Returns:
a collection containing the values in the hash.