GildedRose-Refactoring-Kata/Java/src/main/java/com/gildedrose/item/CustomisedItem.java

34 lines
882 B
Java

package com.gildedrose.item;
public abstract class CustomisedItem {
private final Item item;
CustomisedItem(Item item) {
this.item = item;
}
public final void updateState() {
item.sellIn = updatedItemSellIn();
item.quality = updatedItemQuality();
if (hasReachedLowestQualityValue()) {
item.quality = QualityValues.lowestValuePossible();
} else if (hasReachedHighestQualityValue()) {
item.quality = QualityValues.highestValuePossible(item);
}
}
abstract int updatedItemSellIn();
abstract int updatedItemQuality();
private boolean hasReachedHighestQualityValue() {
return item.quality > QualityValues.highestValuePossible(item);
}
private boolean hasReachedLowestQualityValue() {
return item.quality < QualityValues.lowestValuePossible();
}
}