feat: conjured-items - Added all the strategies

This commit is contained in:
Ahmed Abdeen 2025-01-15 21:19:05 +01:00
parent 2dafef1884
commit 5e318b83ec
No known key found for this signature in database
GPG Key ID: 536889D708486D8A
5 changed files with 70 additions and 0 deletions

View File

@ -0,0 +1,14 @@
package com.gildedrose;
public class AgedBrieItemStrategyImpl implements ItemStrategy {
@Override
public void updateQuality(Item item) {
if (item.quality < 50) {
item.quality = item.quality + 1;
}
item.sellIn = item.sellIn - 1;
if (item.sellIn < 0) {
item.quality = item.quality < 50 ? item.quality + 1 : 50;
}
}
}

View File

@ -0,0 +1,26 @@
package com.gildedrose;
public class BackStageItemStrategyImpl implements ItemStrategy {
@Override
public void updateQuality(Item item) {
if (item.quality < 50) {
item.quality = item.quality + 1;
if (item.sellIn < 11) {
if (item.quality < 50) {
item.quality = item.quality + 1;
}
}
if (item.sellIn < 6) {
if (item.quality < 50) {
item.quality = item.quality + 1;
}
}
}
item.sellIn = item.sellIn - 1;
if (item.sellIn < 0) {
item.quality = 0;
}
}
}

View File

@ -0,0 +1,9 @@
package com.gildedrose;
public class ConjuredItemStrategyImpl implements ItemStrategy {
@Override
public void updateQuality(Item item) {
item.quality = item.quality > 2 ? item.quality - 2 : 0;
item.sellIn = item.sellIn - 1;
}
}

View File

@ -0,0 +1,13 @@
package com.gildedrose;
public interface ItemStrategy {
default void updateQuality(Item item) {
if (item.quality > 0) {
item.quality = item.quality - 1;
}
item.sellIn = item.sellIn - 1;
if (item.sellIn < 0 && item.quality > 0) {
item.quality = item.quality - 1;
}
}
}

View File

@ -0,0 +1,8 @@
package com.gildedrose;
public class SulfurasItemStrategyImpl implements ItemStrategy {
@Override
public void updateQuality(Item item) {
// Quality remains intact. Not for sel!
}
}