/////////////////////////////////////////////////////////////////
//Copyright (C) 2005 NTT CORPORATION.
//
//	参照リストツールクラス
//
//		変更履歴
//			2005.02.15 新規作成  梅原 浩司
//
//	機能
//
//	このクラスは参照リストツールのクラスです。
//
////////////////////////////////////////////////////////////////

package jp.co.ntt.lms.xmf.tools.lo.com;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.net.URLEncoder;

import jp.co.ntt.lms.xmo.Lo.LoClient;
import jp.co.ntt.lms.xmf.common.CommonFunction;

/**
 *  参照リストツールクラス
 * 
 *  このクラスは参照リストツールのクラスです。
 * 
 *  @author 梅原 浩司
 *  @version 1.0
 */
public class ComRefListTool {
	
	private String[][] strResultPath = null;
	
	/**
	 * 参照リストを取得する。
	 * @param request リクエストオブジェクト
	 * @param response レスポンスオブジェクト
	 * @param strLoID LOID
	 * @return String[][] 参照リスト
	 * @throws Exception
	 */
	public String[][] getRefList(HttpServletRequest request, HttpServletResponse response, String strLoID)
	throws Exception 
	{
		LoClient objLo = new LoClient();
		String strLoginUserID = (String)request.getSession().getAttribute( "userId" );		// ログインユーザID
		// LO参照リストの検索処理
		if( !objLo.searchReferenceList( strLoID, strLoginUserID ) )
			{
			// 検索に失敗した場合
			if( objLo.isErr() )
			{
				// エラーの場合
				response.sendRedirect( objLo.getURL() );
			}
			else
			{
				String strMessage =  objLo.getMessage();
				response.sendRedirect( CommonFunction.getParamErrURL( strMessage, null, true ) );
			}
		}
		strResultPath = objLo.getReferenceList();
		 return strResultPath;
	}
	
	/**
	 * IDパスを取得する。
	 * @param strIDPath IDパス
	 * @param strLoID LOID
	 * @param strLoType LO種別
	 * @return String IDパス
	 * @throws Exception
	 */
	public String getIDPath(String strIDPath, String strLoID, String strLoType) throws Exception
	{
		// IDパスが自分自身のパスの場合は表示しない
		String strLast_ID = strIDPath.substring( strIDPath.lastIndexOf( '/' ) + 1, strIDPath.length() );
		if( strLast_ID.equals( strLoID ) )
		{
			return "";
		}

		String strFirstPath = strIDPath.substring( 0, strIDPath.lastIndexOf( '/' ) );
		String strLastPath = strIDPath.substring( strIDPath.lastIndexOf( '/' ) + 1, strIDPath.length() );
		
		//LOタイプがコンテナ以外の場合は"/"
		String strIDPathRet = "";
		if(!strLoType.equals("") && !strLoType.equals("0")){
			strIDPathRet = strFirstPath + "/" + strLastPath;
		}else{
			strIDPathRet = strFirstPath + "," + strLastPath;

		}
		
		strIDPathRet = URLEncoder.encode( new String( strIDPathRet.getBytes( "8859_1" ), "JISAutoDetect" ), "UTF-8" );
		
		return strIDPathRet;
	}
}
