comparison src/treecms/api/TreeNode.java @ 14:8bf59f161b23

separete Node methods to NodeContext , NodeAttribute , NodeChildren
author misaka
date Tue, 17 May 2011 18:44:14 +0900
parents fbbb7e414346
children 22cd920986c5
comparison
equal deleted inserted replaced
13:c8601b0fa8a3 14:8bf59f161b23
1 package treecms.api; 1 package treecms.api;
2
3 import java.nio.ByteBuffer;
4 import java.util.Iterator;
5 import java.util.List;
6 import java.util.Map;
7 import java.util.Set;
8 2
9 /** 3 /**
10 * DoubleLinkedなNodeの実装です.SingleLinkedなNodeの実装と違い,親の情報を保持します. 4 * DoubleLinkedなNodeの実装です.SingleLinkedなNodeの実装と違い,親の情報を保持します.
11 * 非破壊的木構造の実装では,Nodeは子どもの情報しか持っていません.これは,一つのNodeに対して複数の親が存在するためです. 5 * 非破壊的木構造の実装では,Nodeは子どもの情報しか持っていません.これは,一つのNodeに対して複数の親が存在するためです.
12 * 木構造内のあるNodeへのRootNodeからのパスを検索する手間を省くことが出来ます. 6 * 木構造内のあるNodeへのRootNodeからのパスを検索する手間を省くことが出来ます.
15 * TreeNodeがNodeのインターフェイスを継承していないのは,継承するとSingleLinkedなNodeに子供として追加できるようになるからです. 9 * TreeNodeがNodeのインターフェイスを継承していないのは,継承するとSingleLinkedなNodeに子供として追加できるようになるからです.
16 * 10 *
17 * また,TreeNodeを編集したときは非破壊的に編集されず、破壊的に編集されます. 11 * また,TreeNodeを編集したときは非破壊的に編集されず、破壊的に編集されます.
18 * @author shoshi 12 * @author shoshi
19 */ 13 */
20 public interface TreeNode 14 public interface TreeNode extends Node<TreeNode>
21 { 15 {
22 /*
23 * 属性関連のメソッド
24 */
25 public ByteBuffer get(ByteBuffer _key);
26 public Map<ByteBuffer,ByteBuffer> getAll();
27 public void put(ByteBuffer _key,ByteBuffer _value);
28 public void putAll(Map<ByteBuffer,ByteBuffer> _map);
29 public void remove(ByteBuffer _key);
30 public void removeAll(Set<ByteBuffer> _keys);
31 public void clear();
32
33 /*
34 * 子供関連のメソッド
35 */
36 public Iterator<TreeNode> getChildren();
37 public void addChild(TreeNode _n);
38 public void addChildren(List<TreeNode> _list);
39 public void removeChild(TreeNode _n);
40 public void removeChildren(List<TreeNode> _list);
41 public void clearChildren();
42
43 /*
44 * 親関連のメソッド
45 */
46 public NodeID getID();
47 public Forest getForest();
48 public TreeNode getParent(); 16 public TreeNode getParent();
49 public Node getNode(); 17 public TreeNode getNode();
50 } 18 }