/**
* @version $Id: ICoronaDic.java 1839 2014-04-16 02:33:51Z yukihiro-kinjyo $
*
* 2011/08/03
* @author shingo-takahashi
*
* Copyright 2011-2014 TIDAコンソーシアム All Rights Reserved.
*/
package com.tida_okinawa.corona.io.model.dic;
import java.util.Date;
import java.util.List;
import java.util.Set;
import com.tida_okinawa.corona.io.exception.CoronaError;
import com.tida_okinawa.corona.io.model.ICoronaComponent;
/**
* 辞書オブジェクトのインターフェース
*
* @author shingo-takahashi
*
*/
public interface ICoronaDic extends ICoronaComponent {
/** DB未保存時に設定されるID */
int UNSAVED_ID = -1;
/**
* 辞書IDを取得.
* このIDはDB上で管理される
*
* @return 辞書ID
*/
public abstract int getId();
/**
* 辞書IDを設定.
* このIDはDB上で管理される
*
* @param id
* 辞書ID
*/
public abstract void setId(int id);
/**
* 辞書の表示名を取得
*
* @return 辞書表示名
*/
public abstract String getName();
/**
* 辞書の表示名を設定
*
* @param name
* 辞書表示名
*/
public abstract void setName(String name);
/**
* 辞書の最終更新日時を取得
*
* @return 辞書最終更新日時を示すDateオブジェクト
*/
public abstract Date getLasted();
/**
* 辞書の最終更新日をセットする
*
* @param date
* 辞書の最終更新日
*/
public abstract void setLasted(Date date);
/**
* 辞書の作成日時を返却する
*
* @return may be null. 辞書作成日時を示すDateオブジェクト
*/
public abstract Date getCreationTime();
/**
* 辞書の作成日時を設定する
*
* @param date
* 作成日時を設定したDateオブジェクト
*/
public abstract void setCreationTime(Date date);
/**
* 辞書内の辞書アイテムリストを取得する
*
* @return IDicItem型の辞書アイテム
*/
public abstract List<IDicItem> getItems();
/**
* ページング指定した範囲でアイテムを取得する. <code>page * block</code>件目(0始まり)から、
* <code>limit</code>件のアイテムを取得する
*
* @param page
* 何ページ目か
* @param limit
* 1ページ当たりのアイテム数
* @return 取得したアイテムのリスト
*/
public abstract List<?> getItemsPaging(int page, int limit);
/**
* 指定したIDの辞書アイテムを取得する
*
* @param itemId
* 取得するアイテムのID
* @return 該当するIDのアイテムがなければnull
*/
public abstract IDicItem getItem(int itemId);
/**
* 辞書アイテム追加
*
* @param item
* IDicItemを実装した辞書アイテム
*/
public abstract void addItem(IDicItem item);
/**
* 辞書アイテム削除
*
* @param item
* IDicItemを実装した辞書アイテム
*/
public abstract void removeItem(IDicItem item);
/**
* 親辞書IDを取得する
*
* @return 親辞書ID
*/
public abstract int getParentId();
/**
* 親辞書を追加する
*
* @param id
* 親辞書ID
*/
public abstract void addParentId(int id);
/**
* 親辞書を設定する
*
* @param id
* 親辞書ID
*/
public abstract void setParentId(int id);
/**
* 親辞書を除去する
*
* @param id
* 親辞書ID
*/
public abstract void removeParentId(int id);
/**
* 複数の親辞書IDを取得する
*
* @return 複数の親辞書IDを格納したSet
*/
public abstract Set<Integer> getParentIds();
/**
* 複数の親辞書を設定する
*
* @param ids
* 複数の親辞書IDを格納したSet
*/
public abstract void setParentIds(Set<Integer> ids);
/**
* 辞書ファイルインポート
*
* @param path
* 取り込む辞書ファイルのパス
*/
public abstract void importDic(String path);
/**
* 辞書ファイルインポート
*
* @param path
* 取り込む辞書ファイルのパス
* @param parentDicName
* 親辞書名
* @param dicType
* 作成する辞書種別
*/
public abstract void importDic(String path, String parentDicName, DicType dicType);
/**
* 辞書ファイルエクスポート
*
* @param path
* 出力ファイルパス
* @param encoding
* 文字コード
*/
public abstract void exportDic(String path, String encoding);
/**
* 辞書アイテムに変更があるかを取得
*
* @return 変更があればtrue
*/
public abstract boolean isDirty();
/**
* ダーティ(辞書アイテム変更有)フラグの設定
*
* @param dirty
* 変更有:true 変更なし:false
*/
public abstract void setDirty(boolean dirty);
/**
*
* 辞書データ再取得
*
* @return 更新が正常に終了したらtrue
*/
public abstract boolean updateRecords();
/**
* 辞書のエラー情報を取得する
*
* @return エラー情報オブジェクトのList
*/
public abstract List<CoronaError> getErrors();
/**
* 辞書のアイテム(レコード)数を取得する
*
* @return アイテム(レコード)数
*/
public int getItemCount();
}