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