ChangeLog. 2011-03-29 changed byte[] to ByteBuffer added TreeEditor.updateTree(Node,NodeData,Node[]) for node path is known. added GUIEditor 2011-03-17 added concurrent access client for cassandra 2011-03-14 added javadoc treecms.api 2011-02-28 added test case 2011-02-25 finished treecms.cassandra.v1 implementation ( not tested yet. ) 2011-02-18 finished treecms.memory basic implementation ( not tested yet. ) 2011-02-16 added OnMemoryForest 2011-02-16 add Forest Requirements. Cassandra 0.6.x 開発メモ 2011-05-11 クローンを伝搬させる方法で非破壊的編集の実装を書いている. やっぱり、子供を管理するリストは自身で開発したほうが良さそうな気がしてきた. 子供のリストに要求されていることは 同じIDの子供が追加されないこと なので,順序付きの集合になる.ApacheCommonsのCollectionAPIは何故かGenericsに対応していないので警告を吐きまくる. やっぱり自分で書いたほうが良さそうですね. Apache CommonsのPredicateを使えば普通に実装できるはずなんだけど・・・・ PredicateとPredicateListの実装もうちょっと;) 2011-05-10 MonotonicTreeNodeのAPI合わせをやった. OnMemoryの実装に移ろう.実際はOnMemoryがキャッシュとして使いやすいようにしないといけないんだけどな.AbstractHogehogeとかみたいに, フレームワーク的に使いたいね. OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNodeを実装した.OnMemoryMonotonicTreeNodeはだいたい完成している. NodeにcloneNodeっぽいメソッドを実装するの忘れてた. 2011-05-09 Node自体はSingleLinkedNodeである,あるNodeを頂点とするTreeを作ることで、SingleLinkedNodeをラップしたDoubleLinkedNodeを作る. これをTreeNodeとする. Nodeからchildrenをとるときは防御的コピーをしよう. いろいろと気にし過ぎな気もする NodeDataを実装に合わせた. 次はTreeNodeをあわせていくといいと思う. 2011-05-07 Nodeの子供Listは重複要素を許可しないリストなので、NodeData、SetUniqueListにする。 NodeDataをSetUniqueListに変更した。 NodeDataってtreecms.apiよりはtreecms.utilの方なんじゃないかと思う、なので移動します。 2011-05-05 APIを変更した、ノードを表すクラスは[Node,TreeNode,MonotonicTreeNode]の3つで,TreeNodeとMonotonicTreeNodeはNodeを継承しない。 TreeNodeとMonotonicTreeNodeもノードを表すクラスの一つであるが,継承ではなくNodeを内部にメンバーとして持つ, 問題点は,TreeNodeとMonotonicTreeNodeのメソッドをNodeとAPIの定義を用いて一致させたいが出来ない,NodeのAPIを変更するときには3つ全部書き換える必要がある. Genericsを使って無理やり出来る方法を考えたが、まあどうだろう・・・ 現段階でNodeのメソッドは 属性関係が get,getAll,put,putAll,remove,removeAll,clear 子供関係が getChildren,addChild,addChildren,removeChild,removeChildren,clearChildren その他 getID これをinterface Nodeに記述しておいた.TreeNodeとMonotonicTreeNode interfaceの変更が必要.