Class ABANumberCheckDigit
java.lang.Object
org.apache.commons.validator.routines.checkdigit.ModulusCheckDigit
org.apache.commons.validator.routines.checkdigit.ABANumberCheckDigit
- All Implemented Interfaces:
Serializable, CheckDigit
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.
- Since:
- 1.4
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final CheckDigitSingleton Routing Transit Number Check Digit instance. -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a modulus 10 Check Digit routine for ABA Numbers. -
Method Summary
Modifier and TypeMethodDescriptionbooleanValidates a modulus check digit for a code.protected intweightedValue(int charValue, int leftPos, int rightPos) Calculates the weighted value of a character in the code at a specified position.Methods inherited from class ModulusCheckDigit
calculate, calculateModulus, getModulus, sumDigits, toCheckDigit, toIntModifier and TypeMethodDescriptionCalculates a modulus Check Digit for a code which does not yet have one.protected intcalculateModulus(String code, boolean includesCheckDigit) Calculates the modulus for a code.intGets the modulus value this check digit routine is based on.static intsumDigits(int number) Adds together the individual digits in a number.protected StringtoCheckDigit(int charValue) Converts an integer value to a check digit.protected inttoInt(char character, int leftPos, int rightPos) Converts a character at a specified position to an integer value.
-
Field Details
-
ABAN_CHECK_DIGIT
Singleton Routing Transit Number Check Digit instance.
-
-
Constructor Details
-
ABANumberCheckDigit
public ABANumberCheckDigit()Constructs a modulus 10 Check Digit routine for ABA Numbers.
-
-
Method Details
-
isValid
Validates a modulus check digit for a code.The weight is taken from
rightPos, which does not change when a character is prepended, soModulusCheckDigitwould accept an over-length code whose leading digit lands on a no-op weight (for example0123456780). The nine-character length is checked here before the check digit test.- Specified by:
isValidin interfaceCheckDigit- Overrides:
isValidin classModulusCheckDigit- Parameters:
code- The code to validate.- Returns:
trueif the check digit is valid, otherwisefalse.
-
weightedValue
Calculates the weighted value of a character in the code at a specified position.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- Specified by:
weightedValuein classModulusCheckDigit- Parameters:
charValue- The numeric value of the character.leftPos- The position of the character in the code, counting from left to right.rightPos- The position of the character in the code, counting from right to left.- Returns:
- The weighted value of the character.
-