| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
-
- 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 {
- //------------------------------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^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- }
|