Mercurial > hg > Members > shoshi > TreeCMSv2
view src/treecms/api/NodeID.java @ 27:aecc55e87143 default tip
test commit
author | Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 18 Aug 2011 17:37:03 +0900 |
parents | 084de6909451 |
children |
line wrap: on
line source
package treecms.api; /** * Nodeに対応するNodeIDです.NodeIDはFamilyとVersionから構成されており,同じFamilyを持つNodeIDはファミリーと定義します. * 木構造で同じFamilyを持つNodeは同一のNodeと判断されます.また,一つの木構造に同じFamilyを持つNodeは存在しません. * ファイルのバージョン管理と同じようなものと考えてください.その場合,Familyがファイルのパスで,Versionがファイルの更新日時です. * @author shoshi */ public interface NodeID { /** * 新しいNodeIDを作成します.新しいNodeIDは異なるFamilyを持ちます. * @return 新しいFamilyを持つNodeID */ public NodeID create(); /** * このNodeIDが保持するFamilyを継承した,自分とバージョンの異なるNodeIDを生成します. * @return Familyを継承した新しいNodeID */ public NodeID update(); /** * Familyを取得します. * @return NodeIDが保持しているFamily */ public String getFamilyID(); /** * このNodeIDのバージョンを取得します. * @return NodeIDのバージョン */ public String getVersion(); /** * このNodeIDが同一なFamilyを保持しているか比較します. * @param _id * @return 同一な場合はtrue,異なる場合はfalse */ public boolean isFamily(NodeID _id); /** * このNodeIDの文字列表現を返します. * このメソッドを実装する際に,文字列の表現方法は<b>Family@Version</b>を採用してください. * @return */ public String toString(); /** * このNodeIDと指定されたNodeIDを比較します. * @param _obj * @return 同一な場合はtrue,異なる場合はfalse */ public boolean equals(Object _obj); /** * このNodeIDのハッシュ値を返します.NodeIDはハッシュテーブルのキーとして使用されるとがあります. * そのため,この関数は必ず実装してください. * @return ハッシュ値 */ public int hashCode(); }