AndroMDA で 独自Validatorを定義して使用する

validator-rules.xml に 独自validatorの記載を追加するため、以下ように記載を追加

マージファイル修正

ROOT/mda/conf/mappings/WebMergeMappings.xml

以下を追加する
    <mapping>
        <from><![CDATA[<!-- validator-rules merge-point -->]]></from>
        <to>
            <![CDATA[
    <validator name="hogeValidator"
               classname="hoge.validators.HogeValidator"
               method="validate"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"
               msg="errors.validate.duplicate.path">
    </validator>
            ]]>
        </to>
    </mapping>

バリデータクラスを追加

・hoge.validators.HogeValidator

public class HogeValidator {
	public static void validate(Object bean, ValidatorAction validatorAction, Field field, ActionMessages errors, Validator validator, HttpServletRequest request)
	{
		// ActionFormから検証対象となっているプロパティの値を文字列として取り出す
		String value=ValidatorUtils.getValueAsString(bean, field.getProperty());
		
		// バリデータ検証
         :
         :
		if(isError){
			errors.add(field.getKey(), Resources.getActionMessage(request, validatorAction, field));
		}
	}
}

UMLモデル修正

バリデータしたいパラメータに以下タグを追加する

@andromda.presentation.web.view.field.validators=hogeValidator