🔨 converting AgedBrieItem from anemic to rich

This commit is contained in:
Velizar Todorov 2021-11-30 17:30:36 +01:00
parent fa28c30215
commit 79587f0ed0

View File

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