#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; } } }