freemarker.ext.beans
Class ArrayModel

java.lang.Object
  extended byfreemarker.ext.beans.BeanModel
      extended byfreemarker.ext.beans.ArrayModel
All Implemented Interfaces:
TemplateCollectionModel, TemplateHashModel, TemplateHashModelEx, TemplateModel, TemplateSequenceModel, WrapperTemplateModel

public class ArrayModel
extends BeanModel
implements TemplateCollectionModel, TemplateSequenceModel

A class that will wrap an arbitrary array into TemplateCollectionModel and TemplateSequenceModel interfaces. It supports element retrieval through the array[index] syntax and can be iterated as a list.

Version:
$Id: ArrayModel.java,v 1.26 2003/06/03 13:21:32 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
ArrayModel(java.lang.Object array, BeansWrapper wrapper)
          Creates a new model that wraps the specified array object.
 
Method Summary
 TemplateModel get(int index)
          Retrieves the i-th template model in this sequence.
 boolean isEmpty()
          Tells whether the model is empty.
 TemplateModelIterator iterator()
          Retrieves a template model iterator that is used to iterate over the elements in this collection.
 int size()
           
 
Methods inherited from class freemarker.ext.beans.BeanModel
get, getWrappedObject, invokeGenericGet, keys, keySet, toString, unwrap, values, wrap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ArrayModel

public ArrayModel(java.lang.Object array,
                  BeansWrapper wrapper)
Creates a new model that wraps the specified array object.

Parameters:
array - the array object to wrap into a model.
wrapper - the BeansWrapper associated with this model. Every model has to have an associated BeansWrapper instance. The model gains many attributes from its wrapper, including the caching behavior, method exposure level, method-over-item shadowing policy etc.
Throws:
java.lang.IllegalArgumentException - if the passed object is not a Java array.
Method Detail

iterator

public TemplateModelIterator iterator()
Description copied from interface: TemplateCollectionModel
Retrieves a template model iterator that is used to iterate over the elements in this collection.

Specified by:
iterator in interface TemplateCollectionModel

get

public TemplateModel get(int index)
                  throws TemplateModelException
Description copied from interface: TemplateSequenceModel
Retrieves the i-th template model in this sequence.

Specified by:
get in interface TemplateSequenceModel
Throws:
TemplateModelException

size

public int size()
Specified by:
size in interface TemplateSequenceModel
Overrides:
size in class BeanModel

isEmpty

public boolean isEmpty()
Description copied from class: BeanModel
Tells whether the model is empty. It is empty if either the wrapped object is null, or it is a Boolean with false value.

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