私は豆のクラスを持っています
BeanClass {
<prop1>;
<prop2>;
<prop3>;
//getters and setters
...
}
および検証ユーティリティ:
Validations {
static void notNull(Object value, ValidationResult result) {
if (...) {
...
}
}
static void doesNotExceedMaxLength(Object value, int max, ValidationResult result) {
if (...) {
...
}
}
以下のようなバリデーターを生成したいと思います-
BeanValidator {
ValidationResult validate(BeanClass bean) {
ValidationResult validationResult = new ValidationResult();
//prop1, prop3 are mandatory...
notNull(bean.getProp1(), validationResult);
notNull(bean.getProp3(), validationResult);
//prop2 must not be more than 255 characters in length
doesNotExceedMaxLength(bean.getProp2(), 255, validationResult)
return validationResult;
}
}
どのフィールドが必須で、どの値が特定の数を超えてはならないかの決定は、Bean クラスを参照して実行時に行われます。
Byte Buddy でこれを行うにはどうすればよいですか?