annotate src/treecms/api/TreeEditor.java @ 8:f96193babac0

changed byte[] to ByteBuffer added TreeEditor.updateTree(Node,NodeData,Node[]) for node path is known. added GUIEditor
author shoshi
date Thu, 31 Mar 2011 02:08:44 +0900
parents fc19e38b669b
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
7
fc19e38b669b added concurrent access client for cassandr
shoshi
parents: 6
diff changeset
3 import treecms.tree.util.PathNotFoundException;
fc19e38b669b added concurrent access client for cassandr
shoshi
parents: 6
diff changeset
4
6
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
5 /**
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
6 * 木構造を非破壊的に更新する機能を提供します.TreeEditorはTreeを非破壊的に更新していき,commitすることでTreeに更新を適用します.
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
7 * TreeEditor.getRootはcommitされていない状態のRootNodeを取得します.
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
8 * この機能は分散リポジトリを参考に考案されました.
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
9 * @author shoshi
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
10 */
7
fc19e38b669b added concurrent access client for cassandr
shoshi
parents: 6
diff changeset
11 public interface TreeEditor
0
7ecb9273581d hg init
shoshi
parents:
diff changeset
12 {
6
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
13 /**
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
14 * 非破壊的に更新した木構造を適用します.
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
15 * 更新する際に他の方法により木構造がすでに更新されていた場合,commitは失敗します。_forceがtrueの場合,強制的に置き換えます.
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
16 * @param _force 強制コミットフラグ
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
17 * @return 成功した場合true,失敗した場合false
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
18 */
0
7ecb9273581d hg init
shoshi
parents:
diff changeset
19 public boolean commit(boolean _force);
7ecb9273581d hg init
shoshi
parents:
diff changeset
20
6
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
21 /**
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
22 * 監視している木構造をEditorにキャッシュします.
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
23 * @return キャッシュが成功した場合はtrue,失敗した場合はfalse
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
24 */
0
7ecb9273581d hg init
shoshi
parents:
diff changeset
25 public boolean pull();
7ecb9273581d hg init
shoshi
parents:
diff changeset
26
6
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
27 /**
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
28 * 監視されている木構造が更新されていないかチェックします.
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
29 * @return 更新されていた場合はture,されていない場合はfalse
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
30 */
0
7ecb9273581d hg init
shoshi
parents:
diff changeset
31 public boolean check();
7ecb9273581d hg init
shoshi
parents:
diff changeset
32
6
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
33 /**
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
34 * 監視している木構造をキャッシュにマージします.
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
35 */
0
7ecb9273581d hg init
shoshi
parents:
diff changeset
36 public void merge();
6
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
37
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
38 /**
7
fc19e38b669b added concurrent access client for cassandr
shoshi
parents: 6
diff changeset
39 * この木構造のルートNodeを返します。
fc19e38b669b added concurrent access client for cassandr
shoshi
parents: 6
diff changeset
40 * @return この木構造のルートNode
fc19e38b669b added concurrent access client for cassandr
shoshi
parents: 6
diff changeset
41 */
fc19e38b669b added concurrent access client for cassandr
shoshi
parents: 6
diff changeset
42 public Node getRoot();
fc19e38b669b added concurrent access client for cassandr
shoshi
parents: 6
diff changeset
43
fc19e38b669b added concurrent access client for cassandr
shoshi
parents: 6
diff changeset
44 /**
fc19e38b669b added concurrent access client for cassandr
shoshi
parents: 6
diff changeset
45 * 木構造を非破壊的に更新します.変更の対象となるNodeが木構造内に見つからない場合,PathNotFoundExceptionがスローされます.
6
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
46 * @param _target 更新する対象のNode
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
47 * @param _newData 新しいNodeに割り当てられるNodeData
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
48 * @return 更新された新しいNode
7
fc19e38b669b added concurrent access client for cassandr
shoshi
parents: 6
diff changeset
49 * @throws PathNotFoundException パスが見つからない場合
6
12604eb6b615 added javadoc
shoshi
parents: 0
diff changeset
50 */
7
fc19e38b669b added concurrent access client for cassandr
shoshi
parents: 6
diff changeset
51 public Node updateTree(Node _target,NodeData _newData) throws PathNotFoundException;
8
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
52
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
53 /**
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
54 * 木構造を非破壊的に更新します.Nodeへのパスが既知な場合このメソッドを使用できます。
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
55 * このメソッドは使用時にパスの正当性を検証します。見つからない場合PathNotFoundExceptionがスローされます
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
56 * @param _target
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
57 * @param _newData
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
58 * @param _path
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
59 * @return 更新された新しいNode
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
60 * @throws PathNotFoundException
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
61 */
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
62 public Node updateTree(Node _target,NodeData _newData,Node[] _path) throws PathNotFoundException;
0
7ecb9273581d hg init
shoshi
parents:
diff changeset
63 }