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
implements Serializable

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: 493905 $ $Date: 2007-01-08 03:11:38 +0100 (Mo, 08. Jan 2007) $
See Also:
Serialized Form

Field Summary
static CheckDigit INSTANCE
          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

INSTANCE

public static final CheckDigit INSTANCE
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-2010 Apache Software Foundation. All Rights Reserved.