Updated Branches:
  refs/heads/master 0852b22cf -> 0f16b908e

WICKET-4535 Inconsistent use of generics in sorting APIs


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/0f16b908
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/0f16b908
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/0f16b908

Branch: refs/heads/master
Commit: 0f16b908e6e0630ba85e6e6e539996487f567cfd
Parents: 98798f7
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Wed May 9 15:57:14 2012 +0300
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Wed May 9 15:57:14 2012 +0300

----------------------------------------------------------------------
 .../devutils/diskstore/browser/BrowserTable.java   |    2 +-
 .../diskstore/browser/PageWindowProvider.java      |    4 +-
 .../examples/repeater/AjaxDataTablePage.java       |    2 +-
 .../repeater/SortableContactDataProvider.java      |    2 +-
 .../examples/spring/annot/web/AnnotPage.java       |    6 +---
 .../spring/annot/web/ProxyDataProvider.java        |    4 +-
 .../wicket/examples/spring/common/ContactDao.java  |    2 +-
 .../spring/common/web/ContactDataProvider.java     |    5 ++-
 .../spring/common/web/ContactDetachableModel.java  |    2 +-
 .../spring/common/web/ContactsDisplayPage.java     |    4 +-
 .../data/table/AjaxFallbackDefaultDataTable.java   |    8 +++--
 .../html/repeater/data/sort/ISortStateLocator.java |    4 +-
 .../html/repeater/data/table/DefaultDataTable.java |    6 +++-
 .../repeater/data/table/ISortableDataProvider.java |    4 ++-
 .../html/repeater/tree/DefaultTableTree.java       |    8 +++--
 .../html/repeater/tree/ISortableTreeProvider.java  |    2 +-
 .../html/repeater/util/SortableDataProvider.java   |   14 +++++----
 .../html/repeater/util/SortableTreeProvider.java   |   21 ++++++++-------
 .../data/table/SortableContactDataProvider.java    |    4 +-
 19 files changed, 57 insertions(+), 47 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/0f16b908/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/BrowserTable.java
----------------------------------------------------------------------
diff --git 
a/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/BrowserTable.java
 
b/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/BrowserTable.java
index 2a1a175..1ddd48b 100644
--- 
a/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/BrowserTable.java
+++ 
b/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/BrowserTable.java
@@ -25,7 +25,7 @@ import 
org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
  * A data table that shows the attributes of the recently stored pages in the 
data store. The last
  * used pages are rendered first.
  */
