mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-16 06:51:27 +00:00
77 lines
2.3 KiB
Java
77 lines
2.3 KiB
Java
package com.gildedrose;
|
|
|
|
class GildedRose {
|
|
|
|
public static final String AGED_BRIE = "Aged Brie";
|
|
public static final String SULFURAS = "Sulfuras, Hand of Ragnaros";
|
|
public static final String BACKSTAGE = "Backstage passes to a TAFKAL80ETC concert";
|
|
public static final String CONJURED = "Conjured Mana Cake";
|
|
|
|
private Item[] items;
|
|
|
|
public GildedRose(Item... items) {
|
|
this.items = items;
|
|
}
|
|
|
|
public void updateQuality() {
|
|
for (Item item : items) {
|
|
updateItemQuality(item);
|
|
}
|
|
}
|
|
|
|
private void updateItemQuality(Item item) {
|
|
int degradeRate = item.name.equals(CONJURED) ? -2 : -1;
|
|
if (!item.name.equals(AGED_BRIE)
|
|
&& !item.name.equals(BACKSTAGE)) {
|
|
if (item.quality > 0) {
|
|
if (!item.name.equals(SULFURAS)) {
|
|
adjustQuality(item, degradeRate);
|
|
}
|
|
}
|
|
} else {
|
|
adjustQuality(item, 1);
|
|
|
|
if (item.name.equals(BACKSTAGE)) {
|
|
if (item.sellIn < 11) {
|
|
adjustQuality(item, 1);
|
|
}
|
|
|
|
if (item.sellIn < 6) {
|
|
adjustQuality(item, 1);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (!item.name.equals(SULFURAS)) {
|
|
item.sellIn = item.sellIn - 1;
|
|
}
|
|
|
|
if (item.sellIn < 0) {
|
|
if (!item.name.equals(AGED_BRIE)) {
|
|
if (!item.name.equals(BACKSTAGE)) {
|
|
if (!item.name.equals(SULFURAS)) {
|
|
adjustQuality(item, degradeRate);
|
|
}
|
|
} else {
|
|
item.quality = item.quality - item.quality;
|
|
}
|
|
} else {
|
|
int adjustment = 1;
|
|
adjustQuality(item, adjustment);
|
|
}
|
|
}
|
|
}
|
|
|
|
public void adjustQuality(Item item, int adjustment) {
|
|
int newQuality = item.quality + adjustment;
|
|
boolean isValid = newQuality <= 50 && newQuality >= 0;
|
|
if (isValid) {
|
|
item.quality = newQuality;
|
|
}
|
|
}
|
|
|
|
public Item[] getItems() {
|
|
return items;
|
|
}
|
|
}
|