in elitzur-core/src/main/scala/com/spotify/elitzur/validators/Validator.scala [424:457]
def validateField[T](
validator: FieldValidator[T],
value: PreValidation[T],
config: ValidationFieldConfig,
outermostClassName: String,
fieldName: String
)(implicit reporter: MetricsReporter): PostValidation[T] = {
val result = validator.validateRecord(value)
val validationType = validator.validationType
if (result.isValid) {
if (config != NoCounter) {
reporter.reportValid(
outermostClassName,
fieldName,
validationType
)
}
} else if (result.isInvalid) {
if (config == ThrowException) {
throw new DataInvalidException(
s"Invalid value ${result.forceGet.toString} found for field $fieldName"
)
}
if (config != NoCounter) {
reporter.reportInvalid(
outermostClassName,
fieldName,
validationType
)
}
}
result
}