BAEL-3987 (#9139)
* BAEL-3987 - Cast an int to an enum value * refactoring * code refactored * BAEL-3987 - Updated code snippets * bAEL-3987 - Fixed indentation
This commit is contained in:
parent
4c1af8f004
commit
6cd7bfba80
|
@ -0,0 +1,36 @@
|
||||||
|
package com.baeldung.inttoenum;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public enum PizzaStatus {
|
||||||
|
ORDERED(5),
|
||||||
|
READY(2),
|
||||||
|
DELIVERED(0);
|
||||||
|
|
||||||
|
private int timeToDelivery;
|
||||||
|
|
||||||
|
PizzaStatus(int timeToDelivery) {
|
||||||
|
this.timeToDelivery = timeToDelivery;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTimeToDelivery() {
|
||||||
|
return timeToDelivery;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Map<Integer, PizzaStatus> timeToDeliveryToEnumValuesMapping = new HashMap<>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
PizzaStatus[] pizzaStatuses = PizzaStatus.values();
|
||||||
|
for (int pizzaStatusIndex = 0; pizzaStatusIndex < pizzaStatuses.length; pizzaStatusIndex++) {
|
||||||
|
timeToDeliveryToEnumValuesMapping.put(
|
||||||
|
pizzaStatuses[pizzaStatusIndex].getTimeToDelivery(),
|
||||||
|
pizzaStatuses[pizzaStatusIndex]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static PizzaStatus castIntToEnum(int timeToDelivery) {
|
||||||
|
return timeToDeliveryToEnumValuesMapping.get(timeToDelivery);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
package com.baeldung.inttoenum;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
public class IntToEnumUnitTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenIntToEnumUsingValuesMethod_thenReturnEnumObject() {
|
||||||
|
int timeToDeliveryForOrderedPizzaStatus = 5;
|
||||||
|
PizzaStatus[] pizzaStatuses = PizzaStatus.values();
|
||||||
|
PizzaStatus pizzaOrderedStatus = null;
|
||||||
|
for (int pizzaStatusIndex = 0; pizzaStatusIndex < pizzaStatuses.length; pizzaStatusIndex++) {
|
||||||
|
if (pizzaStatuses[pizzaStatusIndex].getTimeToDelivery() == timeToDeliveryForOrderedPizzaStatus) {
|
||||||
|
pizzaOrderedStatus = pizzaStatuses[pizzaStatusIndex];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
assertEquals(pizzaOrderedStatus, PizzaStatus.ORDERED);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenIntToEnumUsingMap_thenReturnEnumObject() {
|
||||||
|
int timeToDeliveryForOrderedPizzaStatus = 5;
|
||||||
|
assertEquals(PizzaStatus.castIntToEnum(timeToDeliveryForOrderedPizzaStatus), PizzaStatus.ORDERED);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue