Class ABANumberCheckDigit

java.lang.Object
org.apache.commons.validator.routines.checkdigit.ModulusCheckDigit
org.apache.commons.validator.routines.checkdigit.ABANumberCheckDigit
All Implemented Interfaces:
Serializable, CheckDigit

public final class ABANumberCheckDigit extends ModulusCheckDigit
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 Details

  • Constructor Details

    • ABANumberCheckDigit

      Constructs a modulus 10 Check Digit routine for ABA Numbers.
  • Method Details

    • isValid

      public boolean isValid(String code)
      Validates a modulus check digit for a code.

      The weight is taken from rightPos, which does not change when a character is prepended, so ModulusCheckDigit would accept an over-length code whose leading digit lands on a no-op weight (for example 0123456780). The nine-character length is checked here before the check digit test.

      Specified by:
      isValid in interface CheckDigit
      Overrides:
      isValid in class ModulusCheckDigit
      Parameters:
      code - The code to validate.
      Returns:
      true if the check digit is valid, otherwise false.
    • weightedValue

      protected int weightedValue(int charValue, int leftPos, int rightPos)
      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:
      weightedValue in class ModulusCheckDigit
      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.