|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.bval.extras.constraints.checkdigit.ModulusValidator<CUSIP>
org.apache.bval.extras.constraints.checkdigit.CUSIPValidator
public final class CUSIPValidator
Modulus 10 CUSIP (North American Securities) Check Digit calculation/validation.
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.
Constructor Summary | |
---|---|
CUSIPValidator()
|
Method Summary | |
---|---|
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 character in the code at a specified position. |
Methods inherited from class org.apache.bval.extras.constraints.checkdigit.ModulusValidator |
---|
initialize, isValid, sumDigits |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public CUSIPValidator()
Method Detail |
---|
protected int weightedValue(int charValue, int leftPos, int rightPos) throws Exception
ABA Routing numbers are weighted in the following manner:
left position: 1 2 3 4 5 6 7 8 9
weight: 3 7 1 3 7 1 3 7 1
Calculates the weighted value of a character in the
code at a specified position.
Some modulus routines weight the value of a character depending on its position in the code (e.g. ISBN-10), while others use different weighting factors for odd/even positions (e.g. EAN or Luhn). Implement the appropriate mechanism required by overriding this method.
weightedValue
in class ModulusValidator<CUSIP>
charValue
- The numeric value of the characterleftPos
- 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 left
Exception
protected int toInt(char character, int leftPos, int rightPos)
Note: this implementation only handlers numeric values For non-numeric characters, override this method to provide character-->integer conversion.
toInt
in class ModulusValidator<CUSIP>
character
- The character to convertleftPos
- 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
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |