Enum in Java

时间:2023-03-08 22:03:33

1. Enum Class

public enum ContainerPropertyConstants {
RETAILER("retailer"),
LINED("isLined"),
BAGGING("bagging"),
MISSING("missing"),
MOVABLE("movable"),
RESERVABLE("reservable"),
CONTAINED_DELIVERY_TOTE("hasContainerDeliveryTote"),
DAMAGED("isDamaged"),
DIRTY("isDirty"),
TAINTED("isTainted"),
CONTAINED_STOCK("hasContainedStock"),
UNKNOWN("unknown"); private String value;
private ContainerPropertyConstants(String value) {
this.value = value;
} public String getValue() {
return value;
} @Override
public String toString() {
return this.getValue();
} public static ContainerPropertyConstants getEnum(String propertyKey) {
for(ContainerPropertyConstants v : values()) {
if(v.getValue().equals(propertyKey.trim())) {
return v;
}
}
return UNKNOWN;
}
}

2. Use Enum Class

    private BinAttributes getBinAttributes(Map<PropertyKey, PropertyValue> properties, BinAttributes.Builder builder) {
properties.forEach((k, v) -> {
switch (ContainerPropertyConstants.getEnum(k.toString())) {
case LINED:
break;
case MOVABLE:
builder.setAccessibleToPhoenix(Boolean.valueOf(v.getPropertyValue()));
break;
case RESERVABLE:
break;
case CONTAINED_DELIVERY_TOTE:
break;
case DAMAGED:
builder.setDamaged(Boolean.valueOf(v.getPropertyValue()));
break;
case DIRTY:
builder.setContaminated( Boolean.valueOf(v.getPropertyValue()));
break;
case TAINTED:
builder.setTainted(Boolean.valueOf(v.getPropertyValue()));
break;
case CONTAINED_STOCK:
break;
case UNKNOWN:
throw new IllegalArgumentException("Phoenix container property [" + k + "] not recognised.");
default:
logger.info("Currently cannot handle container property [{}]", k);
           break;
}
}); return builder.build();
}