def validateField[T]()

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
  }