| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
-
- public class Inventory
- {
- private Item[] items;
- public Inventory(Item[] items) {
- super();
- this.items = items;
- }
-
- public void updateQuality() {
- for (int i = 0; i < items.length; i++)
- {
- String itemName = items[i].getName().toUpperCase();
- String[] nameArr = itemName.replaceAll("[^A-Z0-9\\s]", "").split(" ");
- String output = (nameArr[0].equals("5")) ? "FIVE" : nameArr[0];
-
- BigSellers.valueOf(output).quality(items[i]);
- }
- }
- //vvvvvvvvvvvvvvvvvvvvvvvvvvvvvBIG OL ENUMvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
- public enum BigSellers {
- //-------------------------CONJURED MANA BISCUIT------------------------------
- CONJURED() {
- @Override public void quality(Item x) {
- int currentQuality = x.getQuality();
- int sellIn = x.getSellIn();
- //------------------------------------------
- if (currentQuality > 0) {
- if(sellIn >= 0) {
- x.setQuality(currentQuality - 2);
- }
- else x.setQuality(currentQuality - 4);
- }
- //------------------------------------------
- x.setSellIn(sellIn - 1);
- }
- },
- //-----------------------------------------------------------------------------
- //------------------------------SULFURAS---------------------------------------
- SULFURAS() {
- @Override public void quality(Item x) {
- return;
- }
- },
- //----------------------------------------------------------------------------
- //----------------------------AGED BRIE---------------------------------------
- AGED() {
- @Override public void quality(Item x) {
- int currentQuality = x.getQuality();
- int sellIn = x.getSellIn();
- int adjustPrice = sellIn > 0 ? 1 : 2;
- //---------------------------------------
- if (currentQuality < 50) {
- x.setQuality(currentQuality + adjustPrice);
- }
- //--------------------------------------
- x.setSellIn(sellIn - 1);
- }
- },
- //-----------------------------------------------------------------------------
- //-------------------------BACKSTAGE PASSES------------------------------------
- BACKSTAGE() {
- @Override public void quality(Item x) {
- int currentQuality = x.getQuality();
- int sellIn = x.getSellIn();
- int adjustPrice = sellIn <= 5 ? 3 :
- sellIn <= 10 ? 2 :
- 1 ;
- //-------------------------------------
- if (sellIn >= 0) {
- if (currentQuality + adjustPrice >= 50) {
- x.setQuality(50);
- }
- else x.setQuality(currentQuality + adjustPrice);
- }
- else x.setQuality(0);
- //--------------------------------------
- x.setSellIn(sellIn - 1);
- }
- },
- //-----------------------------------------------------------------------------
- //-----------------------------+5 DEX------------------------------------------
- FIVE() {
- @Override public void quality(Item x) {
- int currentQuality = x.getQuality();
- int sellIn = x.getSellIn();
- //------------------------------------------
- if (currentQuality > 0) {
- if(sellIn >= 0) {
- x.setQuality(currentQuality - 1);
- }
- else x.setQuality(currentQuality - 2);
- }
- //------------------------------------------
- x.setSellIn(sellIn - 1);
- }
- };
- //-----------------------------------------------------------------------------
- public abstract void quality(Item x); //<--------template method
- }
- //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^END OF ENUM^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- }
|