package weber_4_0_sample.org.itscool.seiseki;

import org.itscool.weber.action.Action;
import org.itscool.weber.action.ActionBucket;
import org.itscool.weber.controller.Globals;

/**
 * このアクションはクライアントから入力された成績情報を
 * HttpServletRequestインスタンスにセットし、クライアントに返します
 */
public class SeisekiInputAction extends Action {
    
    /**
     * 成績入力フォーム(AskData)の入力検証を行います<br>
     * このメソッドはActionErrorクラスのvalidate()メソッドからコールされます<br>
     */
    protected String doValidate() {
        String ret = "success";
        if (!isNotNull("name")) {
            putMessage("E0001","名前を入力してください");
            ret = "input";
        }
        if (!isNotNull("id")) {
            putMessage("E0002","学生Noを入力してください");
            ret = "input";
            
        } else if (!isInt("id")) {
            putMessage("E0003","学生Noは数値で入力してください");
            ret = "input";
        }
        if (!isNotNull("score")) {
            putMessage("E0004","成績を入力してください");
            ret = "input";
        } else if (!isDouble("score")) {
            putMessage("E0005","成績は数値で入力してください");
            ret = "input";
        } else if (
            Double.parseDouble((String)getParameter("score")) < 0
            || Double.parseDouble((String)getParameter("score")) > 100) {
            putMessage("E0006","成績は0から100の間で入力してください");
            ret ="input";
        }
        if( ret.equals("input")){
            ret = Globals.REQ_PARAM_FORM_ERR;
        }
        return ret;
    }
    /**
     * FrontServletからAskDataを受け取り、結果を返します
     * @param bucket FrontServletから受け取ったフォームBeanなどが
     *               含まれています
     * @return String "success"を返します
     */
    public String doExecute(ActionBucket bucket) throws Exception {
        Seiseki data = (Seiseki)bucket.getForm();
        //リクエストスコープにAskDataオブジェクトを格納
        bucket.setAttribute("ask", data);
        return "confirm";
    }
}
