From 79587f0ed0a606d3c745466b9a10c6e1ff0edf8b Mon Sep 17 00:00:00 2001 From: Velizar Todorov Date: Tue, 30 Nov 2021 17:30:36 +0100 Subject: [PATCH] :hammer: converting `AgedBrieItem` from anemic to rich --- .../com/gildedrose/items/AgedBrieItem.java | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/gildedrose/items/AgedBrieItem.java b/src/main/java/com/gildedrose/items/AgedBrieItem.java index e79c4348..486dd5f0 100644 --- a/src/main/java/com/gildedrose/items/AgedBrieItem.java +++ b/src/main/java/com/gildedrose/items/AgedBrieItem.java @@ -1,29 +1,47 @@ 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.min; + public class AgedBrieItem implements ItemType { public static final String AGED_BRIE = "Aged Brie"; - private final ItemHandler item; + private final Item item; public AgedBrieItem(Item item) { - this.item = new ItemHandler(item); + this.item = item; } @Override public void updateQuality() { - item.decrementSellInDate(); - if (item.beforeSellInDate()) { - item.incrementQuality(); + decrementSellInDate(); + if (beforeSellInDate()) { + incrementQuality(); } else { - item.incrementQualityBy2(); + incrementQualityBy2(); } } + public void incrementQuality() { + item.quality = min(item.quality + 1, 50); + } + + + public void incrementQualityBy2() { + item.quality = min(item.quality + 2, 50); + } + + public void decrementSellInDate() { + item.sellIn--; + } + + public boolean beforeSellInDate() { + return item.sellIn >= 0; + } + @Override public String getName() { return AGED_BRIE;