From 9ec9e54cb1cfdccefbc49c0b99dc98e032121310 Mon Sep 17 00:00:00 2001 From: Velizar Todorov Date: Tue, 30 Nov 2021 17:36:10 +0100 Subject: [PATCH] :hammer: convert `ConjuredItem` from anemic to rich --- .../gildedrose/item_helpers/ItemHandler.java | 2 +- .../com/gildedrose/items/ConjuredItem.java | 31 ++++++++++++++----- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/gildedrose/item_helpers/ItemHandler.java b/src/main/java/com/gildedrose/item_helpers/ItemHandler.java index 8393a979..286c9640 100644 --- a/src/main/java/com/gildedrose/item_helpers/ItemHandler.java +++ b/src/main/java/com/gildedrose/item_helpers/ItemHandler.java @@ -19,7 +19,7 @@ public class ItemHandler { public boolean beforeSellInDate() { return item.sellIn >= 0; } - + public void decrementQuality() { item.quality = max(item.quality - 1, 0); } diff --git a/src/main/java/com/gildedrose/items/ConjuredItem.java b/src/main/java/com/gildedrose/items/ConjuredItem.java index 47f11b2b..66a0f415 100644 --- a/src/main/java/com/gildedrose/items/ConjuredItem.java +++ b/src/main/java/com/gildedrose/items/ConjuredItem.java @@ -1,29 +1,46 @@ package com.gildedrose.items; -import com.gildedrose.item_helpers.ItemHandler; import com.gildedrose.item_helpers.ItemType; import com.gildedrose.main.Item; +import static java.lang.Math.max; + public class ConjuredItem implements ItemType { public static final String CONJURED = "Conjured Mana Cake"; - private final ItemHandler item; + private final Item item; public ConjuredItem(Item item) { - this.item = new ItemHandler(item); + this.item = item; } @Override public void updateQuality() { - item.decrementSellInDate(); - if (item.beforeSellInDate()) { - item.decrementQualityBy2(); + decrementSellInDate(); + if (beforeSellInDate()) { + decrementQualityBy2(); } else { - item.decrementQualityBy4(); + decrementQualityBy4(); } } + public void decrementSellInDate() { + item.sellIn--; + } + + public boolean beforeSellInDate() { + return item.sellIn >= 0; + } + + public void decrementQualityBy2() { + item.quality = max(item.quality - 2, 0); + } + + public void decrementQualityBy4() { + item.quality = max(item.quality - 4, 0); + } + @Override public String getName() { return CONJURED;