/**
* Licensed under the Artistic License; you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://displaytag.sourceforge.net/license.html
*
* THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
package org.displaytag.pagination;
import java.util.ArrayList;
import java.util.List;
import org.displaytag.properties.SortOrderEnum;
import org.displaytag.test.NumberedItem;
/**
* @author Fabrizio Giustina
* @version $Revision$ ($Author$)
*/
public class SimplePaginatedList implements PaginatedList
{
/**
* wrapped list
*/
private List<Object> fullList = new ArrayList<Object>();
/**
* Number of objects per page.
*/
private int objectsPerPage;
/**
* Current page (starting from 1)
*/
private int currentPage;
/**
* Instantiates a new paginated list.
*/
public SimplePaginatedList(int objectsPerPage, int currentPage)
{
for (int j = 1; j < 11; j++)
{
fullList.add(new NumberedItem(j));
}
this.objectsPerPage = objectsPerPage;
this.currentPage = currentPage;
}
/**
* @see org.displaytag.pagination.PaginatedList#getList()
*/
public List<Object> getList()
{
int startOffset = objectsPerPage * (currentPage - 1);
List<Object> sublist = fullList.subList(startOffset, Math.min(fullList.size(), startOffset + objectsPerPage));
return sublist;
}
/**
* @see org.displaytag.pagination.PaginatedList#getPageNumber()
*/
public int getPageNumber()
{
return currentPage;
}
/**
* @see org.displaytag.pagination.PaginatedList#getObjectsPerPage()
*/
public int getObjectsPerPage()
{
return objectsPerPage;
}
/**
* @see org.displaytag.pagination.PaginatedList#getFullListSize()
*/
public int getFullListSize()
{
return fullList.size();
}
/**
* @see org.displaytag.pagination.PaginatedList#getSortCriterion()
*/
public String getSortCriterion()
{
return "number";
}
/**
* @see org.displaytag.pagination.PaginatedList#getSortDirection()
*/
public SortOrderEnum getSortDirection()
{
return SortOrderEnum.DESCENDING;
}
/**
* @see org.displaytag.pagination.PaginatedList#getSearchId()
*/
public String getSearchId()
{
return Integer.toHexString(objectsPerPage * 10000 + currentPage);
}
}