view src/treecms/api/MonotonicTree.java @ 14:8bf59f161b23

separete Node methods to NodeContext , NodeAttribute , NodeChildren
author misaka
date Tue, 17 May 2011 18:44:14 +0900
parents 17ed97ca9960
children 22cd920986c5
line wrap: on
line source

package treecms.api;

/**
 * 木構造を非破壊的に更新する機能を提供します.TreeEditorはTreeを非破壊的に更新していき,commitすることでTreeに更新を適用します.
 * TreeEditor.getRootはcommitされていない状態のRootNodeを取得します.
 * この機能は分散リポジトリを参考に考案されました.
 * @author shoshi
 */
public interface MonotonicTree
{
	/**
	 * 非破壊的に更新した木構造を適用します.
	 * 更新する際に他の方法により木構造がすでに更新されていた場合,commitは失敗します。_forceがtrueの場合,強制的に置き換えます. 
	 * @param _force 強制コミットフラグ
	 * @return 成功した場合true,失敗した場合false
	 */
	public boolean commit(boolean _force);
	
	/**
	 * 監視している木構造をEditorにキャッシュします.
	 * @return キャッシュが成功した場合はtrue,失敗した場合はfalse
	 */
	public boolean pull();
	
	/**
	 * 監視されている木構造が更新されていないかチェックします.
	 * @return 更新されていた場合はture,されていない場合はfalse
	 */
	public boolean check();
	
	/**
	 * 監視している木構造をキャッシュにマージします.
	 */
	public void merge();
	
	/**
	 * この木構造のルートNodeを返します。
	 * @return この木構造のルートNode
	 */
	public SingleNode getRoot();
}