package addressbook;

import java.util.regex.*;;

/**
 * エラーチェッククラス
 *
 */
public class CheckBean {
	
	boolean errflg = false;
	String errmsg = "";
	
	/**
	 * コンストラクタ
	 */
	public CheckBean(){
		
	}
	
	/**
	 * item情報を持ったパラメータをチェックする
	 */
	public void checkItemParam(ParamBean param){
		this.checkBlank(param.getId(),"ID");
		this.checkId(param.getId());
		this.checkBlank(param.getName(),"名前");
		this.checkBlank(param.getZip(),"郵便番号");
		this.checkZip(param.getZip());
		this.checkBlank(param.getAddress(),"住所");
	}
	/**
	 * Idが半角数字6桁で構成されているかチェック
	 * @param str
	 */
	public void checkId(String str){
		Pattern pattern = Pattern.compile("[0-9]{6}");
		Matcher matcher = pattern.matcher(str);
		if(!matcher.matches()){
			this.errflg = true;
		    this.errmsg += "<br><font color=\"red\">IDが不正に変更された恐れがあります</font>";
		}		
	}

	/**
	 * ParamNameがnullまたは空かどうかチェックする
	 * @param str
	 * @param paramName
	 */
	public void checkBlank(String str,String paramName){
        if(str == null || str.equals("")){
        	this.errflg = true;
        	this.errmsg += "<br><font color=\"red\">"+paramName+"を入力してください。</font>";
        }
	}
	
	/**
	 * 郵便番号をチェック
	 * @param str
	 */
	public void checkZip(String str){
		Pattern pattern = Pattern.compile("^[0-9]{3}-[0-9]{4}$");
		Matcher matcher = pattern.matcher(str);
		if(!matcher.matches()){
			this.errflg = true;
		    this.errmsg += "<br><font color=\"red\">郵便番号は***-****の形式で半角数字で入力してください。</font>";
		}		
	}
	
	/**
	 * エラーメッセージを返す
	 */
	public String getErrmsg(){
		return this.errmsg;
	}
	
	/**
	 * エラーフラグをチェックする
	 * @return
	 */
	public boolean getErrflg(){
		return this.errflg;
	}
	
}

