public final class CUSIPCheckDigit extends ModulusCheckDigit
CUSIP Numbers are 9 character alphanumeric codes used to identify North American 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 - CUSIP for more details.
Modifier and Type | Field and Description |
---|---|
static CheckDigit |
CUSIP_CHECK_DIGIT
Singleton CUSIP Check Digit instance
|
Constructor and Description |
---|
CUSIPCheckDigit()
Construct an CUSIP Indetifier Check Digit routine.
|
Modifier and Type | Method and Description |
---|---|
protected int |
toInt(char character,
int leftPos,
int rightPos)
Convert a character at a specified position to an integer value.
|
protected int |
weightedValue(int charValue,
int leftPos,
int rightPos)
Calculates the weighted value of a charcter in the
code at a specified position.
|
calculate, calculateModulus, getModulus, isValid, sumDigits, toCheckDigit
public static final CheckDigit CUSIP_CHECK_DIGIT
public CUSIPCheckDigit()
protected int toInt(char character, int leftPos, int rightPos) throws CheckDigitException
toInt
in class ModulusCheckDigit
character
- The character to convertleftPos
- 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 leftCheckDigitException
- if character is not alphanumericprotected int weightedValue(int charValue, int leftPos, int rightPos)
Calculates the weighted value of a charcter in the code at a specified position.
For CUSIP (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
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 positionof the character in the code, counting from right to leftCopyright © 2002–2017 The Apache Software Foundation. All rights reserved.