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

71 lines
2.0 KiB
Java

package com.gildedrose;
class GildedRose {
Item[] items;
public GildedRose(Item[] items) {
this.items = items;
}
public void updateQuality() {
for (Item item : items) {
if (!item.name.equals("Aged Brie")
&& !item.name.equals("Backstage passes to a TAFKAL80ETC concert")) {
if (item.quality > 0) {
if (!item.name.equals("Sulfuras, Hand of Ragnaros")) {
item.quality = item.quality - 1;
}
}
} else {
if (item.quality < 50) {
item.quality = item.quality + 1;
if (item.name.equals("Backstage passes to a TAFKAL80ETC concert")) {
if (item.sellIn < 11) {
addQualityWhenWithInLimit(item);
}
if (item.sellIn < 6) {
addQualityWhenWithInLimit(item);
}
}
}
}
if (!item.name.equals("Sulfuras, Hand of Ragnaros")) {
updateSellInDays(item);
}
updateQualityForExpiredItem(item);
}
}
private void addQualityWhenWithInLimit(Item item) {
if (item.quality < 50) {
item.quality = item.quality + 1;
}
}
private void updateQualityForExpiredItem(Item item) {
if (item.sellIn < 0) {
if (!item.name.equals("Aged Brie")) {
if (!item.name.equals("Backstage passes to a TAFKAL80ETC concert")) {
if (item.quality > 0) {
if (!item.name.equals("Sulfuras, Hand of Ragnaros")) {
item.quality = item.quality - 1;
}
}
} else {
item.quality = item.quality - item.quality;
}
} else {
addQualityWhenWithInLimit(item);
}
}
}
private void updateSellInDays(Item item) {
item.sellIn--;
}
}