Mercurial > hg > Members > shoshi > TreeCMSv2
view src/treecms/api/Forest.java @ 9:17ed97ca9960
commit
author | shoshi |
---|---|
date | Mon, 18 Apr 2011 01:07:27 +0900 |
parents | f96193babac0 |
children | 85061e874775 |
line wrap: on
line source
package treecms.api; /** * ForestはNodeの集合で、集合に対するアクセスを提供します.クライアントはNodeIDを用いてNodeの取得や作成を行うことが出来ます. * @author shoshi */ public interface Forest { /** * NodeIDで示されるNodeを取得します. * @param _id Nodeを示すNodeID. * @return NodeIDと一致するNodeがある場合は,Nodeのインスタンスを返し,見つからない場合はnullを返します. */ Node get(NodeID _id); /** * 同じUUIDを持つNode中で最新のNodeを取得します. * @param _uuid NodeIDのUUID * @return UUIDと一致するNodeが見つからない場合はnullを返します. */ Node getTip(String _uuid); /** * 新しいNodeを作成します.このメソッドで作成されるNodeは新しいUUIDを持ちます. * @return 新しいNode */ Node create(); /** * あるNodeを木として返します * @param _root * @return Tree あるNodeをルートとした木 */ Tree getTree(Node _root); /** * 木を非破壊的に編集するTreeEditorを取得します * @param _tree 対象 * @return TreeEditor */ TreeEditor getTreeEditor(Tree _tree); /** * NodeDataを保持する新しいNodeを作成します.このメソッドで作成されるNodeは新しいUUIDを持ちます. * このメソッドはNodeDataをNodeに割り当てるとき防御的コピーを行います. * @param _data 新しいNodeが保持するNodeData * @return NodeDataを保持した新しいNode */ Node create(NodeData _data); /** * このForestの現在の最新のMainTreeを取得します * @return このForestのMainTree、最新版 */ Tree getMainTree(); }