From 7662217d8779861920f44eb267cc5aeabe267e21 Mon Sep 17 00:00:00 2001 From: Kadir Sirimsi Date: Mon, 10 Feb 2025 16:30:54 +0100 Subject: [PATCH] refactor: remove mutation methods now and cut-up the switch cases --- Java/src/main/java/com/gildedrose/Item.java | 97 +++++++++------------ 1 file changed, 40 insertions(+), 57 deletions(-) diff --git a/Java/src/main/java/com/gildedrose/Item.java b/Java/src/main/java/com/gildedrose/Item.java index e5786643..988a8718 100644 --- a/Java/src/main/java/com/gildedrose/Item.java +++ b/Java/src/main/java/com/gildedrose/Item.java @@ -27,70 +27,53 @@ public class Item { public void updateItem() { switch (type) { - case AgedBrie -> { - - if (quality < 50) { - addOneToQuality(); - } - - deductSellIn(); - - if (sellIn < 0 && quality < 50) { - addOneToQuality(); - } - } - - case BackstagePass -> { - - if (quality < 50) { - addOneToQuality(); - } - - if (sellIn < 11 && quality < 50) { - addOneToQuality(); - } - - if (sellIn < 6 && quality < 50) { - addOneToQuality(); - } - deductSellIn(); - - - if (sellIn < 0) { - quality = 0; - } - } - + case AgedBrie -> updateAgedBrieItem(); + case BackstagePass -> updateBackstagePassItem(); case Sulfuras -> {} - - case Unknown -> { - deductSellIn(); - - if (quality > 0) { - deductOneFromQuality(); - } - - if (sellIn < 0 && quality > 0) { - deductOneFromQuality(); - } - } + case Unknown -> updateUnknownItem(); } } - private void setQualityToZero() { - quality = 0; - } - - private void deductSellIn() { + private void updateUnknownItem() { sellIn--; - } - private void addOneToQuality() { - quality++; - } + if (quality > 0) { + quality--; + } - private void deductOneFromQuality() { - quality--; + if (sellIn < 0 && quality > 0) { + quality--; + } + } + private void updateBackstagePassItem() { + if (quality < 50) { + quality++; + } + + if (sellIn < 11 && quality < 50) { + quality++; + } + + if (sellIn < 6 && quality < 50) { + quality++; + } + + sellIn--; + + if (sellIn < 0) { + quality = 0; + } + } + public void updateAgedBrieItem() { + if (quality < 50) { + quality++; + } + + sellIn--; + + if (sellIn < 0 && quality < 50) { + quality++; + } } @Override