Home » freemarker-2.3.13 » freemarker.ext.beans » [javadoc | source]
freemarker.ext.beans
public class: IteratorModel [javadoc | source]
java.lang.Object
   freemarker.ext.beans.BeanModel
      freemarker.ext.beans.IteratorModel

All Implemented Interfaces:
    TemplateModelIterator, TemplateCollectionModel, AdapterTemplateModel, WrapperTemplateModel, TemplateHashModelEx

A class that adds TemplateModelIterator functionality to the Iterator interface implementers.

It differs from the freemarker.template.SimpleCollection in that it inherits from BeanModel , and therefore you can call methods on it directly, even to the effect of calling iterator.remove() in the template.

Using the model as a collection model is NOT thread-safe, as iterators are inherently not thread-safe. Further, you can iterate over it only once. Attempts to call the #iterator() method after it was already driven to the end once will throw an exception.

Fields inherited from freemarker.ext.beans.BeanModel:
object,  wrapper,  FACTORY
Constructor:
 public IteratorModel(Iterator iterator,
    BeansWrapper wrapper) 
    Creates a new model that wraps the specified iterator object.
    Parameters:
    iterator - the iterator 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.
Method from freemarker.ext.beans.IteratorModel Summary:
getAsBoolean,   hasNext,   iterator,   next
Methods from freemarker.ext.beans.BeanModel:
get,   getAdaptedObject,   getWrappedObject,   hasPlainGetMethod,   invokeGenericGet,   isEmpty,   keySet,   keys,   size,   toString,   unwrap,   values,   wrap
Methods from java.lang.Object:
equals,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from freemarker.ext.beans.IteratorModel Detail:
 public boolean getAsBoolean() 
    Returns Iterator#hasNext() . Therefore, an iterator that has no more element evaluates to false, and an iterator that has further elements evaluates to true.
 public boolean hasNext() 
 public TemplateModelIterator iterator() throws TemplateModelException 
    This allows the iterator to be used in a <foreach> block.
 public TemplateModel next() throws TemplateModelException