DynamicValidator


DynamicPropertyのように、動的にValidatorを変えたい場合のために

DynamicValidatorを実装しました。

対象のコンポーネントのid+Validatorのgetterで

Validatorを動的に置き換えて使うことが出来ます。

その際アノテーションで指定したValidatorは無視されます。

サンプルコードは下記のようになります。

public class DynamicValidatorPage {

	// これらは動的なValidatorが定義されている場合、無視される
	public static final String aaa_TRequiredValidator = null;

	public static final String aaa_TLengthValidator = "minimum = 1";

	public static final String bbb_TRequiredValidator = null;

	public static final String bbb_TLengthValidator = "minimum = 1";

	private Integer aaa;

	private Integer bbb;

	public Validator getAaaValidator() {
		return createValidator();
	}

	public Validator getBbbValidator() {
		return createValidator();
	}

	protected Validator createValidator() {
		ValidatorChain chain = new ValidatorChain();
		chain.add(new TRequiredValidator());
		TLengthValidator lengthValidator = new TLengthValidator();
		lengthValidator.setMinimum(5);
		chain.add(lengthValidator);
		return chain;
	}

	public void doExec() {
	}

	public Integer getAaa() {
		return aaa;
	}

	public Integer getBbb() {
		return bbb;
	}

	public void setAaa(Integer aaa) {
		this.aaa = aaa;
	}

	public void setBbb(Integer bbb) {
		this.bbb = bbb;
	}

}