public final class LuhnValidator extends Object
Luhn check digits are used, for example, by:
See Wikipedia for more details.
| Constructor and Description |
|---|
LuhnValidator() |
| Modifier and Type | Method and Description |
|---|---|
void |
initialize(A annotation) |
boolean |
isValid(CharSequence code,
javax.validation.ConstraintValidatorContext context) |
protected static int |
sumDigits(int number)
Add together the individual digits in a number.
|
protected int |
toInt(char character,
int leftPos,
int rightPos)
Convert a character at a specified position to an integer value.
|
protected int |
weightedValue(int charValue,
int leftPos,
int rightPos)
Calculates the weighted value of a charcter in the
code at a specified position.
|
protected int weightedValue(int charValue,
int leftPos,
int rightPos)
throws Exception
Calculates the weighted value of a charcter in the code at a specified position.
For Luhn (from right to left) odd digits are weighted with a factor of one and even digits with a factor of two. Weighted values > 9, have 9 subtracted
Calculates the weighted value of a character in the code at a specified position.Some modulus routines weight the value of a character depending on its position in the code (e.g. ISBN-10), while others use different weighting factors for odd/even positions (e.g. EAN or Luhn). Implement the appropriate mechanism required by overriding this method.
charValue - The numeric value of the characterleftPos - The position of the character in the code, counting from left to rightrightPos - The position of the character in the code, counting from right to leftExceptionpublic final void initialize(A annotation)
initialize in interface javax.validation.ConstraintValidator<A extends Annotation,CharSequence>public boolean isValid(CharSequence code, javax.validation.ConstraintValidatorContext context)
isValid in interface javax.validation.ConstraintValidator<A extends Annotation,CharSequence>protected int toInt(char character,
int leftPos,
int rightPos)
Note: this implementation only handlers numeric values For non-numeric characters, override this method to provide character-->integer conversion.
character - The character to convertleftPos - The position of the character in the code, counting from left to rightrightPos - The positionof the character in the code, counting from right to leftprotected static int sumDigits(int number)
number - The number whose digits are to be addedCopyright © 2010–2020 The Apache Software Foundation. All rights reserved.