view src/treecms/api/TreeNode.java @ 15:22cd920986c5

commit
author misaka
date Tue, 17 May 2011 21:25:17 +0900
parents 8bf59f161b23
children
line wrap: on
line source

package treecms.api;

/**
 * DoubleLinkedなNodeの実装です.SingleLinkedなNodeの実装と違い,親の情報を保持します.
 * 非破壊的木構造の実装では,Nodeは子どもの情報しか持っていません.これは,一つのNodeに対して複数の親が存在するためです.
 * 木構造内のあるNodeへのRootNodeからのパスを検索する手間を省くことが出来ます.
 * 
 * なのでSingleLinkedとDoubleLinkedを分けて,DoubleLinkedはSingleLinkedを内包した形で実装します.
 * TreeNodeがNodeのインターフェイスを継承していないのは,継承するとSingleLinkedなNodeに子供として追加できるようになるからです.
 * 
 * また,TreeNodeを編集したときは非破壊的に編集されず、破壊的に編集されます.
 * @author shoshi
 */
public interface TreeNode extends Node<TreeNode>
{
	public TreeNode getParent();
	public SingleNode getNode();
}