public interface IValidator
lineObject
からフィールド値を取得する場合の実装例.
IValidator
を実装するクラス内で、 MethodAccessUtil.doInvoke(Object, String)
を使い、相関対象の値を取得する. @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) @ValidateResolver(CheckRulesEnum.XXXCheck) public @interface CheckXXX { // 相関フィールドを返却する. String[] correlationFields(); }
IValidator
を実装するクラス内で、相関チェックを行う.
// targetValueがアノテーションで渡されるどのフィールド値よりも小さいことをチェックする例. public boolean validate(final Annotation anno, final String targetValue, final Object lineObject) { CheckXXX resolver = (CheckXXX) anno; if (!resolver.verifyWhenNull() && targetValue == null) { return true; } String[] fieldNames = resolver.correlationFields(); String compareValue = null; for (int i = 0; i < fieldNames.length(); i++) { compareValue = MethodAccessUtil.doInvoke(lineObject, fieldNames[i]); if (targetValue.compareTo(compareValue) > 0) { return false; } } return true; }
修飾子とタイプ | メソッドと説明 |
---|---|
boolean |
validate(Annotation anno,
String targetValue,
Object lineObject)
バリデーションを実行します.
|