annotate src/treecms/api/Node.java @ 12:fbbb7e414346

modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
author shoshi
date Wed, 11 May 2011 03:34:01 +0900
parents 85061e874775
children c8601b0fa8a3
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
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
3 import java.util.Iterator;
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
4 import java.util.List;
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
5 import java.util.Map;
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
6 import java.util.Set;
8
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
7 import java.nio.ByteBuffer;
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
8
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
9 /**
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
10 * 木構造の基本のデータ単位であるNodeを示します.Nodeは子供のリストとデータのマップを保持します.また,クライアントはノードが保持しているデータをNodeDataとして
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
11 * 取得することが出来ます.
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
12 *
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
13 * NodeはSingleLinkで子供Nodeへのパスしか保持していません、どのNodeが親かどうか判断するのは不可能です.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
14 * このようにしたのは,非破壊的木構造を実装するに当たり,編集対象のNodeの親を検索するのが困難であるからです.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
15 * DoubleLinkな実装はTree/MonotonicTreeで行います.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
16 *
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
17 * また,重複した子供を追加することは出来ません,このインターフェイスを実装するクラスはそのように実装します.
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
18 * @author shoshi
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
19 */
2
4a5ee88f02cf added OnMemoryForest
shoshi
parents: 1
diff changeset
20 public interface Node
0
7ecb9273581d hg init
shoshi
parents:
diff changeset
21 {
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
22 /**
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
23 * Nodeに対応するNodeIDを取得します.
7
fc19e38b669b added concurrent access client for cassandr
shoshi
parents: 6
diff changeset
24 * @return Nodeに対応するNodeID
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
25 */
0
7ecb9273581d hg init
shoshi
parents:
diff changeset
26 public NodeID getID();
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
27
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
28 /**
7
fc19e38b669b added concurrent access client for cassandr
shoshi
parents: 6
diff changeset
29 * Nodeが保持するデータを取得します.クライアントはこのメソッドを用いて取得されるNodeDataを用いてNodeの内容を<b>変更できません</b>。
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
30 * 変更を加えた場合は無視されるか、例外が発生します.
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
31 * @return Nodeが保持するNodeData
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
32 */
1
bdde898e8ef9 add Forest
shoshi
parents: 0
diff changeset
33 public NodeData getData();
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
34
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
35 /**
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
36 * Nodeが属するForestを取得します.
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
37 * @return Nodeが属するForest
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
38 */
2
4a5ee88f02cf added OnMemoryForest
shoshi
parents: 1
diff changeset
39 public Forest getForest();
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
40
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
41 /*
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
42 * 属性関連のメソッド
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
43 * get,getAll,put,putAll,remove,removeAll,clear
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
44 */
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
45
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
46 /**
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
47 * このNodeが保持する値の中で指定されたキーと対応する値を取得します.
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
48 * @param _key データに対応するキー
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
49 * @return キーと対応する値,見つからない場合はnull
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
50 */
8
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
51 public ByteBuffer get(ByteBuffer _key);
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
52
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
53 /**
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
54 * このNodeが保持するデータをマップとしてすべて取得します.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
55 * @return Nodeが保持するすべてのデータのマップ
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
56 */
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
57 public Map<ByteBuffer,ByteBuffer> getAll();
11
shoshi
parents: 8
diff changeset
58
shoshi
parents: 8
diff changeset
59 /**
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
60 * キーとそれに対応する値を保存します.キーが重複した場合は上書きされます.
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
61 * @param _key キー
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
62 * @param _value 値
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
63 */
8
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
64 public void put(ByteBuffer _key,ByteBuffer _value);
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
65
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
66 /**
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
67 * キーとそれに対応する値を複数保持するマップを引数としてとり,マップが保持する値をすべて追加します.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
68 * @param _map 追加される値のマップ
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
69 */
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
70 public void putAll(Map<ByteBuffer,ByteBuffer> _map);
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
71
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
72 /**
8
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
73 * キーとそれに対応する値を削除します。
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
74 * @param _key キー
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
75 */
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
76 public void remove(ByteBuffer _key);
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
77
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
78 /**
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
79 * Keyの集合すべてを削除します.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
80 * @param _key
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
81 */
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
82 public void removeAll(Set<ByteBuffer> _key);
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
83
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
84 /**
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
85 * Keyの集合全てを削除します.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
86 */
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
87 public void clear();
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
88
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
89 /*
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
90 * 子供関連
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
91 * getChildren,addChild,addChildren,removeChild,removeChildren,clearChildren
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
92 */
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
93
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
94 /**
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
95 * 子供のIteratorを取得します.このIteratorは編集するためのメソッドは実装しません.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
96 * 呼び出した場合は例外は発生します.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
97 * @return 子供NodeのIterator
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
98 */
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
99 public Iterator<Node> getChildren();
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
100
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
101 /**
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
102 * 指定されたNodeを子供Nodeとして追加します.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
103 * @param _child
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
104 */
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
105 public void addChild(Node _child);
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
106
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
107 /**
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
108 * 指定されたリストに含まれるNodeを,すべて子供Nodeとして追加します.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
109 * @param _children 追加される子供Nodeを保持するリスト
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
110 */
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
111 public void addChildren(List<Node> _children);
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
112
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
113 /**
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
114 * 指定されたNodeを削除します。
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
115 * @param _child
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
116 */
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
117 public void removeChild(Node _child);
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
118
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
119 /**
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
120 * 指定した子供を全て削除します.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
121 * @param _children 削除される子供
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
122 */
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
123 public void removeChildren(List<Node> _children);
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
124
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
125 /**
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
126 * 全ての子供を削除します.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
127 */
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
128 public void clearChildren();
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
129 }