//===========================================================================
// 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.struts.validator.ValidatorForm;
import java.io.UnsupportedEncodingException;

import jp.gr.java_conf.bugslife.util.*;
/**
 *<PRE>
 * DispatchListFormクラス
 *
 *</PRE>
 * @author 鰐川　正寛
 * @version 1.0.0
 */
public class DispatchListForm extends ValidatorForm {
//===========================================================================
// attributes
//===========================================================================
	/**
	 * アクション
	 */
	private String m_action;
	/**
	 * uno
	 */
	private int m_uno;
	/**
	 * dispatchUno
	 */
	private int m_dispatchUno;
	/**
	 * 表示順uno
	 */
	private String[] m_dispNo;
//===========================================================================
// methods
//===========================================================================
	/**
	 * アクションのセット
	 * 
	 * @param action アクション
	 */
	public void setAction(String action) {
		m_action = action;
	}
	/**
	 * アクションの取得
	 * 
	 * @return アクション
	 */
	public String getAction() {
		return m_action;
	}
	/**
	 * unoの取得
	 * 
	 * @return uno
	 */
	public int getUno() {
		return m_uno;
	}
	/**
	 * unoのセット
	 * 
	 * @param delUno
	 */
	public void setUno(int Uno) {
		m_uno = Uno;
	}
	/**
	 * unoの取得
	 * 
	 * @return uno
	 */
	public int getDispatchUno() {
		return m_dispatchUno;
	}
	/**
	 * dispatchUnoのセット
	 * 
	 * @param delUno
	 */
	public void setDispatchUno(int dispatchUno) {
		m_dispatchUno = dispatchUno;
	}
	/**
	 * 表示順のセット
	 * 
	 * @param del
	 */
	public void setDispNo(String[] DispNo) {
		m_dispNo = DispNo;
	}
	/**
	 * 表示順の取得
	 * 
	 * @return DispNo
	 */
	public String[] getDispNo() {
		return m_dispNo;
	}
	/**
	 * 文字列化
	 *
	 * @return 文字列
	 */
	public String toString() {
		
		StringBuffer sb = new StringBuffer();
		sb.append("action     :"  + m_action + "\n");
		sb.append("uno        :"  + m_uno + "\n");
		sb.append("dispatchUno:"  + m_dispatchUno + "\n");
		if (m_dispNo != null) {
		    for(int i=0; i < m_dispNo.length; i++) {
				sb.append("dispNo["+ i + "]:" + m_dispNo[i] + "\n");
		    }
		}
		return new String(sb);
	}
	/**
	 * デバッグ文字出力
	 *
	 * @param s 出力文字列
	 */
	private void debug(String s) {
		System.out.println("[DispatchListForm]" + 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_uno = 0;
		m_dispatchUno = 0;
		m_dispNo = 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) {
		ActionErrors errors = new ActionErrors();
		//debug
		debug("validate");
		
		debug(this.toString());
	
		//action
		Varidater.checkRequired(m_action, "action", errors);
		
		//dispNo
		if (m_dispNo != null) {
		    for (int i = 0; i < m_dispNo.length; i++) {
				Varidater.checkNumeric(m_dispNo[i], "dispNo", errors);
		    }
		}
		
		/*-------------------------------------------------
		 * ここを直すとコンパイルエラーが出るので後で見直す
		-------------------------------------------------*/
//		//uno
//		if (m_action.equals("add")) {
//			m_uno = 0;
//		} else {
//			if (m_uno == 0) {
//				errors.add("uno", new ActionError("error.uno.required"));
//			}
//		}
		return errors;
	}
}