/** * @version $Id: IPagingDataProvider.java 1839 2014-04-16 02:33:51Z yukihiro-kinjyo $ * * 2011/10/21 17:36:44 * @author kousuke-morishima * * Copyright 2011-2014 TIDAコンソーシアム All Rights Reserved. */ package com.tida_okinawa.corona.ui.editors; import java.util.List; /** * @author kousuke-morishima */ public interface IPagingDataProvider { /** * ページサイズの指定。すべてのレコードを表示するときに指定する。 */ public static final int SHOW_ALL = 0; /** * 現在保持しているデータを返す。 * <p> * refreshがtrueならば、データの表示件数を {@link #getPagingSize()}に調整する<br /> * 削除して表示件数が減っていれば、後ろページからデータを引っ張ってくる。 * </p> * * @param refresh * @return 現在保持しているデータ(直前に {@link #next()}, {@link #prev()}で返したデータ) */ List<Object> current(boolean refresh); /** * @return 次のデータ。{@link #getPagingSize()}より少ない場合は実データの数だけ返す */ List<Object> next(); /** * @return 前のデータ。{@link #getPagingSize()}より少ない場合は実データの数だけ返す */ List<Object> prev(); /** * @return 先頭から {@link #getPagingSize()}件のデータを返す */ List<Object> first(); /** * @return 末尾から {@link #getPagingSize()}件のデータを返す */ List<Object> last(); /** * @return 次のデータが1件以上あればtrue */ boolean hasNext(); /** * @return 前にデータが1件以上あればtrue */ boolean hasPrev(); /** * @return 現在のページサイズを取得する。全レコードを取得・表示するなら {@link #SHOW_ALL}。 */ int getPagingSize(); /** * @return 現在の条件で取得できるデータの総件数を返す。 */ int totalCount(); /** * @return {@link #current(boolean)}の先頭データが全体の何番目か(0 base) */ int currentIndex(); /** * @param data * 追加するデータ * @return 追加したデータ。追加されなかった場合はnull */ Object addData(Object data); /** * @param data * 削除するデータ(現在表示されているデータに限る) */ boolean removeData(Object data); }