/////////////////////////////////////////////////////////////////
//Copyright (C) 2005 NTT CORPORATION.
//
//	ツリー表示時のルートに表示する情報一覧を取得するクラス
//
//		変更履歴
//			2005.02.19  新規作成  村上 靖征
//
//	機能
//
//	このクラスはツリー表示時のルートに表示する情報一覧を取得するクラスです。
//
////////////////////////////////////////////////////////////////

package jp.co.ntt.lms.xmf.tools.xmo.Base;

import java.util.Vector;

import org.apache.velocity.context.Context;

import jp.co.ntt.lms.xmo.XMOException;
import jp.co.ntt.lms.xmo.Base.XMSBaseClient;
import jp.co.ntt.lms.xmo.Groups.GroupsData;
import jp.co.ntt.lms.xmo.Lo.LoData;

/**
 * ツリー表示時のルートに表示する情報一覧を取得するクラス
 * 
 * このクラスはツリー表示時のルートに表示する情報一覧を取得するクラスです。
 * 
 * @author 村上 靖征
 * @version 1.0
 */
public class GetRootList {

	/**
	 * ツリー表示時のルートに表示する情報一覧を取得するメソッドです。
	 * @param strTreeType ツリータイプ
	 * @param strUserID ユーザID
	 * @return Vector ルート情報
	 */
	public static Vector getRootList( Context context, String strTreeType, String strUserID)
		throws XMOException, Exception
	{
		// ルートに表示する情報を格納するベクターです
		Vector vecRootList = new Vector();
		XMSBaseClient objXms = new XMSBaseClient();
		String GROUP_TYPE = (String)context.get("GROUP_TYPE");
		String LO_TYPE = (String)context.get("LO_TYPE");
		String METHOD_TYPE = (String)context.get("METHOD_TYPE");	//	ADD 2005/03/25 Koji Umehara [メソッド管理追加]
		if( strTreeType.equals( GROUP_TYPE ) ) {

			// ルートLOリスト検索処理(管理アサインされているものを検索)
			if( !objXms.searchRootGroupList(strUserID) ) {
				throw new XMOException( objXms.getMessageData() );
			}

			// 検索がうまくいった場合
			GroupsData[] objGroupsList = objXms.getRootGroupList();

			// グループ情報をVectorに格納します
			for( int i = 0; i < objGroupsList.length; i++ ) {
				vecRootList.add( objGroupsList[i] );
			}
		}
		else if( strTreeType.equals( LO_TYPE ) ) {

			// ルートLOリスト検索処理(管理アサインされているものを検索)
			if( !objXms.searchRootLoList(strUserID ) ) {
				throw new XMOException( objXms.getMessageData() );
			}

			// 検索がうまくいった場合
			LoData[] objLoList = objXms.getRootLoList();

			// LO情報をVectorに格納します
			for( int i = 0; i < objLoList.length; i++ ) {
				vecRootList.add( objLoList[i] );
			}
		}
		//	ADD 2005/03/25 START Koji Umehara [メソッド管理追加]
		else if( strTreeType.equals( METHOD_TYPE ) ) {

			// ルートメソッドリスト検索処理(管理アサインされているものを検索)
			if( !objXms.searchRootMethodList( strUserID ) ) {
				throw new XMOException( objXms.getMessageData() );
			}

			// 検索がうまくいった場合
			LoData[] objMethodList = objXms.getRootMethodList();

			// LO情報をVectorに格納します
			for( int i = 0; i < objMethodList.length; i++ ) {
				vecRootList.add( objMethodList[i] );
			}
		}
		//	ADD 2005/03/25 END Koji Umehara [メソッド管理追加]

		return vecRootList;
	}	
}
