annotate CHANGELOG @ 14:8bf59f161b23

separete Node methods to NodeContext , NodeAttribute , NodeChildren
author misaka
date Tue, 17 May 2011 18:44:14 +0900
parents c8601b0fa8a3
children bb9760760744
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
1 ChangeLog.
8
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
2 2011-03-29
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
3 changed byte[] to ByteBuffer
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
4 added TreeEditor.updateTree(Node,NodeData,Node[]) for node path is known.
f96193babac0 changed byte[] to ByteBuffer
shoshi
parents: 7
diff changeset
5 added GUIEditor
7
fc19e38b669b added concurrent access client for cassandr
shoshi
parents: 6
diff changeset
6 2011-03-17
fc19e38b669b added concurrent access client for cassandr
shoshi
parents: 6
diff changeset
7 added concurrent access client for cassandra
6
12604eb6b615 added javadoc
shoshi
parents: 5
diff changeset
8 2011-03-14
12604eb6b615 added javadoc
shoshi
parents: 5
diff changeset
9 added javadoc treecms.api
5
87bba22e4fa2 added test case
shoshi
parents: 4
diff changeset
10 2011-02-28
87bba22e4fa2 added test case
shoshi
parents: 4
diff changeset
11 added test case
4
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
12 2011-02-25
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
13 finished treecms.cassandra.v1 implementation ( not tested yet. )
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
14 2011-02-18
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
15 finished treecms.memory basic implementation ( not tested yet. )
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
16 2011-02-16
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
17 added OnMemoryForest
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
18 2011-02-16
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
19 add Forest
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
20
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
21
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
22 Requirements.
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
23
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
diff changeset
24 Cassandra 0.6.x
11
shoshi
parents: 8
diff changeset
25
shoshi
parents: 8
diff changeset
26
13
c8601b0fa8a3 added Predicate and PredicateList
shoshi
parents: 12
diff changeset
27 開発メモ
c8601b0fa8a3 added Predicate and PredicateList
shoshi
parents: 12
diff changeset
28
14
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
29 2011-05-17
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
30 NodeAttributes、NodeChildrenを作って分けた.
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
31 NodeAttributesはノードの要素を保持する。
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
32 NodeChildrenはノードの子供のリストを表す。
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
33
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
34 Node extends NodeAttributes,NodeChildren
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
35
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
36 SingleNode extends NodeBase , NodeAttributes , NodeChildren<SingleNode>
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
37 TreeNode extends NodeBase , NodeAttributes , NodeChildren<TreeNode>
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
38
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
39 NodeChildrenをNodeChildren<T>にしようかと思っていまする。
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
40 この方法なら行けるかも?
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
41
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
42 2011-05-16
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
43 replaceChildの実装を忘れていたので実装しよう。
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
44 書き換える必要があるのは Node,TreeNode,MonotonicTreeNode
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
45 の3つのインターフェイスかな
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
46
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
47 現段階でNodeのメソッドは
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
48 属性関係が get,getAll,put,putAll,remove,removeAll,clear
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
49 子供関係が getChildren,addChild,addChildren,removeChild,removeChildren,replaceChildren,clearChildren
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
50 その他 getID
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
51
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
52 やっぱり、子供ノード用の専用リストをつくりましょう。
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
53 NodeChildList
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
54 public List<Node> getList();
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
55 public boolean add(Node _n); //ノード追加
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
56 public boolean addAll(List<Node> _list); //ノードのリストを追加
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
57 public Node get(String _id); //NodeIDに当たるNodeの取得
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
58 public Node get(int _index); //_indexの場所にいるNodeの取得
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
59 public Node remove(String _id); //NodeIDを削除
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
60 public Node remove(int _index); //_indexの場所にいるNodeの削除
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
61 public boolean contains(String _id); //NodeIDがこのリストに含まれるかチェック
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
62 public boolean swap(String _id1,String _id2); //2つのNodeIDを入れ替える
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
63 public void clear(); //リストのクリア
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
64
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
65 もう訳がわからない
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
66
13
c8601b0fa8a3 added Predicate and PredicateList
shoshi
parents: 12
diff changeset
67 2011-05-11
c8601b0fa8a3 added Predicate and PredicateList
shoshi
parents: 12
diff changeset
68 クローンを伝搬させる方法で非破壊的編集の実装を書いている.
c8601b0fa8a3 added Predicate and PredicateList
shoshi
parents: 12
diff changeset
69
c8601b0fa8a3 added Predicate and PredicateList
shoshi
parents: 12
diff changeset
70 やっぱり、子供を管理するリストは自身で開発したほうが良さそうな気がしてきた.
c8601b0fa8a3 added Predicate and PredicateList
shoshi
parents: 12
diff changeset
71 子供のリストに要求されていることは
c8601b0fa8a3 added Predicate and PredicateList
shoshi
parents: 12
diff changeset
72 同じIDの子供が追加されないこと
c8601b0fa8a3 added Predicate and PredicateList
shoshi
parents: 12
diff changeset
73 なので,順序付きの集合になる.ApacheCommonsのCollectionAPIは何故かGenericsに対応していないので警告を吐きまくる.
c8601b0fa8a3 added Predicate and PredicateList
shoshi
parents: 12
diff changeset
74 やっぱり自分で書いたほうが良さそうですね.
c8601b0fa8a3 added Predicate and PredicateList
shoshi
parents: 12
diff changeset
75
c8601b0fa8a3 added Predicate and PredicateList
shoshi
parents: 12
diff changeset
76 Apache CommonsのPredicateを使えば普通に実装できるはずなんだけど・・・・
c8601b0fa8a3 added Predicate and PredicateList
shoshi
parents: 12
diff changeset
77 PredicateとPredicateListの実装もうちょっと;)
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
78
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
79 2011-05-10
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
80 MonotonicTreeNodeのAPI合わせをやった.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
81 OnMemoryの実装に移ろう.実際はOnMemoryがキャッシュとして使いやすいようにしないといけないんだけどな.AbstractHogehogeとかみたいに,
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
82 フレームワーク的に使いたいね.
13
c8601b0fa8a3 added Predicate and PredicateList
shoshi
parents: 12
diff changeset
83
c8601b0fa8a3 added Predicate and PredicateList
shoshi
parents: 12
diff changeset
84 OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNodeを実装した.OnMemoryMonotonicTreeNodeはだいたい完成している.
c8601b0fa8a3 added Predicate and PredicateList
shoshi
parents: 12
diff changeset
85
c8601b0fa8a3 added Predicate and PredicateList
shoshi
parents: 12
diff changeset
86 NodeにcloneNodeっぽいメソッドを実装するの忘れてた.
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
87
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
88 2011-05-09
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
89 Node自体はSingleLinkedNodeである,あるNodeを頂点とするTreeを作ることで、SingleLinkedNodeをラップしたDoubleLinkedNodeを作る.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
90 これをTreeNodeとする.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
91 Nodeからchildrenをとるときは防御的コピーをしよう.
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 NodeDataを実装に合わせた.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
95 次はTreeNodeをあわせていくといいと思う.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
96
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
97 2011-05-07
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
98 Nodeの子供Listは重複要素を許可しないリストなので、NodeData、SetUniqueListにする。
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
99 NodeDataをSetUniqueListに変更した。
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
100 NodeDataってtreecms.apiよりはtreecms.utilの方なんじゃないかと思う、なので移動します。
11
shoshi
parents: 8
diff changeset
101
shoshi
parents: 8
diff changeset
102 2011-05-05
shoshi
parents: 8
diff changeset
103 APIを変更した、ノードを表すクラスは[Node,TreeNode,MonotonicTreeNode]の3つで,TreeNodeとMonotonicTreeNodeはNodeを継承しない。
shoshi
parents: 8
diff changeset
104 TreeNodeとMonotonicTreeNodeもノードを表すクラスの一つであるが,継承ではなくNodeを内部にメンバーとして持つ,
shoshi
parents: 8
diff changeset
105
shoshi
parents: 8
diff changeset
106 問題点は,TreeNodeとMonotonicTreeNodeのメソッドをNodeとAPIの定義を用いて一致させたいが出来ない,NodeのAPIを変更するときには3つ全部書き換える必要がある.
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
107 Genericsを使って無理やり出来る方法を考えたが、まあどうだろう・・・
11
shoshi
parents: 8
diff changeset
108
shoshi
parents: 8
diff changeset
109 現段階でNodeのメソッドは
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
110 属性関係が get,getAll,put,putAll,remove,removeAll,clear
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents: 11
diff changeset
111 子供関係が getChildren,addChild,addChildren,removeChild,removeChildren,clearChildren
11
shoshi
parents: 8
diff changeset
112 その他 getID
shoshi
parents: 8
diff changeset
113
shoshi
parents: 8
diff changeset
114 これをinterface Nodeに記述しておいた.TreeNodeとMonotonicTreeNode interfaceの変更が必要.