//===========================================================================
// package
//===========================================================================
package jp.gr.java_conf.bugslife.action;

//===========================================================================
// import
//===========================================================================
import java.io.IOException;
import java.util.Locale;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.logging.*;
import org.apache.struts.action.*;
import org.apache.struts.util.*;
import org.apache.commons.beanutils.*;

import java.util.*;
import jp.gr.java_conf.bugslife.user.*;
import jp.gr.java_conf.bugslife.bug.*;
import jp.gr.java_conf.bugslife.form.*;
/**
 *<PRE>
 * 
 * ShowAllActionクラス
 *
 *</PRE>
 * @version	0.0
 * @author	鰐川 正寛
 */
public final class ShowAllAction extends BaseAction 
{
//===========================================================================
// attributes
//===========================================================================
	/**
	 * Log
	 */
	private Log log = LogFactory.getLog(this.getClass().getName());
//===========================================================================
// methods
//===========================================================================
	/**
	 * exevute
	 *
	 * @param mapping The ActionMapping used to select this instance
	 * @param actionForm The optional ActionForm bean for this request (if any)
	 * @param request The HTTP request we are processing
	 * @param response The HTTP response we are creating
	 *
	 * @exception Exception if business logic throws an exception
	 */
	public ActionForward doAction(ActionMapping mapping,
				 ActionForm form,
				 HttpServletRequest request,
				 HttpServletResponse response)
				throws Exception {
		/*  初期処理
		 */
		HttpSession session = getSession(request);	//sessioの取得
		UserInfo user = (UserInfo)getAttribute(session,"UserInfo");	//ログインユーザの取得
		ActionForward forward = null;
		ShowAllForm myForm = (ShowAllForm)form;
		
		int bno = Integer.parseInt(myForm.getBno());
		
		//debug
		log.debug("bno = " + bno);
		
		//検索
		Collection bugs = BugFinder.findFullBug(bno);
		FullBug fBug = null;
		
		//debug
		log.debug("size = " + bugs.size());
		
		//０件の場合
		if (bugs == null) {
			fBug = new FullBug();	//空をおく
		} else {
			//１件目を使用する。
			//テストデータではなぜか２１件取れたことがあったがJOINの関係と思われる。
			//何件取れるかはデータによるので、コードが'00'になっていたりすると、発生するらしい。
			
			fBug = (FullBug)bugs.iterator().next();
		}
		session.setAttribute("showBug", fBug);
		
		// Forward control to the specified success URI
		return mapping.findForward("success");
	}
}
