From 7435c53775514f8e038f3c713d8516d39e29b6ca Mon Sep 17 00:00:00 2001 From: Bjorn Misseghers Date: Tue, 13 Apr 2021 10:59:23 +0200 Subject: [PATCH] Add base class for item behavior The class takes quality and sellIn behavior implementations as constructor parameters --- .../behavior/item/ItemBehaviorImpl.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Java/src/main/java/com/gildedrose/behavior/item/ItemBehaviorImpl.java diff --git a/Java/src/main/java/com/gildedrose/behavior/item/ItemBehaviorImpl.java b/Java/src/main/java/com/gildedrose/behavior/item/ItemBehaviorImpl.java new file mode 100644 index 00000000..c50cda01 --- /dev/null +++ b/Java/src/main/java/com/gildedrose/behavior/item/ItemBehaviorImpl.java @@ -0,0 +1,26 @@ +package com.gildedrose.behavior.item; + +import com.gildedrose.Item; +import com.gildedrose.behavior.quality.QualityBehavior; +import com.gildedrose.behavior.sellin.SellInBehavior; + +public class ItemBehaviorImpl implements ItemBehavior { + + private final QualityBehavior qualityBehavior; + private final SellInBehavior sellInBehavior; + + private ItemBehaviorImpl(QualityBehavior qualityBehavior, SellInBehavior sellInBehavior) { + this.qualityBehavior = qualityBehavior; + this.sellInBehavior = sellInBehavior; + } + + public static ItemBehaviorImpl of(QualityBehavior qualityBehavior, SellInBehavior sellInBehavior) { + return new ItemBehaviorImpl(qualityBehavior, sellInBehavior); + } + + @Override + public void processUpdate(Item item) { + qualityBehavior.processQualityUpdate(item); + sellInBehavior.processSellInUpdate(item); + } +}