Mercurial > hg > Members > shoshi > TreeCMSv2
comparison src/treecms/memory/OnMemoryForest.java @ 9:17ed97ca9960
commit
author | shoshi |
---|---|
date | Mon, 18 Apr 2011 01:07:27 +0900 |
parents | f96193babac0 |
children | 85061e874775 |
comparison
equal
deleted
inserted
replaced
8:f96193babac0 | 9:17ed97ca9960 |
---|---|
12 import treecms.api.TreeEditor; | 12 import treecms.api.TreeEditor; |
13 import treecms.tree.id.AbstractRandomNodeID; | 13 import treecms.tree.id.AbstractRandomNodeID; |
14 | 14 |
15 /** | 15 /** |
16 * Forestのオンメモリ上の実装. | 16 * Forestのオンメモリ上の実装. |
17 * このクラスはスレッドセーフだと思います.たぶん | |
18 * @author shoshi | 17 * @author shoshi |
19 */ | 18 */ |
20 public class OnMemoryForest implements Forest | 19 public class OnMemoryForest implements Forest |
21 { | 20 { |
22 //Nodeのマップ | 21 //Nodeのマップ |
82 * あるNodeをルートとしてTreeのオブジェクトを取得します。 | 81 * あるNodeをルートとしてTreeのオブジェクトを取得します。 |
83 * @param _id 木のルートとなるNodeのNodeID | 82 * @param _id 木のルートとなるNodeのNodeID |
84 * @return Tree | 83 * @return Tree |
85 */ | 84 */ |
86 @Override | 85 @Override |
87 public Tree getAsTree(NodeID _id) | 86 public Tree getTree(Node _node) |
88 { | 87 { |
89 return new OnMemoryTree((OnMemoryNode) get(_id)); | 88 Forest forest = _node.getForest(); |
89 if(forest != this){ | |
90 throw new IllegalArgumentException(); | |
91 } | |
92 | |
93 return new OnMemoryTree((OnMemoryNode)_node); | |
90 } | 94 } |
91 | 95 |
92 /** | 96 /** |
93 * あるNodeをルートとしたTreeを非破壊的に編集するTreeEditorを取得します。 | 97 * あるNodeをルートとしたTreeを非破壊的に編集するTreeEditorを取得します。 |
94 * @param _id 木のルートとなるNodeのNodeID | 98 * @param _id 木のルートとなるNodeのNodeID |
95 * @return TreeEditor | 99 * @return TreeEditor |
96 */ | 100 */ |
97 @Override | 101 @Override |
98 public TreeEditor getAsTreeEditor(NodeID _id) | 102 public TreeEditor getTreeEditor(Tree _tree) |
99 { | 103 { |
100 return new OnMemoryTreeEditor((OnMemoryTree) getAsTree(_id)); | 104 Forest forest = _tree.getForest(); |
105 if(forest != this){ | |
106 throw new IllegalArgumentException(); | |
107 } | |
108 | |
109 return new OnMemoryTreeEditor((OnMemoryTree)_tree); | |
101 } | 110 } |
102 | 111 |
103 /** | 112 /** |
104 * 新しくNodeを作成します. | 113 * 新しくNodeを作成します. |
105 * @return 新しいNode | 114 * @return 新しいNode |