/////////////////////////////////////////////////////////////////
//Copyright (C) 2005 NTT CORPORATION.
//
//	LO共通関数クラス
//
//		変更履歴
//			2005.02.12  新規作成  梅原 浩司
//
//	機能
//
//	このクラスはLO関連の共通関数のクラスです。
//
////////////////////////////////////////////////////////////////

package jp.co.ntt.lms.xmf.common;

import java.util.Vector; 

import org.apache.commons.lang.StringEscapeUtils;

import jp.co.ntt.lms.xmo.Lo.LoClient;

/**
 *  LO共通関数クラス
 * 
 *  このクラスはLO関連の共通関数のクラスです。
 * 
 *  @author 梅原 浩司
 *  @version 1.0
 */
public class LoCommonFunction {

	/**
	 * 指定したLOより１つ上のLO（親）のLOID、タイトル名を取得する
	 * @param strLoID 指定LO
	 * @return Vector 指定したLOより１つ上のLO（親）のLOID、タイトル名を収めたVectorオブジェクト
	 */
	public Vector getParentLO(String strLoID)
	{
		try
		{
			// パラメータに渡ってきたLOIDで親LOを取得
			LoClient objLo = new LoClient();
			// 検索条件の設定
			String strCondition = "LoID in (SELECT parentID FROM LoRelation WHERE childID = '" + StringEscapeUtils.escapeSql(strLoID) + "')";
			objLo.setCondition( strCondition );
			// 検索処理実行
			if( !objLo.select() ) {
				// 検索処理に失敗した場合
				return null;
			}

			Vector vecLoInfo = new Vector();
			// 検索結果の取得
			while( objLo.next() ) {
				String[] strLoInfo = new String[2];
				// LOID取得
				strLoInfo[0] = objLo.getLoID();
				// LOタイトルの取得
				strLoInfo[1] = objLo.getLoTytle();

				// 結果をベクターに格納
				vecLoInfo.add( strLoInfo );
			}
			return vecLoInfo;
		}
		catch(Exception ex)
		{
			return null;
		}
	}

	/**
	 * 指定されたLOが持つ子LOのLOID、タイトル名を取得する
	 * @param strLoID 指定LO
	 * @return Vector 指定されたLOが持つ子LOのLOID、タイトル名を収めたVectorオブジェクト
	 */
	public Vector getChild(String strLoID)
	{
		try
		{
			// 親LOIDから子LOの情報を取得する
			LoClient objLo = new LoClient();
			// 検索条件の設定
			String strCondition = "LoID in (SELECT childID FROM LoRelation WHERE parentID = '" + StringEscapeUtils.escapeSql(strLoID) + "')";
			objLo.setCondition( strCondition );
			// 検索処理実行
			if( !objLo.select() ) {
				// 検索処理に失敗した場合
				return null;
			}

			Vector vecLoInfo = new Vector();
			// 検索結果の取得
			while( objLo.next() ) {
				String[] strLoInfo = new String[2];
				// LOID取得
				strLoInfo[0] = objLo.getLoID();
				// LOタイトルの取得
				strLoInfo[1] = objLo.getLoTytle();

				// 結果をベクターに格納
				vecLoInfo.add( strLoInfo );
			}
			return vecLoInfo;
		}
		catch(Exception ex)
		{
			return null;
		}
	}
}
