Use parametrized DefaultQualityRule for aged brie

This commit is contained in:
Konstantin Pavlov 2019-06-30 08:55:27 +02:00
parent 8d00059cc2
commit 91ea27e5d6
4 changed files with 4 additions and 21 deletions

View File

@ -1,6 +1,5 @@
package com.gildedrose;
import com.gildedrose.rules.AgedBrieQualityRule;
import com.gildedrose.rules.AgingStrategy;
import com.gildedrose.rules.BackstagePassQualityRule;
import com.gildedrose.rules.ConjuredQualityRule;
@ -24,7 +23,7 @@ class GildedRose {
private final List<QualityRule> rules = List.of(
new ConstantQualityRule(SULFURAS_HAND_OF_RAGNAROS),
new AgedBrieQualityRule(),
new DefaultQualityRule("Aged Brie", -1, true),
new BackstagePassQualityRule(),
new ConjuredQualityRule(),
new DefaultQualityRule()

View File

@ -1,16 +0,0 @@
package com.gildedrose.rules;
import static java.lang.Integer.min;
public class AgedBrieQualityRule implements QualityRule {
@Override
public boolean shouldApply(String itemName) {
return "Aged Brie".equals(itemName);
}
@Override
public Result calculateQuality(int oldQuality, int newSellIn) {
return new Result(min(oldQuality + 1, 50), true);
}
}

View File

@ -3,7 +3,7 @@ package com.gildedrose.rules;
public class ConjuredQualityRule extends DefaultQualityRule {
public ConjuredQualityRule() {
super(2, null, true);
super(null, 2, true);
}
@Override

View File

@ -9,10 +9,10 @@ public class DefaultQualityRule implements QualityRule {
private final boolean isFinalRule;
public DefaultQualityRule() {
this(1, null, false);
this(null, 1, false);
}
public DefaultQualityRule(int multiplier, String itemName, boolean isFinalRule) {
public DefaultQualityRule(String itemName, int multiplier, boolean isFinalRule) {
this.multiplier = multiplier;
this.expectedItemName = itemName;
this.isFinalRule = isFinalRule;