Author: mgrigorov
Date: Sun Jul 25 14:21:26 2010
New Revision: 979041

URL: http://svn.apache.org/viewvc?rev=979041&view=rev
Log:
WICKET-2719 Extract lazy AbstractListDataProvider out of ListDataProvider.

Add a default constructor that initialize with an empty list. It becomes useful 
for lazy loading providers that override #getData().
Use #getData() also in #size() to be in sync.


Modified:
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/repeater/data/ListDataProvider.java

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/repeater/data/ListDataProvider.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/repeater/data/ListDataProvider.java?rev=979041&r1=979040&r2=979041&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/repeater/data/ListDataProvider.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/repeater/data/ListDataProvider.java
 Sun Jul 25 14:21:26 2010
@@ -17,6 +17,7 @@
 package org.apache.wicket.markup.repeater.data;
 
 import java.io.Serializable;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 
@@ -25,8 +26,9 @@ import org.apache.wicket.model.Model;
 
 
 /**
- * Allows the use of lists with dataview. The only requirement is that either 
list items must be
- * serializable or model(Object) needs to be overridden to provide the proper 
model implementation.
+ * Allows the use of lists with {...@link DataView}. The only requirement is 
that either list items
+ * must be serializable or model(Object) needs to be overridden to provide the 
proper model
+ * implementation.
  * 
  * @author Igor Vaynberg ( ivaynberg )
  * @param <T>
@@ -40,6 +42,14 @@ public class ListDataProvider<T extends 
        private final List<T> list;
 
        /**
+        * Constructs an empty provider. Useful for lazy loading together with 
{...@linkplain #getData()}
+        */
+       public ListDataProvider()
+       {
+               this(Collections.<T> emptyList());
+       }
+
+       /**
         * 
         * @param list
         *            the list used as dataprovider for the dataview
@@ -84,7 +94,7 @@ public class ListDataProvider<T extends 
         */
        public int size()
        {
-               return list.size();
+               return getData().size();
        }
 
        /**


Reply via email to