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);
}
}