ShippingMode.java

package com.tradecloud.domain.model.shipment;

import javax.xml.bind.annotation.XmlEnum;

@XmlEnum
public enum ShippingMode {
    COURIER("Courier", "N/A"),
    AIR("Air", "4"),
    SEA("Sea", "1"),
    ROAD("Road", "3"),
    RAIL("Rail", "2");

    private final String value;
    private final String sarsCode;

    ShippingMode(String v, String sarsCode) {
        value = v;
        this.sarsCode = sarsCode;
    }

    public String value() {
        return value;
    }

    public static ShippingMode fromValue(String v) {
        for (ShippingMode c : ShippingMode.values()) {
            if (c.value.equalsIgnoreCase(v)) {
                return c;
            }
        }
        throw new IllegalArgumentException("Cannot resolve shipping mode:" + v);
    }

    public String getSarsCode() {
        return sarsCode;
    }

    public String getLabel() {
        return sarsCode + " - " + value;
    }

    public static boolean match(String s) {
        ShippingMode[] values = ShippingMode.values();
        for (ShippingMode value : values) {
            if (value.name().equalsIgnoreCase(s)) {
                return true;
            }
        }
        return false;
    }
}