public final class ISINCheckDigit extends ModulusCheckDigit
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.
Modifier and Type | Field and Description |
---|---|
static CheckDigit |
ISIN_CHECK_DIGIT
Singleton ISIN Check Digit instance
|
Constructor and Description |
---|
ISINCheckDigit()
Construct an ISIN Indetifier Check Digit routine.
|
Modifier and Type | Method and Description |
---|---|
protected int |
calculateModulus(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.
|
calculate, getModulus, isValid, sumDigits, toCheckDigit, toInt
public static final CheckDigit ISIN_CHECK_DIGIT
public ISINCheckDigit()
protected int calculateModulus(String code, boolean includesCheckDigit) throws CheckDigitException
calculateModulus
in class ModulusCheckDigit
code
- The code to calculate the modulus for.includesCheckDigit
- Whether the code includes the Check Digit or not.CheckDigitException
- if an error occurs calculating the modulus
for the specified codeprotected int weightedValue(int charValue, int leftPos, int rightPos)
Calculates the weighted value of a charcter in the code at a specified position.
For ISIN (from right to left) odd digits are weighted with a factor of one and even digits with a factor of two. Weighted values are reduced to their digital root
weightedValue
in class ModulusCheckDigit
charValue
- The numeric value of the character.leftPos
- 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 leftCopyright © 2002–2020 The Apache Software Foundation. All rights reserved.