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

//===========================================================================
// import
//===========================================================================
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

import java.io.UnsupportedEncodingException;

import java.util.*;
import java.text.*;

import jp.gr.java_conf.bugslife.util.*;

/**
 *<PRE>
 * Formクラス
 *
 *</PRE>
 * @author 鰐川　正寛
 * @version 1.0.0
 */
public class BugDetail5Form extends ActionForm {
//===========================================================================
// attributes
//===========================================================================
	/**
	 * アクション
	 */
	private String m_action;
	/**
	 * 故障番号
	 */
	private int m_bno;
	/**
	 * 処置内容
	 */
	private String m_addText;
	/**
	 * サブミットタイプ
	 */
	private String m_submitType = DEFAULT_STATUS;
	/**
	 * 要求ステータス状況
	 */
	private String m_requestStatusWhitebord;
	/**
	 * 要求ステータス
	 */
	private String m_requestStatus;
	/**
	 * 担当者
	 */
	private String m_requestAssigne;
	/**
	 * メール送信要否
	 */
	private boolean m_dontSendMail;
//===========================================================================
// other attribute
//===========================================================================
	private static final String DEFAULT_STATUS = "close";
//===========================================================================
// methods
//===========================================================================
	/**
	 * アクションの取得
	 * 
	 * @return アクション
	 */
	public String getAction()
	{
		return m_action;
	}
	/**
	 * アクションのセット
	 * 
	 * @param action アクション
	 */
	public void setAction(String action)
	{
		m_action = action;
	}
	/**
	 * 故障番号の取得
	 * 
	 * @return 故障番号
	 */
	public int getBno()
	{
		return m_bno;
	}
	/**
	 * 故障番号のセット
	 * 
	 * @param bno 故障番号
	 */
	public void setBno(int bno)
	{
		m_bno = bno;
	}
	/**
	 * 確認事項の取得
	 * 
	 * @return 確認事項
	 */
	public String getAddText()
	{
		return m_addText;
	}
	/**
	 * 確認事項のセット
	 * 
	 * @param addText 確認事項
	 */
	public void setAddText(String addText)
	{
		m_addText = addText;
	}
	/**
	 * サブミットタイプの取得
	 * 
	 * @return サブミットタイプ
	 */
	public String getSubmitType()
	{
		return m_submitType;
	}
	/**
	 * サブミットタイプのセット
	 * 
	 * @param submitType サブミットタイプ
	 */
	public void setSubmitType(String submitType)
	{
		m_submitType = submitType;
	}
	/**
	 * 要求ステータス状況の取得
	 * 
	 * @return 要求ステータス状況
	 */
	public String getRequestStatusWhitebord()
	{
		return m_requestStatusWhitebord;
	}
	/**
	 * 要求ステータス状況のセット
	 * 
	 * @param requestStatusWhitebord 要求ステータス状況
	 */
	public void setRequestStatusWhitebord(String requestStatusWhitebord)
	{
		m_requestStatusWhitebord = requestStatusWhitebord;
	}
	/**
	 * 要求ステータスの取得
	 * 
	 * @return 要求ステータス
	 */
	public String getRequestStatus()
	{
		return m_requestStatus;
	}
	/**
	 * 要求ステータスのセット
	 * 
	 * @param requestStatus 要求ステータス
	 */
	public void setRequestStatus(String requestStatus)
	{
		m_requestStatus = requestStatus;
	}
	/**
	 * 担当者の取得
	 * 
	 * @return 担当者
	 */
	public String getRequestAssigne()
	{
		return m_requestAssigne;
	}
	/**
	 * 担当者のセット
	 * 
	 * @param requestAssigne 担当者
	 */
	public void setRequestAssigne(String requestAssigne)
	{
		m_requestAssigne = requestAssigne;
	}
	/**
	 * 送信メール要否の取得
	 * 
	 * @return 送信メール要否
	 */
	public boolean getDontSendMail()
	{
		return m_dontSendMail;
	}
	/**
	 * 送信メール要否のセット
	 * 
	 * @param dontSendMail 送信メール要否
	 */
	public void setDontSendMail(boolean dontSendMail)
	{
		m_dontSendMail = dontSendMail;
	}
//=====================================
// debug
//====================================
	/**
	 */
	public void debug(String s) {
		System.out.println("[BugDetail5Form]" + s);
	}
//===========================================================================
// Public Methods
//===========================================================================
	/**
	* リセット
	*
	* @param mapping The mapping used to select this instance
	* @param request The servlet request we are processing
	*/
	public void reset(ActionMapping mapping, HttpServletRequest request) {
		
		//debug
		debug("reset");
		//encodeing セット
		try {
			request.setCharacterEncoding("SJIS");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		
		m_action = null;
		m_bno = 0;
		m_addText = null;
		m_submitType = DEFAULT_STATUS;
		m_requestStatusWhitebord = null;
		m_requestStatus = null;
		m_requestAssigne = null;
		m_dontSendMail = false;
	}
	/**
	* 値の検証(Validate) 
	*
	* @param mapping The mapping used to select this instance
	* @param request The servlet request we are processing
	*/
	public ActionErrors validate(ActionMapping mapping,
								 HttpServletRequest request) {
		ActionErrors errors = new ActionErrors();
		
		debug("validate");
		
		//action
		Varidater.checkRequired(m_action, "action", errors);
		
		//submitType
		if (Varidater.checkSelected(m_submitType, "submitType", errors)) {
			//空
		}
		return errors;
	}
}