move methods to StorageItem

moving the methods from GildedRose to Storage item for a polimorfizm solution
This commit is contained in:
Trobax 2022-11-23 17:27:37 +01:00
parent 4e692bf70e
commit fa31f828a1
2 changed files with 62 additions and 63 deletions

View File

@ -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);
}
}
}

View File

@ -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);
}
}
}