バリデート処理¶
マスタメンテナンスManagerクラスにバリデート処理メソッドに実装します。チュートリアルのプログラムを抜粋したものを以下に掲載します。(チュートリアルマスタのマネージャはこちら)/** 登録時入力チェック. */ @Override public List<KaidenValidateResult> validate4Entry(List<?> dtoList, Map<String, String> surfaces) { if (dtoList == null) { throw KaidenIllegalParametersException.makeInstance(); } return makeValidateExecuter(dtoList, surfaces, getValidateDefsDtoList4Entry()).executeAll( ErrorMode.ERROR_CONTINUE); } /** 更新時入力チェック. */ @Override public List<KaidenValidateResult> validate4Renew(List<?> dtoList, Map<String, String> surfaces) { if (dtoList == null) { throw KaidenIllegalParametersException.makeInstance(); } return makeValidateExecuter(dtoList, surfaces, getValidateDefsDtoList4Renew()).executeAll( ErrorMode.ERROR_CONTINUE); } /** 登録時入力チェック. */ @Override public List<ValidateDefsDto> getValidateDefsDtoList4Entry() { List<ValidateDefsDto> result = new ArrayList<ValidateDefsDto>(); result.add(new ValidateDefsDto("companyCd", VALID_REQUIRED)); result.add(new ValidateDefsDto("companyCd", VALID_COMPANY_EXISTS, "companyCd", "", "true")); result.add(new ValidateDefsDto("tutorialCd", VALID_REQUIRED)); result.add(new ValidateDefsDto("tutorialCd", VALID_MAX_LENGTH, "100")); result.add(new ValidateDefsDto("tutorialCd", VALID_KAIDEN_ID)); result.add(new ValidateDefsDto("localeId", VALID_REQUIRED)); result.add(new ValidateDefsDto("localeId", VALID_LOCALE)); result.add(new ValidateDefsDto("tutorialName", VALID_REQUIRED)); result.add(new ValidateDefsDto("tutorialName", VALID_MAX_LENGTH, "250")); result.add(new ValidateDefsDto("startDate", VALID_REQUIRED)); result.add(new ValidateDefsDto("startDate", VALID_DATE)); result.add(new ValidateDefsDto("endDate", VALID_REQUIRED)); result.add(new ValidateDefsDto("endDate", VALID_DATE)); result.add(new ValidateDefsDto("endDate", VALID_DATE_MIN, "startDate")); result.add(new ValidateDefsDto("deleteFlag", VALID_FLAG)); return result; } /** 更新時入力チェック. */ @Override public List<ValidateDefsDto> getValidateDefsDtoList4Renew() { List<ValidateDefsDto> result = new ArrayList<ValidateDefsDto>(); result.add(new ValidateDefsDto("companyCd", VALID_REQUIRED)); result.add(new ValidateDefsDto("companyCd", VALID_COMPANY_EXISTS, "companyCd", "", "true")); result.add(new ValidateDefsDto("tutorialCd", VALID_REQUIRED)); result.add(new ValidateDefsDto("tutorialCd", VALID_MAX_LENGTH, "100")); result.add(new ValidateDefsDto("tutorialCd", VALID_KAIDEN_ID)); result.add(new ValidateDefsDto("termCd", VALID_REQUIRED)); result.add(new ValidateDefsDto("termCd", VALID_MAX_LENGTH, "50")); result.add(new ValidateDefsDto("termCd", VALID_KAIDEN_ID)); result.add(new ValidateDefsDto("localeId", VALID_REQUIRED)); result.add(new ValidateDefsDto("localeId", VALID_LOCALE)); result.add(new ValidateDefsDto("tutorialName", VALID_REQUIRED)); result.add(new ValidateDefsDto("tutorialName", VALID_MAX_LENGTH, "250")); result.add(new ValidateDefsDto("startDate", VALID_REQUIRED)); result.add(new ValidateDefsDto("startDate", VALID_DATE)); result.add(new ValidateDefsDto("endDate", VALID_REQUIRED)); result.add(new ValidateDefsDto("endDate", VALID_DATE)); result.add(new ValidateDefsDto("endDate", VALID_DATE_MIN, "startDate")); return result; }
解説¶
新規登録前にvalidate4Entryメソッド、更新前にvalidate4Renewメソッドが実行されることを想定しています。チュートリアルでは intra-mart Accel Kaiden! 基底クラスにて新規登録時と更新時に呼び出されています。(そのためチュートリアルのLogicには記載がありません。)new ValidateDefsDto(“フィールドキー”, “バリデーションID”, 引数...)とすることで、バリデーションの定義ができます。バリデーション定義をリストにセットしていき、makeValidateExecuter(dtoList, surfaces, list)にてバリデーションが実施されます。ノート
バリデーション定義については 標準バリデーションのリファレンス を参照下さい。