mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-18 16:01:42 +00:00
91 lines
2.6 KiB
Java
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;
|
|
}
|
|
}
|