#region Apache Notice
/*****************************************************************************
* $Header: $
* $Revision$
* $Date$
*
* iBATIS.NET Data Mapper
* Copyright (C) 2004 - Gilles Bayon
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
********************************************************************************/
#endregion
using System;
using System.Collections;
namespace IBatisNet.Common.Pagination
{
///
/// Summary description for IPaginatedList.
///
public interface IPaginatedList : IList, IEnumerator
{
///
/// The maximum number of items per page.
///
int PageSize
{
get;
}
///
/// Is the current page the first page ?
/// True if the current page is the first page or if only
/// a single page exists.
///
bool IsFirstPage
{
get;
}
///
/// Is the current page a middle page (i.e. not first or last) ?
/// Return True if the current page is not the first or last page,
/// and more than one page exists (always returns false if only a
/// single page exists).
///
bool IsMiddlePage
{
get;
}
///
/// Is the current page the last page ?
/// Return True if the current page is the last page or if only
/// a single page exists.
///
bool IsLastPage
{
get;
}
///
/// Is a page available after the current page ?
/// Return True if the next page is available
///
bool IsNextPageAvailable
{
get;
}
///
/// Is a page available before the current page ?
/// Return True if the previous page is available
///
bool IsPreviousPageAvailable
{
get;
}
///
/// Moves to the next page after the current page. If the current
/// page is the last page, wrap to the first page.
///
///
bool NextPage();
///
/// Moves to the page before the current page. If the current
/// page is the first page, wrap to the last page.
///
///
bool PreviousPage();
///
/// Moves to a specified page. If the specified
/// page is beyond the last page, wrap to the first page.
/// If the specified page is before the first page, wrap
/// to the last page.
///
/// The index of the specified page.
void GotoPage(int pageIndex);
///
/// Returns the current page index, which is a zero based integer.
/// All paginated list implementations should know what index they are
/// on, even if they don't know the ultimate boundaries (min/max)
///
int PageIndex
{
get;
}
}
}