org.apache.commons.validator.routines.checkdigit
Class LuhnCheckDigit

java.lang.Object
  extended by org.apache.commons.validator.routines.checkdigit.ModulusCheckDigit
      extended by org.apache.commons.validator.routines.checkdigit.LuhnCheckDigit
All Implemented Interfaces:
Serializable, CheckDigit

public final class LuhnCheckDigit
extends ModulusCheckDigit

Modulus 10 Luhn Check Digit calculation/validation.

Luhn check digits are used, for example, by:

Check digit calculation is based on modulus 10 with digits in an odd position (from right to left) being weighted 1 and even position digits being weighted 2 (weighted values greater than 9 have 9 subtracted).

See Wikipedia for more details.

Since:
Validator 1.4
Version:
$Revision: 1227719 $ $Date: 2012-01-05 18:45:51 +0100 (Thu, 05 Jan 2012) $
See Also:
Serialized Form

Field Summary
static CheckDigit LUHN_CHECK_DIGIT
          Singleton Luhn Check Digit instance
 
Constructor Summary
LuhnCheckDigit()
          Construct a modulus 10 Luhn Check Digit routine.
 
Method Summary
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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LUHN_CHECK_DIGIT

public static final CheckDigit LUHN_CHECK_DIGIT
Singleton Luhn Check Digit instance

Constructor Detail

LuhnCheckDigit

public LuhnCheckDigit()
Construct a modulus 10 Luhn Check Digit routine.

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 class ModulusCheckDigit
Parameters:
charValue - The numeric value of the character.
leftPos - The position of the character in the code, counting from left to right
rightPos - The positionof the character in the code, counting from right to left
Returns:
The weighted value of the character.


Copyright © 2002-2012 The Apache Software Foundation. All Rights Reserved.