freemarker.template

## Class SimpleCollection

- java.lang.Object
- - freemarker.template.WrappingTemplateModel
  - - freemarker.template.SimpleCollection

All Implemented Interfaces:
  TemplateCollectionModel, TemplateModel, Serializable

    public class SimpleCollection
    extends WrappingTemplateModel
    implements TemplateCollectionModel, Serializable

A simple implementation of `TemplateCollectionModel`. It's able to wrap `java.util.Iterator`-s and `java.util.Collection`-s. If you wrap an `Iterator`, the variable can be <#list>-ed only once!

Consider using `SimpleSequence` instead of this class if you want to wrap `Iterator`s. `SimpleSequence` will read all elements of the `Iterator`, and store them in a `List` (this may cause too high resource consumption in some applications), so you can list the variable for unlimited times. Also, if you want to wrap `Collection`s, and then list the resulting variable for many times, `SimpleSequence` may gives better performance, as the wrapping of non-`TemplateModel` objects happens only once.

This class is thread-safe. The returned `TemplateModelIterator`-s are not thread-safe.

See Also:
  Serialized Form

### Field Summary

### Fields inherited from interface freemarker.template.TemplateModel

`NOTHING`

### Constructor Summary

Constructors
Constructor and Description
`SimpleCollection(Collection collection)` Deprecated. Use `SimpleCollection(Collection, ObjectWrapper)`
`SimpleCollection(Collection collection, ObjectWrapper wrapper)`
`SimpleCollection(Iterator iterator)` Deprecated. Use `SimpleCollection(Iterator, ObjectWrapper)`
`SimpleCollection(Iterator iterator, ObjectWrapper wrapper)`

### Method Summary

All Methods Instance Methods Concrete Methods
`TemplateModelIterator` `iterator()` Retrieves a template model iterator that is used to iterate over the elements in this collection.

### Methods inherited from class freemarker.template.WrappingTemplateModel

`getDefaultObjectWrapper, getObjectWrapper, setDefaultObjectWrapper, setObjectWrapper, wrap`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### SimpleCollection

    @Deprecated
    public SimpleCollection(Iterator iterator)

Deprecated. Use `SimpleCollection(Iterator, ObjectWrapper)`

#### SimpleCollection

    @Deprecated
    public SimpleCollection(Collection collection)

Deprecated. Use `SimpleCollection(Collection, ObjectWrapper)`

#### SimpleCollection

    public SimpleCollection(Iterator iterator,
                            ObjectWrapper wrapper)

#### SimpleCollection

    public SimpleCollection(Collection collection,
                            ObjectWrapper wrapper)

### Method Detail

#### iterator

    public TemplateModelIterator iterator()

Retrieves a template model iterator that is used to iterate over the elements in this collection.

When you wrap an `Iterator` and you get `TemplateModelIterator` for multiple times, only on of the returned `TemplateModelIterator` instances can be really used. When you have called a method of a `TemplateModelIterator` instance, all other instance will throw a `TemplateModelException` when you try to call their methods, since the wrapped `Iterator` can't return the first element anymore.

Specified by:
  `iterator` in interface `TemplateCollectionModel`