From 5081bbe20280044d66e1f37505637f555b96ae25 Mon Sep 17 00:00:00 2001 From: angroene <44263448+angroene@users.noreply.github.com> Date: Mon, 27 Sep 2021 15:02:14 +0200 Subject: [PATCH 1/4] Add nextChain to cater for NullPointerException Add nextChain(int) method that will perform a null check before executing the next chain. This is to avoid NullPointerException when amount is less than 10. --- .../Chain of Responsibility/src/IATMDispenseChain.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Behavioural Patterns/Chain of Responsibility/src/IATMDispenseChain.java b/Behavioural Patterns/Chain of Responsibility/src/IATMDispenseChain.java index 4c7eeb4..5692874 100644 --- a/Behavioural Patterns/Chain of Responsibility/src/IATMDispenseChain.java +++ b/Behavioural Patterns/Chain of Responsibility/src/IATMDispenseChain.java @@ -6,4 +6,12 @@ public void setNextChain(IATMDispenseChain nextChain) { } public abstract void dispense(int amount); + + public void nextChain(int amount) { + if (this.nextChain != null) { + this.nextChain.dispense(amount); + } else { + System.out.println("No notes can be dispensed"); + } + } } From d50c590bf7669dcfebba5078fd5f387e806118b3 Mon Sep 17 00:00:00 2001 From: angroene <44263448+angroene@users.noreply.github.com> Date: Mon, 27 Sep 2021 15:05:03 +0200 Subject: [PATCH 2/4] Updated Rupee10DispenseChain to use nextChain --- .../Chain of Responsibility/src/Rupee10DispenseChain.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Behavioural Patterns/Chain of Responsibility/src/Rupee10DispenseChain.java b/Behavioural Patterns/Chain of Responsibility/src/Rupee10DispenseChain.java index 1a32df6..5b3c97c 100644 --- a/Behavioural Patterns/Chain of Responsibility/src/Rupee10DispenseChain.java +++ b/Behavioural Patterns/Chain of Responsibility/src/Rupee10DispenseChain.java @@ -6,7 +6,7 @@ public void dispense(int amount) { int remainingAmount = amount % 10; System.out.println("Number of 10 Rs notes are " + String.valueOf(notes)); } else if (amount > 0) { - this.nextChain.dispense(amount); + nextChain(amount); } } } From 7ca2bc6703921723aace47ed4201935e70063f82 Mon Sep 17 00:00:00 2001 From: angroene <44263448+angroene@users.noreply.github.com> Date: Mon, 27 Sep 2021 15:05:30 +0200 Subject: [PATCH 3/4] Updated Rupee20DispenseChain to call nextChain --- .../Chain of Responsibility/src/Rupee20DispenseChain.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Behavioural Patterns/Chain of Responsibility/src/Rupee20DispenseChain.java b/Behavioural Patterns/Chain of Responsibility/src/Rupee20DispenseChain.java index e1bb298..a6f00c7 100644 --- a/Behavioural Patterns/Chain of Responsibility/src/Rupee20DispenseChain.java +++ b/Behavioural Patterns/Chain of Responsibility/src/Rupee20DispenseChain.java @@ -7,7 +7,7 @@ public void dispense(int amount) { System.out.println("Number of 20 Rs notes are " + String.valueOf(notes)); this.nextChain.dispense(remainingAmount); } else if (amount > 0) { - this.nextChain.dispense(amount); + nextChain(amount); } } } From 99658358ff41ae49323328612f22c7ecbbec6b2f Mon Sep 17 00:00:00 2001 From: angroene <44263448+angroene@users.noreply.github.com> Date: Mon, 27 Sep 2021 15:06:05 +0200 Subject: [PATCH 4/4] Updated Rupee50DispenseChain to call nextChain --- .../Chain of Responsibility/src/Rupee50DispenseChain.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Behavioural Patterns/Chain of Responsibility/src/Rupee50DispenseChain.java b/Behavioural Patterns/Chain of Responsibility/src/Rupee50DispenseChain.java index 8c656b7..1cb0b6f 100644 --- a/Behavioural Patterns/Chain of Responsibility/src/Rupee50DispenseChain.java +++ b/Behavioural Patterns/Chain of Responsibility/src/Rupee50DispenseChain.java @@ -7,7 +7,7 @@ public void dispense(int amount) { System.out.println("Number of 50 Rs notes are " + String.valueOf(notes)); this.nextChain.dispense(remainingAmount); } else if (amount > 0) { - this.nextChain.dispense(amount); + nextChain(amount); } } }