mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 14:31:28 +00:00
Cleanup
This commit is contained in:
parent
d4ccdfe0e9
commit
afc32f86f7
@ -3,7 +3,6 @@ package com.gildedrose;
|
||||
import com.gildedrose.domain.*;
|
||||
import com.gildedrose.domain.InventoryItem;
|
||||
|
||||
import static java.util.stream.IntStream.range;
|
||||
import static java.util.stream.Stream.of;
|
||||
|
||||
class GildedRose {
|
||||
@ -26,17 +25,11 @@ class GildedRose {
|
||||
// reduce sellIn
|
||||
item.sellIn = inventoryItem.reduceSellIn();
|
||||
|
||||
// increase quality when quality decrease is inverted
|
||||
if (inventoryItem.qualityDecreaseInverted()) {
|
||||
item.quality = inventoryItem.increaseQualityBelowMaximum();
|
||||
}
|
||||
|
||||
// decrease quality based on their decrease amount
|
||||
else {
|
||||
range(0, inventoryItem.qualityDecreaseAmount()).forEach(i -> item.quality = inventoryItem.decreaseQualityAboveZero());
|
||||
}
|
||||
// increase or decrease quality based on the items
|
||||
item.quality = inventoryItem.handleQuality();
|
||||
|
||||
if (item.sellIn < 0) {
|
||||
// increase or decrease quality more after sell in
|
||||
item.quality = inventoryItem.handleQualityAfterSellIn();
|
||||
}
|
||||
});
|
||||
|
||||
@ -11,8 +11,9 @@ public class AgedBrie extends InventoryItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean qualityDecreaseInverted() {
|
||||
return true;
|
||||
public int handleQuality() {
|
||||
quality = increaseQualityBelowMaximum();
|
||||
return quality;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -11,8 +11,9 @@ public class BackstagePass extends InventoryItem {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean qualityDecreaseInverted() {
|
||||
return true;
|
||||
public int handleQuality() {
|
||||
quality = increaseQualityBelowMaximum();
|
||||
return quality;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -10,11 +10,6 @@ public class ConjuredItem extends InventoryItem {
|
||||
setQuality(item.quality);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean qualityDecreaseInverted() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int qualityDecreaseAmount() {
|
||||
return 2;
|
||||
|
||||
@ -10,11 +10,6 @@ public class DefaultItem extends InventoryItem {
|
||||
setQuality(item.quality);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean qualityDecreaseInverted() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int qualityDecreaseAmount() {
|
||||
return 1;
|
||||
|
||||
@ -3,6 +3,8 @@ package com.gildedrose.domain;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
|
||||
import static java.util.stream.IntStream.range;
|
||||
|
||||
@NoArgsConstructor
|
||||
@Setter
|
||||
public abstract class InventoryItem {
|
||||
@ -12,8 +14,6 @@ public abstract class InventoryItem {
|
||||
public int quality;
|
||||
public int sellIn;
|
||||
|
||||
public abstract boolean qualityDecreaseInverted();
|
||||
|
||||
public abstract int qualityDecreaseAmount();
|
||||
|
||||
public abstract int handleQualityAfterSellIn();
|
||||
@ -34,4 +34,9 @@ public abstract class InventoryItem {
|
||||
sellIn--;
|
||||
return sellIn;
|
||||
}
|
||||
|
||||
public int handleQuality() {
|
||||
range(0, qualityDecreaseAmount()).forEach(i -> quality = decreaseQualityAboveZero());
|
||||
return quality;
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,11 +11,6 @@ public class Legendary extends InventoryItem {
|
||||
setQuality(item.quality);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean qualityDecreaseInverted() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int qualityDecreaseAmount() {
|
||||
return 0;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user