annotate src/treecms/api/NodeID.java @ 20:084de6909451

commit
author shoshi
date Wed, 01 Jun 2011 15:35:50 +0900
parents 12604eb6b615
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
7ecb9273581d hg init
shoshi
parents:
diff changeset
1 package treecms.api;
7ecb9273581d hg init
shoshi
parents:
diff changeset
2
6
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
3 /**
20
shoshi
parents: 6
diff changeset
4 * Nodeに対応するNodeIDです.NodeIDはFamilyとVersionから構成されており,同じFamilyを持つNodeIDはファミリーと定義します.
shoshi
parents: 6
diff changeset
5 * 木構造で同じFamilyを持つNodeは同一のNodeと判断されます.また,一つの木構造に同じFamilyを持つNodeは存在しません.
shoshi
parents: 6
diff changeset
6 * ファイルのバージョン管理と同じようなものと考えてください.その場合,Familyがファイルのパスで,Versionがファイルの更新日時です.
6
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
7 * @author shoshi
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
8 */
0
7ecb9273581d hg init
shoshi
parents:
diff changeset
9 public interface NodeID
7ecb9273581d hg init
shoshi
parents:
diff changeset
10 {
6
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
11 /**
20
shoshi
parents: 6
diff changeset
12 * 新しいNodeIDを作成します.新しいNodeIDは異なるFamilyを持ちます.
shoshi
parents: 6
diff changeset
13 * @return 新しいFamilyを持つNodeID
6
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
14 */
0
7ecb9273581d hg init
shoshi
parents:
diff changeset
15 public NodeID create();
6
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
16
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
17 /**
20
shoshi
parents: 6
diff changeset
18 * このNodeIDが保持するFamilyを継承した,自分とバージョンの異なるNodeIDを生成します.
shoshi
parents: 6
diff changeset
19 * @return Familyを継承した新しいNodeID
6
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
20 */
0
7ecb9273581d hg init
shoshi
parents:
diff changeset
21 public NodeID update();
6
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
22
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
23 /**
20
shoshi
parents: 6
diff changeset
24 * Familyを取得します.
shoshi
parents: 6
diff changeset
25 * @return NodeIDが保持しているFamily
6
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
26 */
20
shoshi
parents: 6
diff changeset
27 public String getFamilyID();
6
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
28
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
29 /**
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
30 * このNodeIDのバージョンを取得します.
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
31 * @return NodeIDのバージョン
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
32 */
0
7ecb9273581d hg init
shoshi
parents:
diff changeset
33 public String getVersion();
6
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
34
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
35 /**
20
shoshi
parents: 6
diff changeset
36 * このNodeIDが同一なFamilyを保持しているか比較します.
6
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
37 * @param _id
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
38 * @return 同一な場合はtrue,異なる場合はfalse
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
39 */
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
40 public boolean isFamily(NodeID _id);
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
41
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
42 /**
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
43 * このNodeIDの文字列表現を返します.
20
shoshi
parents: 6
diff changeset
44 * このメソッドを実装する際に,文字列の表現方法は<b>Family@Version</b>を採用してください.
6
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
45 * @return
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
46 */
0
7ecb9273581d hg init
shoshi
parents:
diff changeset
47 public String toString();
7ecb9273581d hg init
shoshi
parents:
diff changeset
48
6
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
49 /**
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
50 * このNodeIDと指定されたNodeIDを比較します.
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
51 * @param _obj
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
52 * @return 同一な場合はtrue,異なる場合はfalse
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
53 */
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
54 public boolean equals(Object _obj);
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
55
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
56 /**
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
57 * このNodeIDのハッシュ値を返します.NodeIDはハッシュテーブルのキーとして使用されるとがあります.
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
58 * そのため,この関数は必ず実装してください.
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
59 * @return ハッシュ値
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
60 */
12604eb6b615 added javadoc
shoshi
parents: 1
diff changeset
61 public int hashCode();
0
7ecb9273581d hg init
shoshi
parents:
diff changeset
62 }