intra-mart Accel Kaiden! / プログラミングガイド

第2版 2014-08-01

«  4.2.3.3.2. 重複チェックフィールド返却   ::   コンテンツ   ::   4.2.3.4. ヘルパー(Helper)  »

4.2.3.3.3. バリデート処理

マスタメンテナンス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;
    }

4.2.3.3.3.1. 解説

新規登録前にvalidate4Entryメソッド、更新前にvalidate4Renewメソッドが実行されることを想定しています。
チュートリアルでは intra-mart Accel Kaiden! 基底クラスにて新規登録時と更新時に呼び出されています。(そのためチュートリアルのLogicには記載がありません。)

new ValidateDefsDto(“フィールドキー”, “バリデーションID”, 引数...)とすることで、バリデーションの定義ができます。
バリデーション定義をリストにセットしていき、makeValidateExecuter(dtoList, surfaces, list)にてバリデーションが実施されます。

コラム

バリデーション定義については 標準バリデーションのリファレンス を参照ください。

«  4.2.3.3.2. 重複チェックフィールド返却   ::   コンテンツ   ::   4.2.3.4. ヘルパー(Helper)  »