PaymentMethod.java

package com.tradecloud.domain.configuration.clearing.za;

import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

@XmlRootElement(name = "customsPaymentMethod")
@XmlType(name = "customsPaymentMethod")
public enum PaymentMethod {

    DEFER("Defer", "D"),
    FREE("Free", "F"),
    VAT_ONLY("Vat Only", "V"),
    CASH("Cash", "C");

    private final String value;
    private final String sarsCode;

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

    public String value() {
        return value;
    }

    public static PaymentMethod fromValue(String v) {
        for (PaymentMethod c : PaymentMethod.values()) {
            if (c.value.equals(v)) {
                return c;
            }
        }
        throw new IllegalArgumentException(v);
    }

    public String getSarsCode() {
        return sarsCode;
    }

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