Skip to content

Commit 3e5a09d

Browse files
author
pauldambra
committed
remove a gate from the second check router
1 parent cdf650f commit 3e5a09d

14 files changed

+62
-42
lines changed

src/main/java/com/dambra/paul/moduluschecker/ModulusCheckingChain.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,15 @@ final class ModulusCheckingChain {
3232
* ExceptionFourteenGate
3333
* |
3434
* V
35+
* ExceptionTwoAndNineGate
36+
* |
37+
* V
3538
* SecondModulusCheckRouter
3639
*/
37-
static ModulusChainCheck create(ModulusWeightRows weightRows, SortCodeSubstitution sortCodeSubstitution) {
40+
static ModulusChainLink create(ModulusWeightRows weightRows, SortCodeSubstitution sortCodeSubstitution) {
3841
final SecondModulusCheckRouter secondModulusCheckRouter = new SecondModulusCheckRouter(sortCodeSubstitution);
39-
final ExceptionFourteenGate exceptionFourteenGate = new ExceptionFourteenGate(secondModulusCheckRouter);
42+
final ExceptionTwoAndNineGate exceptionTwoAndNineGate = new ExceptionTwoAndNineGate(secondModulusCheckRouter);
43+
final ExceptionFourteenGate exceptionFourteenGate = new ExceptionFourteenGate(exceptionTwoAndNineGate);
4044
final ExceptionTwoGate exceptionTwoGate = new ExceptionTwoGate(exceptionFourteenGate);
4145
final SecondCheckRequiredGate secondCheckRequiredGate = new SecondCheckRequiredGate(exceptionTwoGate);
4246
final FirstModulusCheckRouter firstModulusCheckRouter = new FirstModulusCheckRouter(

src/main/java/com/dambra/paul/moduluschecker/chain/AtLeastOneWeightRowGate.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@
22

33
import com.dambra.paul.moduluschecker.ModulusCheckParams;
44
import com.dambra.paul.moduluschecker.valacdosFile.ModulusWeightRows;
5-
import com.dambra.paul.moduluschecker.valacdosFile.WeightRow;
65

76
import java.util.Optional;
87

9-
public final class AtLeastOneWeightRowGate implements ModulusChainCheck {
8+
public final class AtLeastOneWeightRowGate implements ModulusChainLink {
109
private final ModulusWeightRows modulusWeightRows;
1110
private final ExceptionSixGate next;
1211

src/main/java/com/dambra/paul/moduluschecker/chain/ExceptionEightAccountTransformer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import com.dambra.paul.moduluschecker.Account.BankAccount;
44
import com.dambra.paul.moduluschecker.ModulusCheckParams;
55

6-
public final class ExceptionEightAccountTransformer implements ModulusChainCheck {
6+
public final class ExceptionEightAccountTransformer implements ModulusChainLink {
77

88
private final ExceptionTenAccountTransformer next;
99

src/main/java/com/dambra/paul/moduluschecker/chain/ExceptionFourteenGate.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
* • If the check passes (that is, there is no remainder), then the account number should be
1212
* considered valid. Do not perform the second check
1313
*/
14-
public class ExceptionFourteenGate implements ModulusChainCheck {
14+
public class ExceptionFourteenGate implements ModulusChainLink {
1515

16-
private final SecondModulusCheckRouter next;
16+
private final ExceptionTwoAndNineGate next;
1717

18-
public ExceptionFourteenGate(SecondModulusCheckRouter next) {
18+
public ExceptionFourteenGate(ExceptionTwoAndNineGate next) {
1919
this.next = next;
2020
}
2121

src/main/java/com/dambra/paul/moduluschecker/chain/ExceptionSevenAccountTransformer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import com.dambra.paul.moduluschecker.Account.BankAccount;
44
import com.dambra.paul.moduluschecker.ModulusCheckParams;
55

6-
public final class ExceptionSevenAccountTransformer implements ModulusChainCheck {
6+
public final class ExceptionSevenAccountTransformer implements ModulusChainLink {
77

88
private final ExceptionEightAccountTransformer next;
99

src/main/java/com/dambra/paul/moduluschecker/chain/ExceptionSixGate.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* • If a = 4, 5, 6, 7 or 8, and g and h are the same, the accounts are for a foreign currency and the
1414
* checks cannot be used.
1515
*/
16-
public class ExceptionSixGate implements ModulusChainCheck {
16+
public class ExceptionSixGate implements ModulusChainLink {
1717

1818
private final ExceptionSevenAccountTransformer next;
1919

src/main/java/com/dambra/paul/moduluschecker/chain/ExceptionTenAccountTransformer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import com.dambra.paul.moduluschecker.Account.BankAccount;
44
import com.dambra.paul.moduluschecker.ModulusCheckParams;
55

6-
public final class ExceptionTenAccountTransformer implements ModulusChainCheck {
6+
public final class ExceptionTenAccountTransformer implements ModulusChainLink {
77

88
private final FirstModulusCheckRouter next;
99

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.dambra.paul.moduluschecker.chain;
2+
3+
import com.dambra.paul.moduluschecker.ModulusCheckParams;
4+
import com.dambra.paul.moduluschecker.valacdosFile.WeightRow;
5+
6+
public final class ExceptionTwoAndNineGate implements ModulusChainLink {
7+
8+
private final SecondModulusCheckRouter next;
9+
10+
public ExceptionTwoAndNineGate(SecondModulusCheckRouter next) {
11+
this.next = next;
12+
}
13+
14+
@Override
15+
public ModulusResult check(ModulusCheckParams params) {
16+
if (isExceptionTwoAndNine(params)
17+
&&firstCheckSucceeded(params)) {
18+
return params.modulusResult.get();
19+
}
20+
return next.check(params);
21+
}
22+
23+
private boolean isExceptionTwoAndNine(ModulusCheckParams params) {
24+
return WeightRow.isExceptionTwoAndNine(
25+
params.firstWeightRow,
26+
params.secondWeightRow);
27+
}
28+
29+
private boolean firstCheckSucceeded(ModulusCheckParams params) {
30+
return params.modulusResult.isPresent()
31+
&& params.modulusResult.get().firstCheckResult.isPresent()
32+
&& params.modulusResult.get().firstCheckResult.get();
33+
}
34+
}

src/main/java/com/dambra/paul/moduluschecker/chain/ExceptionTwoGate.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import com.dambra.paul.moduluschecker.ModulusCheckParams;
44
import com.dambra.paul.moduluschecker.valacdosFile.WeightRow;
55

6-
public class ExceptionTwoGate implements ModulusChainCheck {
6+
public class ExceptionTwoGate implements ModulusChainLink {
77

88
private final ExceptionFourteenGate next;
99

src/main/java/com/dambra/paul/moduluschecker/chain/FirstModulusCheckRouter.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,9 @@
88
import com.dambra.paul.moduluschecker.chain.checks.ModulusTenCheck;
99
import com.dambra.paul.moduluschecker.valacdosFile.WeightRow;
1010

11-
import java.util.Optional;
1211
import java.util.function.Function;
1312

14-
public final class FirstModulusCheckRouter implements ModulusChainCheck {
13+
public final class FirstModulusCheckRouter implements ModulusChainLink {
1514
private final SortCodeSubstitution sortCodeSubstitution;
1615
private final SecondCheckRequiredGate next;
1716

0 commit comments

Comments
 (0)