Mercurial > hg > Members > shoshi > TreeCMSv2
view src/treecms/api/Node.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 | 85061e874775 |
line wrap: on
line source
package treecms.api; import java.util.List; import java.util.Map; import java.nio.ByteBuffer; /** * 木構造の基本のデータ単位であるNodeを示します.Nodeは子供のリストとデータのマップを保持します.また,クライアントはノードが保持しているデータをNodeDataとして * 取得することが出来ます. * @author shoshi */ public interface Node { /** * Nodeに対応するNodeIDを取得します. * @return Nodeに対応するNodeID */ public NodeID getID(); /** * Nodeが保持するデータを取得します.クライアントはこのメソッドを用いて取得されるNodeDataを用いてNodeの内容を<b>変更できません</b>。 * @return Nodeが保持するNodeData */ public NodeData getData(); /** * Nodeが属するForestを取得します. * @return Nodeが属するForest */ public Forest getForest(); /** * 子供Nodeのリストを取得します.. * @return 子供Nodeのリスト */ public List<Node> children(); /** * このNodeが保持するデータをマップとしてすべて取得します. * @return Nodeが保持するすべてのデータのマップ */ public Map<ByteBuffer,ByteBuffer> getAll(); /** * このNodeが保持する値の中で指定されたキーと対応する値を取得します. * @param _key データに対応するキー * @return キーと対応する値,見つからない場合はnull */ public ByteBuffer get(ByteBuffer _key); /** * 指定されたリストに含まれるNodeを,すべて子供Nodeとして追加します. * @param _children 追加される子供Nodeを保持するリスト */ public void addAll(List<Node> _children); /** * 指定されたNodeを子供Nodeとして追加します. * @param _child */ public void add(Node _child); /** * 指定されたNodeを削除します。 * @param _child */ public void remove(Node _child); /** * キーとそれに対応する値を保存します.キーが重複した場合は上書きされます. * @param _key キー * @param _value 値 */ public void put(ByteBuffer _key,ByteBuffer _value); /** * キーとそれに対応する値を削除します。 * @param _key キー */ public void remove(ByteBuffer _key); /** * キーとそれに対応する値を複数保持するマップを引数としてとり,マップが保持する値をすべて追加します. * @param _map 追加される値のマップ */ public void putAll(Map<ByteBuffer,ByteBuffer> _map); }