CostApplicationMethod.java

package com.tradecloud.domain.costing;

import javax.xml.bind.annotation.XmlEnum;

/**
 * How costs are allocated.
 */
@XmlEnum
public enum CostApplicationMethod {

    PERCENTAGE("Percentage", "Calculate Unit Landed Cost Based on Percentage of Cost Application Basis", true),
    VALUE("Flat Fee", "Calculate Unit Landed Cost Based on a Flat Fee", true),
    CONTAINER_PORT_RATE("Container at Port Rate", "Calculate Unit Landed Cost Based on a Container at Port Rate", true),
    CONTAINER_DEPOT_RATE("Container at Depot Rate", "Calculate Unit Landed Cost Based on a Container at Depot Rate", true),
    CONTAINER_FINAL_DESTINATION_RATE("Container at Final Destination Rate",
            "Calculate Unit Landed Cost Based on a Container at Final Destination Rate", true),
    CONTAINER_STORAGE_RATE("Container Storage Rate", "Calculate Unit Landed Cost Based on a Container Storage Rate", true),
    VOLUME("Value rate per cubic meter (m3)", "Calculate Unit Landed Cost Based on Item Volume", true),
    QUANTITY("Value rate per Quantity", "Value rate per Quantity", true),
    QUANTITY_EXC_HANGER("Value rate per Quantity, Excluding Hanger", "Value rate per Quantity, Excluding Hanger", true),
    WEIGHT("Value per chargeable weight (kg3)", "Calculate Unit Landed Cost Based on Item Weight", true),
    INTERNAL_WAREHOUSE_RATE("Internal Warehouse Rate", "Internal Warehouse Rate", true),
    NR_OF_CARTONS_PER_CONTAINER("Nr of cartons per container", "Nr of cartons per container", true),
    FLAT_FEE_PER_CONTAINER("Flat Fee Per Container", "Flat Fee Per Container", true),
    GROSS_WEIGHT("Value per weight", "Calculate Unit Landed Cost Based on Gross Item Weight", true),
    EXTERNAL_RATE_SOURCE("External Rate Source", "Lookup Rate from Service provider", true),
    FLAT_FEE_PER_WEIGHT_RANGE("Flat fee per weight range", "Flat fee per weight range", true);

    private final transient String name;
    private final transient boolean selectable;
    private final transient String description;

    private CostApplicationMethod(String name, String description, boolean selectable) {
        this.name = name;
        this.description = description;
        this.selectable = selectable;
    }

    public String getName() {
        return name;
    }

    @Override
    public String toString() {
        return name;
    }

    public boolean isSelectable() {
        return selectable;
    }

    public String getDescription() {
        return description;
    }

}