From 7ec3761989c7e1a14294ae6f3c95a3e52346f0b9 Mon Sep 17 00:00:00 2001 From: lekshmysasidhar Date: Fri, 31 Mar 2023 13:33:24 +0200 Subject: [PATCH] Refactored code- Adapted method to remove redundant method calls for quality update --- Java/src/main/java/com/gildedrose/AgedBrie.java | 7 ++++--- Java/src/main/java/com/gildedrose/BackStagePasses.java | 9 +++++---- Java/src/main/java/com/gildedrose/Goods.java | 4 ++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Java/src/main/java/com/gildedrose/AgedBrie.java b/Java/src/main/java/com/gildedrose/AgedBrie.java index 53f58ae2..a70f5380 100644 --- a/Java/src/main/java/com/gildedrose/AgedBrie.java +++ b/Java/src/main/java/com/gildedrose/AgedBrie.java @@ -5,17 +5,18 @@ import static com.gildedrose.rule.ValidationRule.isExpired; public class AgedBrie implements Goods { private static final int MAX_ALLOWED_QUALITY = 50; + + private static final int QUALITY_TO_ADD = 1; @Override public void updateQuality(Item item) { - Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY); - + Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY, QUALITY_TO_ADD); } @Override public void updateQualityForExpiredItem(Item item) { if (isExpired(item)) { - Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY); + Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY, QUALITY_TO_ADD); } } diff --git a/Java/src/main/java/com/gildedrose/BackStagePasses.java b/Java/src/main/java/com/gildedrose/BackStagePasses.java index 8430c54a..a1e338ff 100644 --- a/Java/src/main/java/com/gildedrose/BackStagePasses.java +++ b/Java/src/main/java/com/gildedrose/BackStagePasses.java @@ -8,19 +8,20 @@ public class BackStagePasses implements Goods { private static final int SELL_IN_MAX_THRESHOLD_DAY = 11; private static final int SELL_IN_MIN_THRESHOLD_DAY = 6; private static final int ZERO = 0; + private static final int DEFAULT_QUALITY_TO_ADD = 1; @Override public void updateQuality(Item item) { - Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY); + int qualityToAdd = DEFAULT_QUALITY_TO_ADD; if (isWithInLimit(SELL_IN_MAX_THRESHOLD_DAY, item.sellIn)) { - Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY); + qualityToAdd++; } if (isWithInLimit(SELL_IN_MIN_THRESHOLD_DAY, item.sellIn)) { - Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY); + qualityToAdd++; } + Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY, qualityToAdd); } - @Override public void updateQualityForExpiredItem(Item item) { diff --git a/Java/src/main/java/com/gildedrose/Goods.java b/Java/src/main/java/com/gildedrose/Goods.java index 4e77fc56..63b391f2 100644 --- a/Java/src/main/java/com/gildedrose/Goods.java +++ b/Java/src/main/java/com/gildedrose/Goods.java @@ -12,9 +12,9 @@ public interface Goods { public void updateQualityForExpiredItem(Item item); - default void addQualityWhenWithInLimit(Item item, int limit) { + default void addQualityWhenWithInLimit(Item item, int limit, int qualityToAdd) { if (isWithInLimit(limit, item.quality)) { - item.quality++; + item.quality = Math.min(limit, item.quality + qualityToAdd); } } }