Можно ли получить доступ к другим свойствам класса в рамках валидатора, связанного со свойством? Прямо сейчас у меня есть следующее (в обозначении Kotlin):
Аннотированное поле и взаимозависимое поле:
@MyConstraint(message = "Not valid")
var myBigDecimal: BigDecimal? = null
var anotherBigDecimal: BigDecimal? = null
Ограничение:
@Target(AnnotationTarget.FIELD)
@Retention(AnnotationRetention.RUNTIME)
@Constraint(validatedBy = [MyValidator::class])
annotation class MyConstraint(
val message: String = "Foo",
val groups: Array<KClass<out Any>> = arrayOf(),
val payload: Array<KClass<out Any>> = arrayOf()
)
Валидатор:
class MyValidator :
ConstraintValidator<MyConstraint, BigDecimal> {
override fun isValid(value: BigDecimal,
context: ConstraintValidatorContext): Boolean {
//right here I need to access 'anotherBigDecimal' // see above
}
Я бы ожидал, что контекст, передаваемый методу isValid
ConstraintValidator
, будет содержать экземпляр класса, но это не так. Я знаю, что мог бы решить проблему с ConstraintValidator на уровне класса, но я хочу, чтобы это было связано со свойствами.