freemarker.ext.rhino

Class RhinoScriptableModel

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

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

Version:
$Id: RhinoScriptableModel.java,v 1.4 2005/06/22 10:52:52 ddekany Exp $
Author:
Attila Szegedi

Fields inherited from interface freemarker.template.TemplateBooleanModel

FALSE, TRUE

Fields inherited from interface freemarker.template.TemplateModel

NOTHING

Fields inherited from interface freemarker.template.TemplateScalarModel

EMPTY_STRING

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
getAsBoolean()
Number
getAsNumber()
String
getAsString()
Returns the string representation of this model.
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.

getAsBoolean

public boolean getAsBoolean()
Specified by:
getAsBoolean in interface TemplateBooleanModel
Returns:
whether to interpret this object as true or false in a boolean context

getAsNumber

public Number getAsNumber()
Specified by:
getAsNumber in interface TemplateNumberModel

getAsString

public String getAsString()
Returns the string representation of this model. In general, avoid returning null. In compatibility mode the engine will convert null into empty string, however in normal mode it will throw an exception if you return null from this method.
Specified by:
getAsString in interface TemplateScalarModel

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.