GildedRose-Refactoring-Kata/Java/src/main/java/com/gildedrose/GildedRose.java
2022-03-22 10:42:24 +01:00

91 lines
2.6 KiB
Java

package com.gildedrose;
class GildedRose {
Item[] items;
String itemName;
int itemQuality;
int itemSellIn;
public GildedRose(Item[] items) {
this.items = items;
}
public void updateQuality() {
for (int i = 0; i < items.length; i++) {
itemName = items[i].name;
itemQuality = items[i].quality;
itemSellIn = items[i].sellIn;
if (!itemIsAgedBrie(itemName)
&& !itemIsBackstagePasses(itemName)) {
if (itemQuality > 0) {
if (!itemIsSulfuras(itemName)) {
decreaseByOne(itemQuality);
}
}
} else {
if (itemQuality < 50) {
itemQuality = itemQuality + 1;
if (itemIsBackstagePasses(itemName)) {
if (itemSellIn < 11) {
if (itemQuality < 50) {
increaseByOne(itemQuality);
}
}
if (itemSellIn < 6) {
if (itemQuality < 50) {
increaseByOne(itemQuality);
}
}
}
}
}
if (!itemIsSulfuras(itemName)) {
decreaseByOne(itemSellIn);
}
if (itemSellIn < 0) {
if (!itemIsAgedBrie(itemName)) {
if (!itemIsBackstagePasses(itemName)) {
if (itemQuality > 0) {
if (!itemIsSulfuras(itemName)) {
decreaseByOne(itemQuality);
}
}
} else {
decreaseByOne(itemQuality);
}
} else {
if (itemQuality < 50) {
increaseByOne(itemQuality);
}
}
}
}
}
public void increaseByOne (int itemValue) {
itemValue++;
}
public void decreaseByOne (int itemValue) {
itemValue--;
}
public boolean itemIsSulfuras(String itemName) {
return ProjectConstants.SULFURAS.equals(itemName) ? true : false;
}
public boolean itemIsBackstagePasses(String itemName) {
return ProjectConstants.BACKSTAGE_PASSES.equals(itemName) ? true : false;
}
public boolean itemIsAgedBrie(String itemName) {
return ProjectConstants.AGED_BRIE.equals(itemName) ? true : false;
}
}