/////////////////////////////////////////////////////////////////
//Copyright (C) 2005 NTT CORPORATION.
//
//	LO登録フレームアクションクラス
//
//		変更履歴
//			2005.02.09  新規作成  梅原 浩司
//
//	機能
//
//	このクラスはLO登録フレームのアクションクラスです。
//
////////////////////////////////////////////////////////////////

package jp.co.ntt.lms.xmf.actions.xmo.lo;

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

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.util.MessageResources;

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

/**
 *  LO登録フレームアクションクラス
 * 
 *  このクラスはLO登録フレームのアクションクラスです。
 * 
 *  @author 梅原 浩司
 *  @version 1.0
 */
public class LoInsertFrameAction extends Action {
	
	/**
	 * executeメソッド
	 * 
	 * @param ActionMapping このアクションが選択されたときに使用されたActionMapping
	 * @param ActionForm 入力フォーム
	 * @param HttpServletRequest HTTPリクエスト
	 * @param HttpServletResponse HTTPレスポンス
	 * @return ActionForward アクションフォワード
	 * @throws Exception 
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {

		///////////////////////////////////////////
		// パラメータ取得
		// 	・parentID	親LoのID	必須
		// 	・returnURL	戻りページ		必須
		///////////////////////////////////////////
		String strParentID = request.getParameter("parentID");	// 親LoのID
		String strReturnURL = request.getParameter("returnURL"); // 戻りページ
		
		// メッセージリソース取得
		MessageResources resources = getResources(request, "msg.xmf.xmo.Lo.MessageResources");

		///////////////////////////////////////////
		// パラメータチェック
		///////////////////////////////////////////
		if( strParentID == null || strParentID.equals( "" ) ) {
			request.setAttribute("message", resources.getMessage("M042003"));
			request.setAttribute("detail", resources.getMessage("D042003"));
			request.setAttribute("close", "on");
			return mapping.findForward("error");
		}
		if( strReturnURL == null || strReturnURL.equals( "" ) ) {
			request.setAttribute("message", resources.getMessage("M042002"));
			request.setAttribute("detail", resources.getMessage("D042002"));
			request.setAttribute("close", "on");
			return mapping.findForward("error");
		}
		
		//LO種別情報を取得します
		LoClient objLo = new LoClient();
		
		// 親IDのLO種別を取得します
		objLo.setWhereLoID( strParentID );
		if( !objLo.select() ) {
			// 検索がうまくいかなかった場合
			if( objLo.isErr() ) {
				// エラーの場合
				request.setAttribute("errorurl", objLo.getURL());
			}
			else {
				request.setAttribute("message", objLo.getMessage());
				request.setAttribute("detail", "");
				request.setAttribute("close", "on");
			}
			return mapping.findForward("error");
		}

		if( objLo.next() ) {
			String strParentLoType = objLo.getLoType();
			// コンテナ以外の場合は登録できない
			if( !strParentLoType.equals( "0" ) ) {
				request.setAttribute("message", resources.getMessage("M042004"));
				request.setAttribute("detail", resources.getMessage("D042004"));
				request.setAttribute("close", "on");
				return mapping.findForward("error");
			}
		}

		request.setAttribute("strParentID_o", strParentID);
		request.setAttribute("strReturnURL_o", strReturnURL);

		return mapping.findForward("success");
	}
}
