ExportContainer.java

package com.tradecloud.domain.export;

import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.container.ContainerType;
import org.hibernate.annotations.ForeignKey;
import org.springframework.stereotype.Component;

import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.*;
import java.math.BigDecimal;

@Entity
@Component(value = "ExportContainer")
@Table(name = "exportcontainer")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "ExportContainer")
public class ExportContainer extends PersistenceBase implements Comparable<ExportContainer> {

    private static final Long serialVersionUID = 1L;
    @OneToOne
    @ForeignKey(name = "fk_containertype")
    @XmlElement(name = "ContainerType")
    @NotNull
    private ContainerType containerType;
    private BigDecimal quantity;
    /**
     * The bidirectional link back to the parent {@link Export}.
     */
    @ManyToOne(fetch = FetchType.LAZY)
    @XmlIDREF
    private Export export;

    @XmlAttribute
    protected String containerReference;

    @XmlAttribute
    protected String sealReference;

    private BigDecimal grossWeight;
    private BigDecimal nettWeight;

    @XmlAttribute
    private String dimension;

    public BigDecimal getGrossWeight() {
        return grossWeight;
    }

    public void setGrossWeight(BigDecimal grossWeight) {
        this.grossWeight = grossWeight;
    }

    public BigDecimal getNettWeight() {
        return nettWeight;
    }

    public void setNettWeight(BigDecimal nettWeight) {
        this.nettWeight = nettWeight;
    }

    public String getContainerReference() {
        return containerReference;
    }

    public void setContainerReference(String containerReference) {
        this.containerReference = containerReference;
    }

    public String getSealReference() {
        return sealReference;
    }

    public void setSealReference(String sealReference) {
        this.sealReference = sealReference;
    }

    public ExportContainer() {
    }

    public ExportContainer(ContainerType containerType, BigDecimal quantity, Export export, String containerReference, String sealReference,
                           BigDecimal grossWeight, BigDecimal nettWeight) {
        this.containerType = containerType;
        this.quantity = quantity;
        this.export = export;
        this.containerReference = containerReference;
        this.grossWeight = grossWeight;
        this.nettWeight = nettWeight;
        this.sealReference = sealReference;
    }

    public ExportContainer(ContainerType containerType, BigDecimal quantity, Export export, String containerReference, String sealReference,
                           BigDecimal grossWeight, BigDecimal nettWeight, String dimension) {
        this.containerType = containerType;
        this.quantity = quantity;
        this.export = export;
        this.containerReference = containerReference;
        this.grossWeight = grossWeight;
        this.nettWeight = nettWeight;
        this.sealReference = sealReference;
        this.dimension = dimension;
    }

    public ContainerType getContainerType() {
        return containerType;
    }

    public void setContainerType(ContainerType containerType) {
        this.containerType = containerType;
    }

    public BigDecimal getQuantity() {
        return quantity;
    }

    public void setQuantity(BigDecimal quantity) {
        this.quantity = quantity;
    }

    public Export getExport() {
        return export;
    }

    public void setExport(Export export) {
        this.export = export;
    }

    @Override
    public int compareTo(ExportContainer o) {
        if (created != null && o.created != null) {
            if (created.compareTo(o.getCreated()) != 0) {
                return created.compareTo(o.getCreated());
            }
        }
        return 0;
    }

    public String getDimension() {
        return dimension;
    }

    public void setDimension(String dimension) {
        this.dimension = dimension;
    }
}