freemarker.template
Class FastListIterator<T extends TemplateModel>

java.lang.Object
  extended by freemarker.template.FastListIterator<T>
All Implemented Interfaces:
TemplateHashModel, TemplateIteratorModel, TemplateModel, TemplateWriteableIteratorModel

public class FastListIterator<T extends TemplateModel>
extends java.lang.Object
implements TemplateWriteableIteratorModel, TemplateHashModel

Iterator class for FastList where the underlying Collection is a List. Note that this model is not serializable, to match the semantics of the underlying java.util.ListIterator.

Since:
1.8
Version:
$Id: FastListIterator.java 1067 2011-06-06 10:55:28Z run2000 $
See Also:
FastList

Field Summary
protected  int index
          The index of the next item to be returned.
protected  java.util.ListIterator<T> iterator
          The iterator being wrapped by this model.
 
Constructor Summary
FastListIterator(java.util.List<T> list)
          Constructor that takes a java.util.List implementation to iterator over.
 
Method Summary
 TemplateModel get(java.lang.String key)
          Gets a TemplateModel from the hash.
 boolean hasNext()
          Do we have another item in the list?
 boolean isEmpty()
          Is the object empty?
 TemplateModel next()
          Retrieve the next item in the list.
 void set(TemplateModel model)
          Inserts the specified element into the list.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

iterator

protected final java.util.ListIterator<T extends TemplateModel> iterator
The iterator being wrapped by this model.


index

protected int index
The index of the next item to be returned.

Constructor Detail

FastListIterator

public FastListIterator(java.util.List<T> list)
Constructor that takes a java.util.List implementation to iterator over.

Throws:
java.lang.NullPointerException - the collection is null
Method Detail

hasNext

public boolean hasNext()
                throws TemplateModelException
Do we have another item in the list?

Specified by:
hasNext in interface TemplateIteratorModel
Returns:
true if there are more items to be iterated over, otherwise false
Throws:
TemplateModelException - there was a problem determining the next item in the list

next

public TemplateModel next()
                   throws TemplateModelException
Retrieve the next item in the list. The item will be a TemplateModel containing the underlying value.

Specified by:
next in interface TemplateIteratorModel
Returns:
the next item in the list
Throws:
TemplateModelException - the next item couldn't be retrieved, or we're at the end of the list

set

public void set(TemplateModel model)
         throws TemplateModelException
Inserts the specified element into the list. The element is inserted immediately before the next element that would be returned by next, if any.

Specified by:
set in interface TemplateWriteableIteratorModel
Parameters:
model - the model to insert into the list
Throws:
TemplateModelException - the model could not be assigned to the list

get

public TemplateModel get(java.lang.String key)
                  throws TemplateModelException
Gets a TemplateModel from the hash. The one key is "index", which returns the current index of the iterator.

Specified by:
get in interface TemplateHashModel
Parameters:
key - the name by which the TemplateModel is identified in the template.
Returns:
the TemplateModel referred to by the key, or null if not found.
Throws:
TemplateModelException - there was a problem getting the value for the given key

isEmpty

public boolean isEmpty()
                throws TemplateModelException
Is the object empty?

Specified by:
isEmpty in interface TemplateModel
Returns:
true if this object is empty, otherwise false
Throws:
TemplateModelException