PackingListItemBulkUpload.java

package com.tradecloud.domain.container;

import com.tradecloud.common.base.PersistenceBase;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.hibernate.annotations.ForeignKey;
import org.hibernate.annotations.NaturalId;

import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

@Entity
@Table(name = "packinglistitembulkupload")
/*@NamedQueries({ @NamedQuery(name = "packingListItem.findByOrderReferenceAndItemReference",
        query = "from PackingListItem pli where pli.packingListOrderBulkUpload.orderReference =

        :orderReference and pli.reference = :itemReference") })*/
@Access(AccessType.FIELD)
public class PackingListItemBulkUpload extends PersistenceBase implements Comparable<PackingListItemBulkUpload> {

    private static final long serialVersionUID = 1L;
    @NaturalId
    @ManyToOne(optional = false)
    @ForeignKey(name = "fk_packinglistorderbulkupload")
    private PackingListOrderBulkUpload packingListOrderBulkUpload;
    @NotNull
    private String reference;
    @NotNull
    private String description;
    private BigDecimal unitQuantity;

    @Temporal(TemporalType.TIMESTAMP)
    private Date addedToOrderDate;

    public PackingListOrderBulkUpload getPackingListOrder() {
        return packingListOrderBulkUpload;
    }

    public void setPackingListOrder(PackingListOrderBulkUpload packingListOrderBulkUpload) {
        this.packingListOrderBulkUpload = packingListOrderBulkUpload;
    }

    public String getReference() {
        return reference;
    }

    public void setReference(String reference) {
        this.reference = reference;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public BigDecimal getUnitQuantity() {
        return unitQuantity;
    }

    public void setUnitQuantity(BigDecimal unitQuantity) {
        this.unitQuantity = unitQuantity;
    }

    public Date getAddedToOrderDate() {
        return addedToOrderDate;
    }

    public void setAddedToOrderDate(Date addedToOrderDate) {
        this.addedToOrderDate = addedToOrderDate;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (this == null) {
            return true;
        }
        if (!(obj instanceof PackingListItemBulkUpload)) {
            return false;
        }
        PackingListItemBulkUpload other = (PackingListItemBulkUpload) obj;
        return new EqualsBuilder().append(packingListOrderBulkUpload, other.packingListOrderBulkUpload).append(reference, other.reference).isEquals();
    }

    @Override
    public int hashCode() {
        return new HashCodeBuilder().append(packingListOrderBulkUpload).append(reference).toHashCode();
    }

    @Override
    public String toString() {
        return "PackingListItem{" +
                "packingListOrderBulkUpload=" + packingListOrderBulkUpload +
                ", reference='" + reference + '\'' +
                ", description='" + description + '\'' +
                ", unitQuantity=" + unitQuantity +
                '}';
    }

    @Override
    public int compareTo(PackingListItemBulkUpload o) {
        return this.getReference().compareTo(o.getReference());
    }

}