public class Inventory { private Item[] items; private final int MAX_QUALITY = 50; private final String AGED_BRIE_NAME = "Aged Brie"; private final String BACKSTAGE_PASS_NAME = "Backstage passes to a TAFKAL80ETC concert"; private final String NORMAL_ITEM_NAME = "+5 Dexterity Vest"; private final String CONJURED_ITEM_NAME = "Conjured Flower Bouquet"; private final String SULFURAS = "Sulfuras, Hand of Ragnaros"; public Inventory(Item[] items) { super(); this.items = items; } public void updateQuality() { for (int i = 0; i < items.length; i++) { if (items[i].getName().equals(SULFURAS)) { continue; } switch (items[i].getName()) { case BACKSTAGE_PASS_NAME : updateTickets(items[i]); break; case AGED_BRIE_NAME : updateBrie(items[i]); break; case CONJURED_ITEM_NAME : updateConjuredItem(items[i]); break; default : updateNormalItem(items[i]); break; } items[i].setSellIn(items[i].getSellIn() - 1); } } public void updateTickets(Item ticket) { if (ticket.getSellIn() < 0) { ticket.setQuality(0); } else if (ticket.getQuality() >= 48) { ticket.setQuality(50); } else { if (ticket.getSellIn() >= 11) { ticket.setQuality(ticket.getQuality() + 1); } else if (ticket.getSellIn() >= 6 && ticket.getSellIn() < 11) { ticket.setQuality(ticket.getQuality() + 2); } else if (ticket.getSellIn() < 6) { ticket.setQuality(ticket.getQuality() + 3); } } } public void updateBrie(Item brie) { if (brie.getSellIn() > 0 && brie.getQuality() < 50) { brie.setQuality(brie.getQuality() + 1); } else if (brie.getSellIn() < 0) { brie.setQuality(brie.getQuality() + 2); } } public void updateNormalItem(Item item) { if (item.getQuality() > 0) { item.setQuality(item.getQuality() - 1); } if (item.getSellIn() < 0) { item.setQuality(item.getQuality() - 1); } } public void updateConjuredItem(Item item) { if (item.getQuality() > 0) { item.setQuality(item.getQuality() - 2); } if (item.getSellIn() < 0) { item.setQuality(item.getQuality() - 2); } } }