org.apache.wicket.markup.repeater
Class ReuseIfModelsEqualStrategy

java.lang.Object
  extended by org.apache.wicket.markup.repeater.ReuseIfModelsEqualStrategy
All Implemented Interfaces:
Serializable, IClusterable, IItemReuseStrategy

public class ReuseIfModelsEqualStrategy
extends Object
implements IItemReuseStrategy

Reuse strategy that will reuse an old item if its model is equal to a model inside the newModels iterator. Useful when state needs to be kept across requests for as long as the item is visible within the view.

Notice that the model and not the model object needs to implement the equals method. Most of the time it is a good idea to forward the equals call to the object, however if a detachable model is used it is often enough to compare object ids models point to ( this saves the model from loading the object).

Author:
Igor Vaynberg (ivaynberg)
See Also:
Serialized Form

Constructor Summary
ReuseIfModelsEqualStrategy()
           
 
Method Summary
static IItemReuseStrategy getInstance()
           
<T> Iterator<Item<T>>
getItems(IItemFactory<T> factory, Iterator<IModel<T>> newModels, Iterator<Item<T>> existingItems)
          Returns an iterator over items that will be added to the view.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReuseIfModelsEqualStrategy

public ReuseIfModelsEqualStrategy()
Method Detail

getInstance

public static IItemReuseStrategy getInstance()
Returns:
static instance

getItems

public <T> Iterator<Item<T>> getItems(IItemFactory<T> factory,
                                      Iterator<IModel<T>> newModels,
                                      Iterator<Item<T>> existingItems)
Description copied from interface: IItemReuseStrategy
Returns an iterator over items that will be added to the view. The iterator needs to return all the items because the old ones are removed prior to the new ones added.

Specified by:
getItems in interface IItemReuseStrategy
Type Parameters:
T - type of Item
Parameters:
factory - implementation of IItemFactory
newModels - iterator over models for items
existingItems - iterator over child items
Returns:
iterator over items that will be added after all the old items are moved.
See Also:
IItemReuseStrategy.getItems(org.apache.wicket.markup.repeater.IItemFactory, java.util.Iterator, java.util.Iterator)


Copyright © 2004-2011 Apache Software Foundation. All Rights Reserved.