Class ABANumberValidator
- java.lang.Object
-
- org.apache.bval.extras.constraints.checkdigit.ModulusValidator<ABANumber>
-
- org.apache.bval.extras.constraints.checkdigit.ABANumberValidator
-
- All Implemented Interfaces:
jakarta.validation.ConstraintValidator<ABANumber,CharSequence>
public final class ABANumberValidator extends ModulusValidator<ABANumber>
Modulus 10 ABA Number (or Routing Transit Number (RTN)) Check Digit calculation/validation.ABA Numbers (or Routing Transit Numbers) are a nine digit numeric code used to identify American financial institutions for things such as checks or deposits (ABA stands for the American Bankers Association).
Check digit calculation is based on modulus 10 with digits being weighted based on their position (from right to left) as follows:
- Digits 1, 4 and & 7 are weighted 1
- Digits 2, 5 and & 8 are weighted 7
- Digits 3, 6 and & 9 are weighted 3
For further information see Wikipedia - Routing transit number.
-
-
Constructor Summary
Constructors Constructor Description ABANumberValidator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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, toInt
-
-
-
-
Method Detail
-
weightedValue
protected int weightedValue(int charValue, int leftPos, int rightPos) throws Exception
Calculates the weighted value of a character in the code at a specified position.ABA Routing numbers are weighted in the following manner:
Calculates the weighted value of a character in the code at a specified position.left position: 1 2 3 4 5 6 7 8 9 weight: 3 7 1 3 7 1 3 7 1
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.
- Specified by:
weightedValue
in classModulusValidator<ABANumber>
- Parameters:
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- Returns:
- The weighted value of the character
- Throws:
Exception
-
-