Package freemarker.ext.beans
Class ArrayModel
- java.lang.Object
-
- freemarker.ext.beans.BeanModel
-
- freemarker.ext.beans.ArrayModel
-
- All Implemented Interfaces:
WrapperTemplateModel,AdapterTemplateModel,TemplateCollectionModel,TemplateHashModel,TemplateHashModelEx,TemplateModel,TemplateModelWithAPISupport,TemplateSequenceModel
public class ArrayModel extends BeanModel implements TemplateCollectionModel, TemplateSequenceModel
A class that will wrap an arbitrary array into
TemplateCollectionModelandTemplateSequenceModelinterfaces. It supports element retrieval through the array[index] syntax and can be iterated as a list.
-
-
Field Summary
-
Fields inherited from interface freemarker.template.TemplateModel
NOTHING
-
-
Constructor Summary
Constructors Constructor Description ArrayModel(java.lang.Object array, BeansWrapper wrapper)Creates a new model that wraps the specified array object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description TemplateModelget(int index)Retrieves the i-th template model in this sequence.booleanisEmpty()Tells whether the model is empty.TemplateModelIteratoriterator()Retrieves a template model iterator that is used to iterate over the elements in this collection.intsize()-
Methods inherited from class freemarker.ext.beans.BeanModel
get, getAdaptedObject, getAPI, getWrappedObject, hasPlainGetMethod, invokeGenericGet, keys, keySet, toString, unwrap, values, wrap
-
-
-
-
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- theBeansWrapperassociated with this model. Every model has to have an associatedBeansWrapperinstance. 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:TemplateCollectionModelRetrieves a template model iterator that is used to iterate over the elements in this collection.- Specified by:
iteratorin interfaceTemplateCollectionModel
-
get
public TemplateModel get(int index) throws TemplateModelException
Description copied from interface:TemplateSequenceModelRetrieves the i-th template model in this sequence.- Specified by:
getin interfaceTemplateSequenceModel- Returns:
- the item at the specified index, or
nullif the index is out of bounds. Note that anullvalue is interpreted by FreeMarker as "variable does not exist", and accessing a missing variables is usually considered as an error in the FreeMarker Template Language, so the usage of a bad index will not remain hidden, unless the default value for that case was also specified in the template. - Throws:
TemplateModelException
-
size
public int size()
- Specified by:
sizein interfaceTemplateHashModelEx- Specified by:
sizein interfaceTemplateSequenceModel- Overrides:
sizein classBeanModel- Returns:
- the number of key/value mappings in the hash.
-
isEmpty
public boolean isEmpty()
Description copied from class:BeanModelTells whether the model is empty. It is empty if either the wrapped object is null, or it's a Boolean with false value.- Specified by:
isEmptyin interfaceTemplateHashModel- Overrides:
isEmptyin classBeanModel
-
-