Class LuhnCheckDigit
- java.lang.Object
-
- org.apache.commons.validator.routines.checkdigit.ModulusCheckDigit
-
- org.apache.commons.validator.routines.checkdigit.LuhnCheckDigit
-
- All Implemented Interfaces:
java.io.Serializable
,CheckDigit
public final class LuhnCheckDigit extends ModulusCheckDigit
Modulus 10 Luhn Check Digit calculation/validation. Luhn check digits are used, for example, by:- Credit Card Numbers
- IMEI Numbers - International Mobile Equipment Identity Numbers
See Wikipedia for more details.
- Since:
- Validator 1.4
- Version:
- $Revision: 1739356 $
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static CheckDigit
LUHN_CHECK_DIGIT
Singleton Luhn Check Digit instance
-
Constructor Summary
Constructors Constructor Description LuhnCheckDigit()
Construct a modulus 10 Luhn Check Digit routine.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected int
weightedValue(int charValue, int leftPos, int rightPos)
Calculates the weighted value of a charcter in the code at a specified position.-
Methods inherited from class org.apache.commons.validator.routines.checkdigit.ModulusCheckDigit
calculate, calculateModulus, getModulus, isValid, sumDigits, toCheckDigit, toInt
-
-
-
-
Field Detail
-
LUHN_CHECK_DIGIT
public static final CheckDigit LUHN_CHECK_DIGIT
Singleton Luhn Check Digit instance
-
-
Method Detail
-
weightedValue
protected int weightedValue(int charValue, int leftPos, int rightPos)
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
- Specified by:
weightedValue
in classModulusCheckDigit
- Parameters:
charValue
- The numeric value of the character.leftPos
- The position of the character in the code, counting from left to rightrightPos
- The positionof the character in the code, counting from right to left- Returns:
- The weighted value of the character.
-
-