Refactored code- Adapted method to remove redundant method calls for quality update

This commit is contained in:
lekshmysasidhar 2023-03-31 13:33:24 +02:00
parent 0b064047da
commit 7ec3761989
3 changed files with 11 additions and 9 deletions

View File

@ -5,17 +5,18 @@ import static com.gildedrose.rule.ValidationRule.isExpired;
public class AgedBrie implements Goods {
private static final int MAX_ALLOWED_QUALITY = 50;
private static final int QUALITY_TO_ADD = 1;
@Override
public void updateQuality(Item item) {
Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY);
Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY, QUALITY_TO_ADD);
}
@Override
public void updateQualityForExpiredItem(Item item) {
if (isExpired(item)) {
Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY);
Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY, QUALITY_TO_ADD);
}
}

View File

@ -8,19 +8,20 @@ public class BackStagePasses implements Goods {
private static final int SELL_IN_MAX_THRESHOLD_DAY = 11;
private static final int SELL_IN_MIN_THRESHOLD_DAY = 6;
private static final int ZERO = 0;
private static final int DEFAULT_QUALITY_TO_ADD = 1;
@Override
public void updateQuality(Item item) {
Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY);
int qualityToAdd = DEFAULT_QUALITY_TO_ADD;
if (isWithInLimit(SELL_IN_MAX_THRESHOLD_DAY, item.sellIn)) {
Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY);
qualityToAdd++;
}
if (isWithInLimit(SELL_IN_MIN_THRESHOLD_DAY, item.sellIn)) {
Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY);
qualityToAdd++;
}
Goods.super.addQualityWhenWithInLimit(item, MAX_ALLOWED_QUALITY, qualityToAdd);
}
@Override
public void updateQualityForExpiredItem(Item item) {

View File

@ -12,9 +12,9 @@ public interface Goods {
public void updateQualityForExpiredItem(Item item);
default void addQualityWhenWithInLimit(Item item, int limit) {
default void addQualityWhenWithInLimit(Item item, int limit, int qualityToAdd) {
if (isWithInLimit(limit, item.quality)) {
item.quality++;
item.quality = Math.min(limit, item.quality + qualityToAdd);
}
}
}