ValuationMethod.java

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

public enum ValuationMethod {

    TRANSACTION_VALUE_METHOD("Transaction value method", "1"),
    IDENTICAL_GOODS_VALUE_METHOD("Identical Goods value method", "2"),
    SIMILAR_GOODS_VALUE_METHOD("Similar Goods value method", "3"),
    DEDUCTIVE_VALUE_METHOD("Deductive value method", "4"),
    COMPUTED_VALUE_METHOD("Computed value method", "5"),
    FALL_BACK_VALUE_METHOD("Fall-Back value method", "6");

    private final String value;
    private final String sarsCode;

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

    public String value() {
        return value;
    }

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

    public static ValuationMethod fromSarsCode(String code) {
        for (ValuationMethod c : ValuationMethod.values()) {
            if (c.sarsCode.equals(code)) {
                return c;
            }
        }
        throw new IllegalArgumentException(code);
    }

    public String getSarsCode() {
        return sarsCode;
    }

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