java.lang.Object
org.hibernate.validator.internal.constraintvalidators.hv.ModCheckBase
org.hibernate.validator.internal.constraintvalidators.hv.LuhnCheckValidator
All Implemented Interfaces:
ConstraintValidator<LuhnCheck,CharSequence>

public class LuhnCheckValidator extends ModCheckBase implements ConstraintValidator<LuhnCheck,CharSequence>
Luhn algorithm checksum validator http://en.wikipedia.org/wiki/Luhn_algorithm http://en.wikipedia.org/wiki/Check_digit
Author:
George Gastaldi, Hardy Ferentschik, Victor Rezende dos Santos
  • Constructor Details

    • LuhnCheckValidator

      public LuhnCheckValidator()
  • Method Details

    • initialize

      public void initialize(LuhnCheck constraintAnnotation)
      Description copied from interface: ConstraintValidator
      Initializes the validator in preparation for ConstraintValidator.isValid(Object, ConstraintValidatorContext) calls. The constraint annotation for a given constraint declaration is passed.

      This method is guaranteed to be called before any use of this instance for validation.

      The default implementation is a no-op.

      Specified by:
      initialize in interface ConstraintValidator<LuhnCheck,CharSequence>
      Parameters:
      constraintAnnotation - annotation instance for a given constraint declaration
    • isCheckDigitValid

      public boolean isCheckDigitValid(List<Integer> digits, char checkDigit)
      Validate check digit using Luhn algorithm
      Specified by:
      isCheckDigitValid in class ModCheckBase
      Parameters:
      digits - The digits over which to calculate the checksum
      checkDigit - the check digit
      Returns:
      true if the luhn check result matches the check digit, false otherwise