CostCalculationLevel.java

package com.tradecloud.domain.costing;

import javax.xml.bind.annotation.XmlEnum;

/**
 * The level at which the cost is calculated on the cost sheet.
 */
@XmlEnum
public enum CostCalculationLevel {

    ITEM("Item", "Item - the algorithm must occur at item level (i.e. take item information into account) & sum up to order level", true),
    ORDER("Order", "Order - the algorithm must occur at order level (i.e. take order information into account) & sum up to consignment level", true),
    CONSIGNMENT_SHIPMENT("Consignment/Shipment",
            "Consignment/Shipment - consignment level on GLC & shipment level for ALC.", true);
    private final transient String name;
    private final transient boolean selectable;
    private final transient String description;

    private CostCalculationLevel(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;
    }
}