diff --git a/Java-Approvals/src/main/java/com/gildedrose/GildedRose.java b/Java-Approvals/src/main/java/com/gildedrose/GildedRose.java index 5fe3440e..9c3e69b6 100644 --- a/Java-Approvals/src/main/java/com/gildedrose/GildedRose.java +++ b/Java-Approvals/src/main/java/com/gildedrose/GildedRose.java @@ -10,34 +10,34 @@ class GildedRose { public void updateQuality() { for (Item item : items) { - if (isAgedBride(item)) { + + if (item.isAgedBride()) { item.increaseQualityByOne(); - } else if (isBackstagePasses(item)) { - item.increaseQualityBackstage(); - } else { - item.decreaseQualityByOne(); - } - item.decreaseSellInEachDay(); + item.decreaseSellInEachDay(); - if (item.sellIn < 0) { - if (isAgedBride(item)) { + if (item.sellIn < 0) { item.increaseQualityByOne(); - } else if (isBackstagePasses(item)) { - item.quality = 0; + } + } else { + boolean isBackstagePasses = item.isBackstagePasses(); + if (isBackstagePasses) { + item.increaseQualityBackstage(); } else { item.decreaseQualityByOne(); } + + item.decreaseSellInEachDay(); + + if (item.sellIn < 0) { + if (isBackstagePasses) { + item.quality = 0; + } else { + item.decreaseQualityByOne(); + } + } } } } - private static boolean isBackstagePasses(Item item) { - return item.name.equals(Item.BACKSTAGE_PASSES); - } - - private static boolean isAgedBride(Item item) { - return item.name.equals(Item.AGED_BRIE); - } - } diff --git a/Java-Approvals/src/main/java/com/gildedrose/Item.java b/Java-Approvals/src/main/java/com/gildedrose/Item.java index e188b535..939d1819 100644 --- a/Java-Approvals/src/main/java/com/gildedrose/Item.java +++ b/Java-Approvals/src/main/java/com/gildedrose/Item.java @@ -17,17 +17,29 @@ public class Item { this.quality = quality; } - @Override + public boolean isBackstagePasses() { + return name.equals(BACKSTAGE_PASSES); + } + + public boolean isAgedBride() { + return name.equals(AGED_BRIE); + } + + @Override public String toString() { return this.name + ", " + this.sellIn + ", " + this.quality; } void decreaseSellInEachDay() { - if (!name.equals(SULFURAS)) { + if (isNotSulfuras()) { sellIn--; } } + private boolean isNotSulfuras() { + return !name.equals(SULFURAS); + } + void increaseQualityByOne() { if (quality < 50) { quality++; @@ -46,7 +58,7 @@ public class Item { void decreaseQualityByOne() { if (quality > 0) { - if (!name.equals(SULFURAS)) { + if (isNotSulfuras()) { quality--; } }