From 8d6526c62ed8e9386c1354929100b7466430f231 Mon Sep 17 00:00:00 2001 From: Alex Theedom Date: Thu, 9 Jun 2016 22:25:41 +0100 Subject: [PATCH] Some minor changes to code logic and style --- core-java/pom.xml | 4 +- .../main/java/com/baeldung/enums/Pizza.java | 71 +++++++++---------- .../PizzaDeliverySystemConfiguration.java | 7 +- .../org/baeldung/java/enums/PizzaTest.java | 36 +++++----- 4 files changed, 56 insertions(+), 62 deletions(-) diff --git a/core-java/pom.xml b/core-java/pom.xml index 39cb79a86a..cb194a6d9f 100644 --- a/core-java/pom.xml +++ b/core-java/pom.xml @@ -126,8 +126,8 @@ maven-compiler-plugin ${maven-compiler-plugin.version} - 1.7 - 1.7 + 1.8 + 1.8 diff --git a/core-java/src/main/java/com/baeldung/enums/Pizza.java b/core-java/src/main/java/com/baeldung/enums/Pizza.java index b1c90b42cf..7742781081 100644 --- a/core-java/src/main/java/com/baeldung/enums/Pizza.java +++ b/core-java/src/main/java/com/baeldung/enums/Pizza.java @@ -3,37 +3,36 @@ package com.baeldung.enums; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.commons.collections15.CollectionUtils; import org.apache.commons.collections15.Predicate; import java.io.IOException; -import java.util.ArrayList; import java.util.EnumMap; import java.util.EnumSet; import java.util.List; +import java.util.stream.Collectors; public class Pizza { - private static EnumSet undeliveredPizzaStatuses = - EnumSet.of(PizzaStatusEnum.ORDERED, PizzaStatusEnum.READY); + private static EnumSet undeliveredPizzaStatuses = + EnumSet.of(PizzaStatus.ORDERED, PizzaStatus.READY); - private PizzaStatusEnum status; + private PizzaStatus status; @JsonFormat(shape = JsonFormat.Shape.OBJECT) - public enum PizzaStatusEnum { - ORDERED (5){ + public enum PizzaStatus { + ORDERED(5) { @Override public boolean isOrdered() { return true; } }, - READY (2){ + READY(2) { @Override public boolean isReady() { return true; } }, - DELIVERED (0){ + DELIVERED(0) { @Override public boolean isDelivered() { return true; @@ -42,26 +41,33 @@ public class Pizza { private int timeToDelivery; - public boolean isOrdered() {return false;} + public boolean isOrdered() { + return false; + } - public boolean isReady() {return false;} + public boolean isReady() { + return false; + } + + public boolean isDelivered() { + return false; + } - public boolean isDelivered(){return false;} @JsonProperty("timeToDelivery") public int getTimeToDelivery() { return timeToDelivery; } - private PizzaStatusEnum (int timeToDelivery) { + PizzaStatus(int timeToDelivery) { this.timeToDelivery = timeToDelivery; } } - public PizzaStatusEnum getStatus() { + public PizzaStatus getStatus() { return status; } - public void setStatus(PizzaStatusEnum status) { + public void setStatus(PizzaStatus status) { this.status = status; } @@ -73,32 +79,23 @@ public class Pizza { System.out.println("Time to delivery is " + this.getStatus().getTimeToDelivery() + " days"); } - public static List getAllUndeliveredPizza(List input) { - List undelivered = input; - CollectionUtils.filter(undelivered, thatAreNotDelivered()); - return undelivered; + public static List getAllUndeliveredPizzas(List input) { + return input.stream().filter( + (s) -> undeliveredPizzaStatuses.contains(s.getStatus())) + .collect(Collectors.toList()); } - public static EnumMap> groupPizzaByStatus(List pizzaList) { - EnumMap> pzByStatus = new EnumMap>(PizzaStatusEnum.class); - for (Pizza pz : pizzaList) { - PizzaStatusEnum status = pz.getStatus(); - - if (pzByStatus.containsKey(status)) { - pzByStatus.get(status).add(pz); - } else { - List newPzList = new ArrayList(); - newPzList.add(pz); - pzByStatus.put(status, newPzList); - } - } - return pzByStatus; + public static EnumMap> + groupPizzaByStatus(List pzList) { + return pzList.stream().collect( + Collectors.groupingBy(Pizza::getStatus, + () -> new EnumMap<>(PizzaStatus.class), Collectors.toList())); } public void deliver() { if (isDeliverable()) { PizzaDeliverySystemConfiguration.getInstance().getDeliveryStrategy().deliver(this); - this.setStatus(PizzaStatusEnum.DELIVERED); + this.setStatus(PizzaStatus.DELIVERED); } } @@ -108,10 +105,6 @@ public class Pizza { } private static Predicate thatAreNotDelivered() { - return new Predicate() { - public boolean evaluate(Pizza entry) { - return undeliveredPizzaStatuses.contains(entry.getStatus()); - } - }; + return entry -> undeliveredPizzaStatuses.contains(entry.getStatus()); } } \ No newline at end of file diff --git a/core-java/src/main/java/com/baeldung/enums/PizzaDeliverySystemConfiguration.java b/core-java/src/main/java/com/baeldung/enums/PizzaDeliverySystemConfiguration.java index 9210945783..a276b3c000 100644 --- a/core-java/src/main/java/com/baeldung/enums/PizzaDeliverySystemConfiguration.java +++ b/core-java/src/main/java/com/baeldung/enums/PizzaDeliverySystemConfiguration.java @@ -1,9 +1,10 @@ package com.baeldung.enums; public enum PizzaDeliverySystemConfiguration { - INSTANCE ; - private PizzaDeliverySystemConfiguration() { - //Do the configuration initialization which + INSTANCE; + + PizzaDeliverySystemConfiguration() { + // Do the configuration initialization which // involves overriding defaults like delivery strategy } diff --git a/core-java/src/test/java/org/baeldung/java/enums/PizzaTest.java b/core-java/src/test/java/org/baeldung/java/enums/PizzaTest.java index 9f6a8feae5..a6814ee600 100644 --- a/core-java/src/test/java/org/baeldung/java/enums/PizzaTest.java +++ b/core-java/src/test/java/org/baeldung/java/enums/PizzaTest.java @@ -15,66 +15,66 @@ public class PizzaTest { @Test public void givenPizaOrder_whenReady_thenDeliverable() { Pizza testPz = new Pizza(); - testPz.setStatus(Pizza.PizzaStatusEnum.READY); + testPz.setStatus(Pizza.PizzaStatus.READY); assertTrue(testPz.isDeliverable()); } @Test public void givenPizaOrders_whenRetrievingUnDeliveredPzs_thenCorrectlyRetrieved() { - List pzList = new ArrayList(); + List pzList = new ArrayList<>(); Pizza pz1 = new Pizza(); - pz1.setStatus(Pizza.PizzaStatusEnum.DELIVERED); + pz1.setStatus(Pizza.PizzaStatus.DELIVERED); Pizza pz2 = new Pizza(); - pz2.setStatus(Pizza.PizzaStatusEnum.ORDERED); + pz2.setStatus(Pizza.PizzaStatus.ORDERED); Pizza pz3 = new Pizza(); - pz3.setStatus(Pizza.PizzaStatusEnum.ORDERED); + pz3.setStatus(Pizza.PizzaStatus.ORDERED); Pizza pz4 = new Pizza(); - pz4.setStatus(Pizza.PizzaStatusEnum.READY); + pz4.setStatus(Pizza.PizzaStatus.READY); pzList.add(pz1); pzList.add(pz2); pzList.add(pz3); pzList.add(pz4); - List undeliveredPzs = Pizza.getAllUndeliveredPizza(pzList); + List undeliveredPzs = Pizza.getAllUndeliveredPizzas(pzList); assertTrue(undeliveredPzs.size() == 3); } @Test public void givenPizaOrders_whenGroupByStatusCalled_thenCorrectlyGrouped() { - List pzList = new ArrayList(); + List pzList = new ArrayList<>(); Pizza pz1 = new Pizza(); - pz1.setStatus(Pizza.PizzaStatusEnum.DELIVERED); + pz1.setStatus(Pizza.PizzaStatus.DELIVERED); Pizza pz2 = new Pizza(); - pz2.setStatus(Pizza.PizzaStatusEnum.ORDERED); + pz2.setStatus(Pizza.PizzaStatus.ORDERED); Pizza pz3 = new Pizza(); - pz3.setStatus(Pizza.PizzaStatusEnum.ORDERED); + pz3.setStatus(Pizza.PizzaStatus.ORDERED); Pizza pz4 = new Pizza(); - pz4.setStatus(Pizza.PizzaStatusEnum.READY); + pz4.setStatus(Pizza.PizzaStatus.READY); pzList.add(pz1); pzList.add(pz2); pzList.add(pz3); pzList.add(pz4); - EnumMap> map = Pizza.groupPizzaByStatus(pzList); - assertTrue(map.get(Pizza.PizzaStatusEnum.DELIVERED).size() == 1); - assertTrue(map.get(Pizza.PizzaStatusEnum.ORDERED).size() == 2); - assertTrue(map.get(Pizza.PizzaStatusEnum.READY).size() == 1); + EnumMap> map = Pizza.groupPizzaByStatus(pzList); + assertTrue(map.get(Pizza.PizzaStatus.DELIVERED).size() == 1); + assertTrue(map.get(Pizza.PizzaStatus.ORDERED).size() == 2); + assertTrue(map.get(Pizza.PizzaStatus.READY).size() == 1); } @Test public void givenPizaOrder_whenDelivered_thenPizzaGetsDeliveredAndStatusChanges() { Pizza pz = new Pizza(); - pz.setStatus(Pizza.PizzaStatusEnum.READY); + pz.setStatus(Pizza.PizzaStatus.READY); pz.deliver(); - assertTrue(pz.getStatus() == Pizza.PizzaStatusEnum.DELIVERED); + assertTrue(pz.getStatus() == Pizza.PizzaStatus.DELIVERED); } }