/////////////////////////////////////////////////////////////////
//Copyright (C) 2005 NTT CORPORATION.
//
//	進捗クラスのインタフェース
//
//		変更履歴
//			2005.01.27  新規作成  Katsuhiko.Sakurai(UNITEC)
//
//	機能
//
//	このクラスは進捗を表すクラスインタフェースです。
//
////////////////////////////////////////////////////////////////
package jp.co.ntt.lms.lo.progress;

import java.util.List;

/**
 * 進捗インタフェースです。
 * 
 * @author Katsuhiko Sakurai (UNITEC)
 * @version 1.0
 */
public interface XMOProgress {
	
	/**
	 * 進捗リストを取得します。
	 * 
	 * @return List　進捗リスト
	 */
	public List getProgressList();
	
	/**
	 * 進捗を取得します。
	 * 
	 * @return LearningProgress 進捗
	 */
	public LearningProgress getProgress();
	
	/**
	 * 項目名を取得します。
	 * 
	 * @return String 項目名
	 */
	public String getItemName();
	
	/**
	 * 階層化された項目名を取得します。
	 * 
	 * @return String 階層化された項目名
	 */
	public String getNestedItemName();
	
	/**
	 * 項目のレベルを取得します。
	 * 
	 * @return int 項目の階層レベル
	 */
	public int getLevel();
	
	/**
	 * 自分自身に下位の項目を追加します。
	 * 
	 * @param xmoProgress 自オブジェクトの子供にあたる進捗情報
	 * @return XMOProgress 進捗情報
	 * @throws Exception
	 */
	public XMOProgress add( XMOProgress xmoProgress ) throws Exception;

	/**
	 * 項目の説明を取得します。
	 * 
	 * @return String 項目の説明
	 */
	public String getExplanation();
}
