/////////////////////////////////////////////////////////////////
//Copyright (C) 2005 NTT CORPORATION.
//
//	PerceptionLOuʈꗗvʕ\ActionNX
//
//		ύX
//			2005.02.16  VK쐬   ΍茫Y
//
//	@\
//
//	PerceptionLǑʃO\ActionNXłB
//
/////////////////////////////////////////////////////////////////
package jp.co.ntt.lms.xmf.actions.lo.Perception;

import java.util.Vector;

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

import jp.co.ntt.lms.lo.LoTopClient;
import jp.co.ntt.lms.lo.Perception.PerceptionPropertyDef;
import jp.co.ntt.lms.lo.Perception.PerceptionResponseReportData;
import jp.co.ntt.lms.xmo.Environment;
import jp.co.ntt.lms.xmo.MessageData;

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

/**
 * PerceptionLǑʃO\ActionNXłB
 * 
 * @author Kentaro Ishizaki (UNITEC)
 * @version 1.0
 */
public class PerceptionIndividualLogReportAction extends Action
{
	/**
	 * strutst[[NĂ΂郁\bhłB
	 * 
	 * @param mapping }bsOIuWFNgB
	 * @param form ANVtH[IuWFNgB
	 * @param request NGXgIuWFNgB
	 * @param response X|XIuWFNgB
	 * @return ActionForward ANVtH[hIuWFNgB
	 * @throws Exception
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
	{
		// URLp[^̎擾
		String strLoType = request.getParameter( "LoType" );
		String strResultID = request.getParameter( "ResultID" );	// ResultID

		
		// uuҌl|[gv̎擾
		Environment objEnv = new Environment();
		String strLoServerName = objEnv.getLoServerName();

		// G[ʕ\ei[obt@
		StringBuffer sb = new StringBuffer();

		LoTopClient objLoTop = new LoTopClient(strLoServerName, strLoType);
		objLoTop.setValue(PerceptionPropertyDef.RESULT_ID, strResultID);
		
		// 
		if( !objLoTop.execute( "getAccessReport" ) ) {
			// ܂Ȃꍇ
			MessageData objMessage = objLoTop.getMessageData();
			request.setAttribute("message", "");
			request.setAttribute("detail", "");
			request.setAttribute("close", "on");
			request.setAttribute("errorurl", objMessage.getURL());
			return mapping.findForward("error");
		}


		// ܂ꍇ̓f[^擾
		Vector vecReport = (Vector)objLoTop.getExecute();
		
		// zɃRs[
		String[][] arrayData = new String[vecReport.size()][2];

		String strReportURL = "";
		String strFault = "";
		String strFaultDescription = "";
		for( int i = 0; i < vecReport.size(); i++ ) {
			PerceptionResponseReportData objReport = (PerceptionResponseReportData)vecReport.get(i);
			// SOAPFault̏ꍇ̏AG[eo
			if( objReport.getFault() != null && !objReport.getFault().equals("")) {
				strFault = objReport.getFault();
				strFaultDescription = objReport.getFaultDescription();

				// O
				arrayData[i][0] = strFault;
				arrayData[i][1] = strFaultDescription;
			}
			// URL擾ɐꍇAuuҌl|[gvʂ֑J
			else{
				strReportURL = objReport.getURL();
				request.setAttribute("message", "");
				request.setAttribute("detail", "");
				request.setAttribute("close", "on");
				request.setAttribute("errorurl", strReportURL);
				return mapping.findForward("error");
			}
		}
		
		
		// NGXgɕϐZbg
		request.setAttribute("arrayData", arrayData);
		
		return mapping.findForward("success");
	}
}
