Tolerance.java

package com.tradecloud.domain.costing;

import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.model.organisationalunit.OrganisationalUnit;
import com.tradecloud.domain.model.shipment.ShippingMode;

import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.*;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * Entity that holds an upper and lower tolerance for a specific cost line.
 */
@Entity
@Table(name = "tolerance")
@NamedQueries({@NamedQuery(name = "tolerance.byLevelOrderbyOrgUnit",
        query = "select tolerance from Tolerance as tolerance " + "where "
                + "tolerance.organisationalUnit = :organisationalUnit and tolerance.shippingMode = :shippingMode"),
        @NamedQuery(name = "tolerance.all", query = "from Tolerance where active = 't'"),
        @NamedQuery(name = "tolerance.byLevel",
                query = "select tolerance from Tolerance as tolerance " + "where "
                        + "tolerance.shippingMode = :shippingMode")})
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "Tolerance")
public class Tolerance extends PersistenceBase implements Serializable {

    private static final long serialVersionUID = 1L;

    @XmlElementWrapper(name = "CostLineTolerance")
    @XmlElement(name = "CostLineTolerance")
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    private List<CostLineTolerance> costLineTolerances = new ArrayList<>();

    @ManyToOne
    @XmlElement(name = "organisationalUnit")
    private OrganisationalUnit organisationalUnit;

    @Enumerated(value = EnumType.STRING)
    @NotNull
    private ShippingMode shippingMode;

    @XmlAttribute
    protected Boolean active = Boolean.TRUE;

    public OrganisationalUnit getOrganisationalUnit() {
        return organisationalUnit;
    }

    public void setOrganisationalUnit(OrganisationalUnit organisationalUnit) {
        this.organisationalUnit = organisationalUnit;
    }

    @NotNull
    public ShippingMode getShippingMode() {
        return shippingMode;
    }

    public void setShippingMode(@NotNull ShippingMode shippingMode) {
        this.shippingMode = shippingMode;
    }

    public List<CostLineTolerance> getCostLineTolerances() {
        return costLineTolerances;
    }

    public void setCostLineTolerances(List<CostLineTolerance> costLineTolerances) {
        this.costLineTolerances = costLineTolerances;
    }

    @Override
    public Boolean getActive() {
        return active;
    }

    public void setActive(Boolean active) {
        this.active = active;
    }
}