1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package net.sf.plausj.bank.german.strategy.util;
18
19 import net.sf.plausj.bank.german.AccountCode;
20 import net.sf.plausj.bank.german.util.MathHelper;
21
22 /**
23 * @author ninan
24 *
25 */
26 public class Strategy27AlikeHelper {
27
28 public static int calculateSum(AccountCode accountCode,
29 int[][] transformationTable) {
30 int sum = 0;
31 for (int i = AccountCode.ACCOUNT_CODE_MAX_LENGTH - 2, line = 0; i >= 0; --i) {
32 int d = accountCode.getDigitAtPos(i);
33 sum += transformationTable[line][d];
34 if (line != 3) {
35 ++line;
36 } else {
37 line = 0;
38 }
39 }
40 return sum;
41 }
42
43 public static int getCheckDigitFromSum(int sum) {
44 int ld = MathHelper.getLastDigits(sum, 1);
45 int cd = 10 - ld;
46 return cd;
47 }
48
49 }