Class ISINCheckDigit
- java.lang.Object
-
- org.apache.commons.validator.routines.checkdigit.ModulusCheckDigit
-
- org.apache.commons.validator.routines.checkdigit.ISINCheckDigit
-
- All Implemented Interfaces:
java.io.Serializable
,CheckDigit
public final class ISINCheckDigit extends ModulusCheckDigit
Modulus 10 ISIN (International Securities Identifying Number) Check Digit calculation/validation.ISIN Numbers are 12 character alphanumeric codes used to identify Securities.
Check digit calculation uses the Modulus 10 Double Add Double technique with every second digit being weighted by 2. Alphabetic characters are converted to numbers by their position in the alphabet starting with A being 10. Weighted numbers greater than ten are treated as two separate numbers.
See Wikipedia - ISIN for more details.
- Since:
- Validator 1.4
- Version:
- $Revision: 1739356 $
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static CheckDigit
ISIN_CHECK_DIGIT
Singleton ISIN Check Digit instance
-
Constructor Summary
Constructors Constructor Description ISINCheckDigit()
Construct an ISIN Indetifier Check Digit routine.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected int
calculateModulus(java.lang.String code, boolean includesCheckDigit)
Calculate the modulus for an ISIN code.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, getModulus, isValid, sumDigits, toCheckDigit, toInt
-
-
-
-
Field Detail
-
ISIN_CHECK_DIGIT
public static final CheckDigit ISIN_CHECK_DIGIT
Singleton ISIN Check Digit instance
-
-
Method Detail
-
calculateModulus
protected int calculateModulus(java.lang.String code, boolean includesCheckDigit) throws CheckDigitException
Calculate the modulus for an ISIN code.- Overrides:
calculateModulus
in classModulusCheckDigit
- Parameters:
code
- The code to calculate the modulus for.includesCheckDigit
- Whether the code includes the Check Digit or not.- Returns:
- The modulus value
- Throws:
CheckDigitException
- if an error occurs calculating the modulus for the specified code
-
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.
-
-