-class BrowserTable extends DefaultDataTable<PageWindowDescription>
+class BrowserTable extends DefaultDataTable<PageWindowDescription, String>
 {
 
        /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/0f16b908/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/PageWindowProvider.java
----------------------------------------------------------------------
diff --git 
a/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/PageWindowProvider.java
 
b/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/PageWindowProvider.java
index 178fb1c..43ae93a 100644
--- 
a/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/PageWindowProvider.java
+++ 
b/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/PageWindowProvider.java
@@ -31,7 +31,7 @@ import 
org.apache.wicket.pageStore.PageWindowManager.PageWindow;
 /**
  * An {@link IDataProvider} that extracts the information about the stored 
pages
  */
-class PageWindowProvider implements 
ISortableDataProvider<PageWindowDescription>
+class PageWindowProvider implements 
ISortableDataProvider<PageWindowDescription, String>
 {
        private static final int MAX_PAGES_TO_READ = 1000;
 
@@ -95,7 +95,7 @@ class PageWindowProvider implements 
ISortableDataProvider<PageWindowDescription>
         * No sort state for now. The provider is ISortableDataProvider just 
because we use
         * DefaultDataTable
         */
-       public ISortState getSortState()
+       public ISortState<String> getSortState()
        {
                return null;
        }

http://git-wip-us.apache.org/repos/asf/wicket/blob/0f16b908/wicket-examples/src/main/java/org/apache/wicket/examples/repeater/AjaxDataTablePage.java
----------------------------------------------------------------------
diff --git 
a/wicket-examples/src/main/java/org/apache/wicket/examples/repeater/AjaxDataTablePage.java
 
b/wicket-examples/src/main/java/org/apache/wicket/examples/repeater/AjaxDataTablePage.java
index 1abdc65..3a1b3fc 100644
--- 
a/wicket-examples/src/main/java/org/apache/wicket/examples/repeater/AjaxDataTablePage.java
+++ 
b/wicket-examples/src/main/java/org/apache/wicket/examples/repeater/AjaxDataTablePage.java
@@ -58,7 +58,7 @@ public class AjaxDataTablePage extends BasePage
                columns.add(new PropertyColumn<Contact>(new Model<String>("Home 
Phone"), "homePhone"));
                columns.add(new PropertyColumn<Contact>(new Model<String>("Cell 
Phone"), "cellPhone"));
 
-               add(new AjaxFallbackDefaultDataTable<Contact>("table", columns,
+               add(new AjaxFallbackDefaultDataTable<Contact, String>("table", 
columns,
                        new SortableContactDataProvider(), 8));
        }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/0f16b908/wicket-examples/src/main/java/org/apache/wicket/examples/repeater/SortableContactDataProvider.java
----------------------------------------------------------------------
diff --git 
a/wicket-examples/src/main/java/org/apache/wicket/examples/repeater/SortableContactDataProvider.java
 
b/wicket-examples/src/main/java/org/apache/wicket/examples/repeater/SortableContactDataProvider.java
index a98150d..cd2011b 100644
--- 
a/wicket-examples/src/main/java/org/apache/wicket/examples/repeater/SortableContactDataProvider.java
+++ 
b/wicket-examples/src/main/java/org/apache/wicket/examples/repeater/SortableContactDataProvider.java
@@ -29,7 +29,7 @@ import org.apache.wicket.model.IModel;
  * @author igor
  * 
  */
-public class SortableContactDataProvider extends SortableDataProvider<Contact>
+public class SortableContactDataProvider extends SortableDataProvider<Contact, 
String>
 {
        /**
         * constructor

http://git-wip-us.apache.org/repos/asf/wicket/blob/0f16b908/wicket-examples/src/main/java/org/apache/wicket/examples/spring/annot/web/AnnotPage.java
----------------------------------------------------------------------
diff --git 
a/wicket-examples/src/main/java/org/apache/wicket/examples/spring/annot/web/AnnotPage.java
 
b/wicket-examples/src/main/java/org/apache/wicket/examples/spring/annot/web/AnnotPage.java
index 0bcc3b8..b894f54 100644
--- 
a/wicket-examples/src/main/java/org/apache/wicket/examples/spring/annot/web/AnnotPage.java
+++ 
b/wicket-examples/src/main/java/org/apache/wicket/examples/spring/annot/web/AnnotPage.java
@@ -17,6 +17,7 @@
 package org.apache.wicket.examples.spring.annot.web;
 
 import org.apache.wicket.examples.spring.common.ContactDao;
+import org.apache.wicket.examples.spring.common.web.ContactDataProvider;
 import org.apache.wicket.examples.spring.common.web.ContactsDisplayPage;
 import 
org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
 import org.apache.wicket.spring.injection.annot.SpringBean;
@@ -38,11 +39,8 @@ public class AnnotPage extends ContactsDisplayPage
 
        }
 
-       /**
-        * @see 
org.apache.wicket.spring.common.web.ContactsDisplayPage#getDataProvider()
-        */
        @Override
-       protected SortableDataProvider<?> getDataProvider()
+       protected ContactDataProvider getDataProvider()
        {
                return new ProxyDataProvider(dao);
        }

http://git-wip-us.apache.org/repos/asf/wicket/blob/0f16b908/wicket-examples/src/main/java/org/apache/wicket/examples/spring/annot/web/ProxyDataProvider.java
----------------------------------------------------------------------
diff --git 
a/wicket-examples/src/main/java/org/apache/wicket/examples/spring/annot/web/ProxyDataProvider.java
 
b/wicket-examples/src/main/java/org/apache/wicket/examples/spring/annot/web/ProxyDataProvider.java
index 01115ee..7625450 100644
--- 
a/wicket-examples/src/main/java/org/apache/wicket/examples/spring/annot/web/ProxyDataProvider.java
+++ 
b/wicket-examples/src/main/java/org/apache/wicket/examples/spring/annot/web/ProxyDataProvider.java
@@ -36,9 +36,9 @@ public class ProxyDataProvider extends ContactDataProvider
                return dao;
        }
 
-       public IModel model(Object object)
+       public IModel<Contact> model(Contact contact)
        {
-               return new ProxyModel((Contact)object, dao);
+               return new ProxyModel(contact, dao);
        }
 
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/0f16b908/wicket-examples/src/main/java/org/apache/wicket/examples/spring/common/ContactDao.java
----------------------------------------------------------------------
diff --git 
a/wicket-examples/src/main/java/org/apache/wicket/examples/spring/common/ContactDao.java
 
b/wicket-examples/src/main/java/org/apache/wicket/examples/spring/common/ContactDao.java
index 57a5ec1..793c314 100644
--- 
a/wicket-examples/src/main/java/org/apache/wicket/examples/spring/common/ContactDao.java
+++ 
b/wicket-examples/src/main/java/org/apache/wicket/examples/spring/common/ContactDao.java
@@ -36,7 +36,7 @@ public interface ContactDao
         *            sorting and paging info
         * @return iterator over contacts
         */
-       Iterator find(QueryParam qp);
+       Iterator<Contact> find(QueryParam qp);
 
        /**
         * @param id

http://git-wip-us.apache.org/repos/asf/wicket/blob/0f16b908/wicket-examples/src/main/java/org/apache/wicket/examples/spring/common/web/ContactDataProvider.java
----------------------------------------------------------------------
diff --git 
a/wicket-examples/src/main/java/org/apache/wicket/examples/spring/common/web/ContactDataProvider.java
 
b/wicket-examples/src/main/java/org/apache/wicket/examples/spring/common/web/ContactDataProvider.java
index fb933e1..b9725d0 100644
--- 
a/wicket-examples/src/main/java/org/apache/wicket/examples/spring/common/web/ContactDataProvider.java
+++ 
b/wicket-examples/src/main/java/org/apache/wicket/examples/spring/common/web/ContactDataProvider.java
@@ -18,6 +18,7 @@ package org.apache.wicket.examples.spring.common.web;
 
 import java.util.Iterator;
 
+import org.apache.wicket.examples.spring.common.Contact;
 import org.apache.wicket.examples.spring.common.ContactDao;
 import org.apache.wicket.examples.spring.common.QueryParam;
 import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder;
@@ -30,7 +31,7 @@ import 
org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvid
  * @author Igor Vaynberg (ivaynerg)
  * 
  */
-public abstract class ContactDataProvider extends SortableDataProvider
+public abstract class ContactDataProvider extends 
SortableDataProvider<Contact, String>
 {
 
        public ContactDataProvider()
@@ -40,7 +41,7 @@ public abstract class ContactDataProvider extends 
SortableDataProvider
 
        protected abstract ContactDao getContactDao();
 
-       public final Iterator iterator(long first, long count)
+       public final Iterator<Contact> iterator(long first, long count)
        {
                QueryParam qp = new QueryParam(first, count, getSort());
                return getContactDao().find(qp);

http://git-wip-us.apache.org/repos/asf/wicket/blob/0f16b908/wicket-examples/src/main/java/org/apache/wicket/examples/spring/common/web/ContactDetachableModel.java
----------------------------------------------------------------------
diff --git 
a/wicket-examples/src/main/java/org/apache/wicket/examples/spring/common/web/ContactDetachableModel.java
 
b/wicket-examples/src/main/java/org/apache/wicket/examples/spring/common/web/ContactDetachableModel.java
index 6129a43..50b133c 100644
--- 
a/wicket-examples/src/main/java/org/apache/wicket/examples/spring/common/web/ContactDetachableModel.java
+++ 
b/wicket-examples/src/main/java/org/apache/wicket/examples/spring/common/web/ContactDetachableModel.java
@@ -27,7 +27,7 @@ import org.apache.wicket.model.LoadableDetachableModel;
  * @author Igor Vaynberg (ivaynberg)
  * 
  */
-public abstract class ContactDetachableModel extends LoadableDetachableModel
+public abstract class ContactDetachableModel extends 
LoadableDetachableModel<Contact>
 {
 
        private long id;

http://git-wip-us.apache.org/repos/asf/wicket/blob/0f16b908/wicket-examples/src/main/java/org/apache/wicket/examples/spring/common/web/ContactsDisplayPage.java
----------------------------------------------------------------------
diff --git 
a/wicket-examples/src/main/java/org/apache/wicket/examples/spring/common/web/ContactsDisplayPage.java
 
b/wicket-examples/src/main/java/org/apache/wicket/examples/spring/common/web/ContactsDisplayPage.java
index 0f6f3bc..cde2b3a 100644
--- 
a/wicket-examples/src/main/java/org/apache/wicket/examples/spring/common/web/ContactsDisplayPage.java
+++ 
b/wicket-examples/src/main/java/org/apache/wicket/examples/spring/common/web/ContactsDisplayPage.java
@@ -18,10 +18,10 @@ package org.apache.wicket.examples.spring.common.web;
 
 import java.util.Arrays;
 
+import org.apache.wicket.examples.spring.common.Contact;
 import 
org.apache.wicket.extensions.markup.html.repeater.data.table.DefaultDataTable;
 import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
 import 
org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
-import 
org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
 import org.apache.wicket.model.Model;
 
 
@@ -47,5 +47,5 @@ public abstract class ContactsDisplayPage extends BasePage
                add(new DefaultDataTable("contacts", Arrays.asList(cols), 
getDataProvider(), 5));
        }
 
-       protected abstract SortableDataProvider<?> getDataProvider();
+       protected abstract ContactDataProvider getDataProvider();
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/0f16b908/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/table/AjaxFallbackDefaultDataTable.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/table/AjaxFallbackDefaultDataTable.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/table/AjaxFallbackDefaultDataTable.java
index 74892e9..c572483 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/table/AjaxFallbackDefaultDataTable.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/table/AjaxFallbackDefaultDataTable.java
@@ -44,10 +44,12 @@ import org.apache.wicket.model.IModel;
  * @author Igor Vaynberg ( ivaynberg )
  * 
  * @param <T>
- *            The model object type
+ *     The model object type
+ * @param <S>
+ *     the type of the sorting parameter
  * 
  */
-public class AjaxFallbackDefaultDataTable<T> extends DataTable<T>
+public class AjaxFallbackDefaultDataTable<T, S> extends DataTable<T>
 {
        private static final long serialVersionUID = 1L;
 
@@ -64,7 +66,7 @@ public class AjaxFallbackDefaultDataTable<T> extends 
DataTable<T>
         *            number of rows per page
         */
        public AjaxFallbackDefaultDataTable(final String id, final 
List<IColumn<T>> columns,
-               final ISortableDataProvider<T> dataProvider, final int 
rowsPerPage)
+               final ISortableDataProvider<T, S> dataProvider, final int 
rowsPerPage)
        {
                super(id, columns, dataProvider, rowsPerPage);
                setOutputMarkupId(true);

http://git-wip-us.apache.org/repos/asf/wicket/blob/0f16b908/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/ISortStateLocator.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/ISortStateLocator.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/ISortStateLocator.java
index a185515..1180591 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/ISortStateLocator.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/ISortStateLocator.java
@@ -26,10 +26,10 @@ import org.apache.wicket.util.io.IClusterable;
  * @author Igor Vaynberg (ivaynberg)
  * 
  */
-public interface ISortStateLocator extends IClusterable
+public interface ISortStateLocator<T> extends IClusterable
 {
        /**
         * @return ISortState object
         */
-       <T> ISortState<T> getSortState();
+       ISortState<T> getSortState();
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/0f16b908/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DefaultDataTable.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DefaultDataTable.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DefaultDataTable.java
index 6adfbc8..6f60000 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DefaultDataTable.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DefaultDataTable.java
@@ -38,8 +38,10 @@ import org.apache.wicket.model.IModel;
  * @author Igor Vaynberg ( ivaynberg )
  * @param <T>
  *            The model object type
+ * @param <S>
+ *      the type of the sorting parameter
  */
-public class DefaultDataTable<T> extends DataTable<T>
+public class DefaultDataTable<T, S> extends DataTable<T>
 {
        private static final long serialVersionUID = 1L;
 
@@ -56,7 +58,7 @@ public class DefaultDataTable<T> extends DataTable<T>
         *            number of rows per page
         */
        public DefaultDataTable(final String id, final List<IColumn<T>> columns,
-               final ISortableDataProvider<T> dataProvider, final int 
rowsPerPage)
+               final ISortableDataProvider<T, S> dataProvider, final int 
rowsPerPage)
        {
                super(id, columns, dataProvider, rowsPerPage);
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/0f16b908/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/ISortableDataProvider.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/ISortableDataProvider.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/ISortableDataProvider.java
index b62e2cc..c8c5414 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/ISortableDataProvider.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/ISortableDataProvider.java
@@ -25,9 +25,11 @@ import org.apache.wicket.markup.repeater.data.IDataProvider;
  * 
  * @author Igor Vaynberg (ivaynberg at apache dot org)
  * @param <T>
+ * @param <S>
+ *     the type of the sorting parameter
  * 
  */
-public interface ISortableDataProvider<T> extends IDataProvider<T>, 
ISortStateLocator
+public interface ISortableDataProvider<T, S> extends IDataProvider<T>, 
ISortStateLocator<S>
 {
 
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/0f16b908/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/DefaultTableTree.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/DefaultTableTree.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/DefaultTableTree.java
index 0b5611c..42299b1 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/DefaultTableTree.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/DefaultTableTree.java
@@ -37,9 +37,11 @@ import org.apache.wicket.model.IModel;
  * 
  * @param <T>
  *            The node type
+ * @param <S>
+ *     the type of the sorting parameter
  * @author svenmeier
  */
-public class DefaultTableTree<T> extends TableTree<T>
+public class DefaultTableTree<T, S> extends TableTree<T>
 {
 
        private static final long serialVersionUID = 1L;
@@ -56,7 +58,7 @@ public class DefaultTableTree<T> extends TableTree<T>
         * @param rowsPerPage
         *            rows to show on each page
         */
-       public DefaultTableTree(String id, List<IColumn<T>> columns, 
ISortableTreeProvider<T> provider,
+       public DefaultTableTree(String id, List<IColumn<T>> columns, 
ISortableTreeProvider<T, S> provider,
                int rowsPerPage)
        {
                this(id, columns, provider, rowsPerPage, null);
@@ -76,7 +78,7 @@ public class DefaultTableTree<T> extends TableTree<T>
         * @param state
         *            expansion state
         */
-       public DefaultTableTree(String id, List<IColumn<T>> columns, 
ISortableTreeProvider<T> provider,
+       public DefaultTableTree(String id, List<IColumn<T>> columns, 
ISortableTreeProvider<T, S> provider,
                int rowsPerPage, IModel<Set<T>> state)
        {
                super(id, columns, provider, rowsPerPage, state);

http://git-wip-us.apache.org/repos/asf/wicket/blob/0f16b908/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/ISortableTreeProvider.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/ISortableTreeProvider.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/ISortableTreeProvider.java
index e0b5095..5a45a01 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/ISortableTreeProvider.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/ISortableTreeProvider.java
@@ -25,6 +25,6 @@ import 
org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortStateLoc
  * @param <T>
  *            node type
  */
-public interface ISortableTreeProvider<T> extends ITreeProvider<T>, 
ISortStateLocator
+public interface ISortableTreeProvider<T, S> extends ITreeProvider<T>, 
ISortStateLocator<S>
 {
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/0f16b908/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/SortableDataProvider.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/SortableDataProvider.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/SortableDataProvider.java
index 7a21507..5d83638 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/SortableDataProvider.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/SortableDataProvider.java
@@ -30,19 +30,21 @@ import 
org.apache.wicket.extensions.markup.html.repeater.data.table.ISortableDat
  * 
  * @author Igor Vaynberg (ivaynberg at apache dot org)
  * @param <T>
+ * @param <S>
+ *     the type of the sorting parameter
  */
-public abstract class SortableDataProvider<T> implements 
ISortableDataProvider<T>
+public abstract class SortableDataProvider<T, S> implements 
ISortableDataProvider<T, S>
 {
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
-       private SingleSortState state = new SingleSortState();
+       private SingleSortState<S> state = new SingleSortState<S>();
 
        /**
         * @see ISortableDataProvider#getSortState()
         */
-       public final ISortState getSortState()
+       public final ISortState<S> getSortState()
        {
                return state;
        }
@@ -52,7 +54,7 @@ public abstract class SortableDataProvider<T> implements 
ISortableDataProvider<T
         * 
         * @return current sort state
         */
-       public SortParam getSort()
+       public SortParam<S> getSort()
        {
                return state.getSort();
        }
@@ -63,7 +65,7 @@ public abstract class SortableDataProvider<T> implements 
ISortableDataProvider<T
         * @param param
         *            parameter containing new sorting information
         */
-       public void setSort(final SortParam param)
+       public void setSort(final SortParam<S> param)
        {
                state.setSort(param);
        }
@@ -76,7 +78,7 @@ public abstract class SortableDataProvider<T> implements 
ISortableDataProvider<T
         * @param order
         *            sort order
         */
-       public void setSort(final String property, final SortOrder order)
+       public void setSort(final S property, final SortOrder order)
        {
                state.setPropertySortOrder(property, order);
        }

http://git-wip-us.apache.org/repos/asf/wicket/blob/0f16b908/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/SortableTreeProvider.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/SortableTreeProvider.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/SortableTreeProvider.java
index 0093dd6..94145c0 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/SortableTreeProvider.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/SortableTreeProvider.java
@@ -27,27 +27,27 @@ import 
org.apache.wicket.extensions.markup.html.repeater.tree.ISortableTreeProvi
  * @author svenmeier
  * @param <T>
  */
-public abstract class SortableTreeProvider<T> implements 
ISortableTreeProvider<T>
+public abstract class SortableTreeProvider<T, S> implements 
ISortableTreeProvider<T, S>
 {
        private static final long serialVersionUID = 1L;
 
-       private SingleSortState<String> state = new SingleSortState<String>();
+       private SingleSortState<S> state = new SingleSortState<S>();
 
        /**
         * @see ISortableDataProvider#getSortState()
         */
        @SuppressWarnings("unchecked")
-       public final <S> ISortState<S> getSortState()
+       public final ISortState<S> getSortState()
        {
                return (ISortState<S>)state;
        }
 
        /**
-        * @see 
ISortableDataProvider#setSortState(org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortState)
+        * @see 
org.apache.wicket.extensions.markup.html.repeater.data.table.ISortableDataProvider#getSortState()
         * @param state
         */
        @SuppressWarnings("unchecked")
-       public final void setSortState(ISortState<?> state)
+       public final void setSortState(ISortState<S> state)
        {
                if (!(state instanceof SingleSortState))
                {
@@ -55,7 +55,7 @@ public abstract class SortableTreeProvider<T> implements 
ISortableTreeProvider<T
                                "argument [state] must be an instance of 
SingleSortState, but it is [" +
                                        state.getClass().getName() + "]:[" + 
state.toString() + "]");
                }
-               this.state = (SingleSortState<String>)state;
+               this.state = (SingleSortState<S>)state;
        }
 
        /**
@@ -63,7 +63,7 @@ public abstract class SortableTreeProvider<T> implements 
ISortableTreeProvider<T
         * 
         * @return current sort state
         */
-       public SortParam<String> getSort()
+       public SortParam<S> getSort()
        {
                return state.getSort();
        }
@@ -74,7 +74,7 @@ public abstract class SortableTreeProvider<T> implements 
ISortableTreeProvider<T
         * @param param
         *            parameter containing new sorting information
         */
-       public void setSort(SortParam<String> param)
+       public void setSort(SortParam<S> param)
        {
                state.setSort(param);
        }
@@ -87,14 +87,15 @@ public abstract class SortableTreeProvider<T> implements 
ISortableTreeProvider<T
         * @param ascending
         *            sort direction
         */
-       public void setSort(String property, boolean ascending)
+       public void setSort(S property, boolean ascending)
        {
-               setSort(new SortParam<String>(property, ascending));
+               setSort(new SortParam<S>(property, ascending));
        }
 
        /**
         * @see ISortableDataProvider#detach()
         */
+       @Override
        public void detach()
        {
        }

http://git-wip-us.apache.org/repos/asf/wicket/blob/0f16b908/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/repeater/data/table/SortableContactDataProvider.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/repeater/data/table/SortableContactDataProvider.java
 
b/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/repeater/data/table/SortableContactDataProvider.java
index e7c313d..07a200c 100644
--- 
a/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/repeater/data/table/SortableContactDataProvider.java
+++ 
b/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/repeater/data/table/SortableContactDataProvider.java
@@ -29,7 +29,7 @@ import org.apache.wicket.model.IModel;
  * @author igor
  * 
  */
-public class SortableContactDataProvider extends SortableDataProvider<Contact>
+public class SortableContactDataProvider extends SortableDataProvider<Contact, 
String>
 {
        private static final long serialVersionUID = 1L;
 
@@ -48,7 +48,7 @@ public class SortableContactDataProvider extends 
SortableDataProvider<Contact>
        }
 
        /**
-        * @see 
org.apache.wicket.markup.repeater.data.IDataProvider#iterator(int, int)
+        * @see 
org.apache.wicket.markup.repeater.data.IDataProvider#iterator(long, long)
         */
        public Iterator<Contact> iterator(final long first, final long count)
        {

Reply via email to