diff --git a/Java/src/main/java/com/gildedrose/GildedRose.java b/Java/src/main/java/com/gildedrose/GildedRose.java index 11621d2a..7b784c94 100644 --- a/Java/src/main/java/com/gildedrose/GildedRose.java +++ b/Java/src/main/java/com/gildedrose/GildedRose.java @@ -9,69 +9,7 @@ class GildedRose { public void updateStorage() { for (Item item : items) { - new StrorageItem(item); - updateItem(item); - } - } - - private static void updateItem(Item item) { - updateQuality(item); - updateSelling(item); - if (isExpired(item)) { - updateExpired(item); - } - } - - private static void updateQuality(Item item) { - if (item.name.equals("Aged Brie")) { - increaseQuality(item); - } else if (item.name.equals("Backstage passes to a TAFKAL80ETC concert")) { - increaseQuality(item); - - if (item.sellIn < 11) { - increaseQuality(item); - } - - if (item.sellIn < 6) { - increaseQuality(item); - } - } else if (item.name.equals("Sulfuras, Hand of Ragnaros")) { - return; - } else decreaseQuality(item); - } - - private static void updateSelling(Item item) { - if (item.name.equals("Sulfuras, Hand of Ragnaros")) { - return; - } - item.sellIn--; - } - - private static boolean isExpired(Item item) { - return item.sellIn < 0; - } - - private static void updateExpired(Item item) { - if (item.name.equals("Aged Brie")) { - increaseQuality(item); - } else if (item.name.equals("Backstage passes to a TAFKAL80ETC concert")) { - item.quality = 0; - } else if (item.name.equals("Sulfuras, Hand of Ragnaros")) { - return; - } else { - decreaseQuality(item); - } - } - - private static void increaseQuality(Item item) { - if (item.quality < 50) { - item.quality++; - } - } - - private static void decreaseQuality(Item item) { - if (item.quality > 0) { - item.quality--; + new StrorageItem(item).dailyUpdateItem(item); } } } diff --git a/Java/src/main/java/com/gildedrose/StrorageItem.java b/Java/src/main/java/com/gildedrose/StrorageItem.java index fd14fb0d..4908d60a 100644 --- a/Java/src/main/java/com/gildedrose/StrorageItem.java +++ b/Java/src/main/java/com/gildedrose/StrorageItem.java @@ -6,4 +6,65 @@ public class StrorageItem { public StrorageItem(Item item) { this.item = item; } + + protected static void decreaseQuality(Item item, StrorageItem strorageItem) { + if (item.quality > 0) { + item.quality--; + } + } + + protected static void increaseQuality(Item item, StrorageItem strorageItem) { + if (item.quality < 50) { + item.quality++; + } + } + + protected static void updateQuality(Item item, StrorageItem strorageItem) { + if (item.name.equals("Aged Brie")) { + increaseQuality(item,strorageItem); + } else if (item.name.equals("Backstage passes to a TAFKAL80ETC concert")) { + increaseQuality(item, strorageItem); + + if (item.sellIn < 11) { + increaseQuality(item, strorageItem); + } + + if (item.sellIn < 6) { + increaseQuality(item, strorageItem); + } + } else if (item.name.equals("Sulfuras, Hand of Ragnaros")) { + return; + } else decreaseQuality(item,strorageItem); + } + + protected static void updateSelling(Item item, StrorageItem strorageItem) { + if (item.name.equals("Sulfuras, Hand of Ragnaros")) { + return; + } + item.sellIn--; + } + + protected static boolean isExpired(Item item, StrorageItem strorageItem) { + return item.sellIn < 0; + } + + protected static void updateExpired(Item item, StrorageItem strorageItem) { + if (item.name.equals("Aged Brie")) { + increaseQuality(item, strorageItem); + } else if (item.name.equals("Backstage passes to a TAFKAL80ETC concert")) { + item.quality = 0; + } else if (item.name.equals("Sulfuras, Hand of Ragnaros")) { + return; + } else { + decreaseQuality(item, strorageItem); + } + } + + public void dailyUpdateItem(Item item) { + updateQuality(item, this); + updateSelling(item, this); + if (isExpired(item, this)) { + updateExpired(item, this); + } + } }