calculateMod function

int calculateMod(
  1. String iban
)

Implementation

int calculateMod(String iban) {
  final String reformattedIban =
      getBban(iban) + getCountryCodeAndCheckDigit(iban);

  final int VA = "A".codeUnitAt(0);
  final int VZ = "Z".codeUnitAt(0);
  final int V0 = "0".codeUnitAt(0);
  final int V9 = "9".codeUnitAt(0);

  int addSum(int total, int value) {
    final int newTotal = (value > 9 ? total * 100 : total * 10) + value;

    return newTotal > MAX ? newTotal % MOD : newTotal;
  }

  List<String> reformattedIbanList = reformattedIban.toUpperCase().split("");

  int total = 0;

  for (int i = 0; i < reformattedIbanList.length; ++i) {
    final int code = reformattedIbanList[i].codeUnitAt(0);
    if (VA <= code && code <= VZ) {
      total = addSum(total, code - VA + 10);
    } else if (V0 <= code && code <= V9) {
      total = addSum(total, code - V0);
    } else {
      throw FormatException("Invalid Character[$code] = '$code'");
    }
  }

  return total % MOD;
}