//===========================================================================
// 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 org.apache.commons.logging.*;

import org.apache.struts.validator.ValidatorForm;

import java.io.UnsupportedEncodingException;

import jp.gr.java_conf.bugslife.util.*;
/**
 *<PRE>
 * SysconfFormクラス
 *
 *</PRE>
 * @author 鰐川　正寛
 * @version 1.0.0
 */
public class SysconfEditForm extends ActionForm {
//===========================================================================
// attributes
//===========================================================================
	/**
	 * action
	 */
	private String m_action;
	/**
	 * システムID
	 */
	private String m_sysid;
	/**
	 * システム名称
	 */
	private String m_sysname;
	/**
	 * カレント工程
	 */
	private String m_currentPno;
	/**
	 * デフォルトＡＰバージョン
	 */
	private String m_currentAppver;
	/**
	 * デフォルトＤＢバージョン
	 */
	private String m_currentDbver;
	/**
	 * デフォルトＨＴＭＬバージョン
	 */
	private String m_currentHtmlver;
	/**
	 * デフォルト機能バージョン
	 */
	private String m_currentSpecver;
	/**
	 * お知らせ
	 */
	private String m_sysinfo;
	/**
	 * 添付ファイルパス
	 */
	private String m_attachPath;
	/**
	 * SMTPアドレス
	 */
	private String m_smtpAdress;
	/**
	 * FROMアドレス
	 */
	private String m_fromAdress;
	/**
	 * Log
	 */
	private Log log = LogFactory.getLog(this.getClass().getName());
//===========================================================================
// methods
//===========================================================================
	/**
	 * アクションの取得
	 * 
	 * @return アクション
	 */
	public String getAction()
	{
		return m_action;
	}
	/**
	 * アクションのセット
	 * 
	 * @param action アクション
	 */
	public void setAction(String action)
	{
		m_action = action;
	}
	/**
	 * システムIDの取得
	 * 
	 * @return システムID
	 */
	public String getSysid()
	{
		return m_sysid;
	}
	/**
	 * システムIDのセット
	 * 
	 * @param sysid システムID
	 */
	public void setSysid(String sysid)
	{
		m_sysid = sysid;
	}
	/**
	 * システム名称の取得
	 * 
	 * @return システム名称
	 */
	public String getSysname()
	{
		return m_sysname;
	}
	/**
	 * システム名称のセット
	 * 
	 * @param sysname システム名称
	 */
	public void setSysname(String sysname)
	{
		m_sysname = sysname;
	}
	/**
	 * カレント工程の取得
	 * 
	 * @return カレント工程
	 */
	public String getCurrentPno()
	{
		return m_currentPno;
	}
	/**
	 * カレント工程のセット
	 * 
	 * @param currentPno カレント工程
	 */
	public void setCurrentPno(String currentPno)
	{
		m_currentPno = currentPno;
	}
	/**
	 * デフォルトＡＰバージョンの取得
	 * 
	 * @return デフォルトＡＰバージョン
	 */
	public String getCurrentAppver()
	{
		return m_currentAppver;
	}
	/**
	 * デフォルトＡＰバージョンのセット
	 * 
	 * @param currentAppver デフォルトＡＰバージョン
	 */
	public void setCurrentAppver(String currentAppver)
	{
		m_currentAppver = currentAppver;
	}
	/**
	 * デフォルトＤＢバージョンの取得
	 * 
	 * @return デフォルトＤＢバージョン
	 */
	public String getCurrentDbver()
	{
		return m_currentDbver;
	}
	/**
	 * デフォルトＤＢバージョンのセット
	 * 
	 * @param currentDbver デフォルトＤＢバージョン
	 */
	public void setCurrentDbver(String currentDbver)
	{
		m_currentDbver = currentDbver;
	}
	/**
	 * デフォルトＨＴＭＬバージョンの取得
	 * 
	 * @return デフォルトＨＴＭＬバージョン
	 */
	public String getCurrentHtmlver()
	{
		return m_currentHtmlver;
	}
	/**
	 * デフォルトＨＴＭＬバージョンのセット
	 * 
	 * @param currentHtmlver デフォルトＨＴＭＬバージョン
	 */
	public void setCurrentHtmlver(String currentHtmlver)
	{
		m_currentHtmlver = currentHtmlver;
	}
	/**
	 * デフォルト機能バージョンの取得
	 * 
	 * @return デフォルト機能バージョン
	 */
	public String getCurrentSpecver()
	{
		return m_currentSpecver;
	}
	/**
	 * デフォルト機能バージョンのセット
	 * 
	 * @param currentSpecver デフォルト機能バージョン
	 */
	public void setCurrentSpecver(String currentSpecver)
	{
		m_currentSpecver = currentSpecver;
	}
	/**
	 * お知らせの取得
	 * 
	 * @return お知らせ
	 */
	public String getSysinfo()
	{
		return m_sysinfo;
	}
	/**
	 * お知らせのセット
	 * 
	 * @param sysinfo お知らせ
	 */
	public void setSysinfo(String sysinfo)
	{
		m_sysinfo = sysinfo;
	}
	/**
	 * 添付ファイルパスの取得
	 * 
	 * @return 添付ファイルパス
	 */
	public String getAttachPath()
	{
		return m_attachPath;
	}
	/**
	 * 添付ファイルパスのセット
	 * 
	 * @param attachPath 添付ファイルパス
	 */
	public void setAttachPath(String attachPath)
	{
		m_attachPath = attachPath;
	}
	/**
	 * SMTPアドレスの取得
	 * 
	 * @return SMTPアドレス
	 */
	public String getSmtpAdress()
	{
		return m_smtpAdress;
	}
	/**
	 * SMTPアドレスのセット
	 * 
	 * @param smtpAdress SMTPアドレス
	 */
	public void setSmtpAdress(String smtpAdress)
	{
		m_smtpAdress = smtpAdress;
	}
	/**
	 * FROMアドレスの取得
	 * 
	 * @return FROMアドレス
	 */
	public String getFromAdress()
	{
		return m_fromAdress;
	}
	/**
	 * FROMアドレスのセット
	 * 
	 * @param fromAdress FROMアドレス
	 */
	public void setFromAdress(String fromAdress)
	{
		m_fromAdress = fromAdress;
	}
//===========================================================================
// Debugging Methods
//===========================================================================
	/**
	 * toString
	 */
	public String toString() {
		
		StringBuffer sb = new StringBuffer();
		sb.append("action    :"  + m_action + "\n");
		sb.append("sysid     :"  + m_sysid + "\n");
		sb.append("sysname   :"  + m_sysname + "\n");
		sb.append("Pno       :"  + m_currentPno + "\n");
		sb.append("Appver    :"  + m_currentAppver + "\n");
		sb.append("Dbver     :"  + m_currentDbver + "\n");
		sb.append("Htmlver   :"  + m_currentHtmlver + "\n");
		sb.append("sysinfo   :"  + m_sysinfo + "\n");
		sb.append("attachPath:"  + m_attachPath + "\n");
		sb.append("smtpAdress:"  + m_smtpAdress + "\n");
		sb.append("fromAdress:"  + m_fromAdress + "\n");
		return new String(sb);
	}
//===========================================================================
// 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
		log.debug("reset");
		//encodeing セット
		try {
			request.setCharacterEncoding("SJIS");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		
		m_action = null;
		m_sysid = null;
		m_sysname = null;
		m_currentPno = null;
		m_currentAppver = null;
		m_currentDbver = null;
		m_currentHtmlver = null;
		m_currentSpecver = null;
		m_sysinfo = null;
		m_attachPath = null;
		m_smtpAdress = null;
		m_fromAdress = null;
	}
	/**
	* 値の検証(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) {
		//debnug
		log.debug("validate");
		ActionErrors errors = new ActionErrors();
		
		//action
		Varidater.checkRequired(m_action, "action", errors);
		//sysid
		Varidater.checkRequired(m_sysid, "sysid", errors);
		//sysname
		Varidater.checkRequired(m_sysname, "sysname", errors);
		//currentPno
		Varidater.checkRequired(m_currentPno, "currentPno", errors);
		//currentAppver
		Varidater.checkRequired(m_currentAppver, "currentAppver", errors);
		//currentDbver
		Varidater.checkRequired(m_currentDbver, "currentDbver", errors);
		//currentHtmlver
		Varidater.checkRequired(m_currentHtmlver, "currentHtmlver", errors);
		//currentSpecver
		Varidater.checkRequired(m_currentSpecver, "currentSpecver", errors);
		//sysinfo
		Varidater.checkRequired(m_sysinfo, "sysinfo", errors);
		//attachPath
		Varidater.checkRequired(m_attachPath, "attachPath", errors);
		//smtpAdress
		Varidater.checkRequired(m_smtpAdress, "smtpAdress", errors);
		//fromAdress
		Varidater.checkRequired(m_fromAdress, "fromAdress", errors);
		
		return errors;
	}
}