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
21 /**
22 * Helper methods for Strategy06 alike strategies
23 *
24 * @author ninan
25 *
26 */
27 public class Strategy06AlikeHelper {
28
29 /**
30 * Calculates the sum of the digit iteration
31 *
32 * @param accountCode
33 * The account code to use
34 * @param multiplicators
35 * The multiplicators
36 * @return The sum
37 */
38 public static int calculateSum(AccountCode accountCode, int[] multiplicators) {
39 int sum = 0;
40 for (int i = AccountCode.ACCOUNT_CODE_MAX_LENGTH - 2; i >= 0; --i) {
41 sum += accountCode.getDigitAtPos(i) * multiplicators[i];
42 }
43 return sum;
44 }
45
46 public static int getCheckDigitFromSum(int sum) {
47 return getCheckDigitFromSum(sum, 0);
48 }
49
50 public static int getCheckDigitFromSum(int sum, int returnOnModOne) {
51 int mod = sum % 11;
52
53 if (mod == 0) {
54 return 0;
55 }
56 if (mod == 1) {
57 return returnOnModOne;
58 }
59 return 11 - mod;
60 }
61
62 }