Mercurial > hg > Members > shoshi > TreeCMSv2
view src/treecms/api/Forest.java @ 15:22cd920986c5
commit
author | misaka |
---|---|
date | Tue, 17 May 2011 21:25:17 +0900 |
parents | 8bf59f161b23 |
children | bb9760760744 |
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を返します. */ SingleNode get(NodeID _id); /** * 同じUUIDを持つNode中で最新のNodeを取得します. * @param _uuid NodeIDのUUID * @return UUIDと一致するNodeが見つからない場合はnullを返します. */ SingleNode getTip(String _uuid); /** * 新しいNodeを作成します.このメソッドで作成されるNodeは新しいUUIDを持ちます. * @return 新しいNode */ SingleNode create(); /** * あるNodeを木として返します * @param _root * @return Tree あるNodeをルートとした木 */ Tree getTree(SingleNode _root); /** * 木を非破壊的に編集するMonotonicTreeを取得します * @param _tree 対象 * @return TreeEditor */ MonotonicTree getMonotonicTree(SingleNode _root); /** * NodeDataを保持する新しいNodeを作成します.このメソッドで作成されるNodeは新しいUUIDを持ちます. * このメソッドはNodeDataをNodeに割り当てるとき防御的コピーを行います. * @param _data 新しいNodeが保持するNodeData * @return NodeDataを保持した新しいNode */ SingleNode create(NodeData<SingleNode> _data); /** * このForestの現在の最新のMainTreeを取得します * @return このForestのMainTree、最新版 */ Tree getMainTree(); }