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