Enum in Java

1. Enum Class

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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);<br>             break;
        }
    });
     
    return builder.build();
}
posted @   小张的练习室  阅读(160)  评论(0)    收藏  举报
点击右上角即可分享
微信分享提示