DeliveryNote.java

package com.tradecloud.domain.document;

import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.shipment.Shipment;

import javax.persistence.*;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.HashSet;
import java.util.Set;

@Entity
@Table(name = "deliverynote")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "DeliveryNote")
public class DeliveryNote extends PersistenceBase {

    private static final long serialVersionUID = 1L;

    private String referenceNumber;

    @ManyToOne(cascade = CascadeType.ALL)
    private Shipment shipment;

    @OneToMany(cascade = CascadeType.ALL)
    private Set<DeliveryNoteItem> deliveryNoteItems = new HashSet<DeliveryNoteItem>();

    public DeliveryNote() {

    }

    public String getReferenceNumber() {
        return referenceNumber;
    }

    public void setReferenceNumber(String referenceNumber) {
        this.referenceNumber = referenceNumber;
    }

    public Shipment getShipment() {
        return shipment;
    }

    public void setShipment(Shipment shipment) {
        this.shipment = shipment;
    }

    public Set<DeliveryNoteItem> getDeliveryNoteItems() {
        return deliveryNoteItems;
    }

    public void setDeliveryNoteItems(Set<DeliveryNoteItem> deliveryNoteItems) {
        this.deliveryNoteItems = deliveryNoteItems;
    }

    public void addDeliveryNoteItem(DeliveryNoteItem deliveryNoteItem) {
        deliveryNoteItem.setDeliveryNote(this);
        getDeliveryNoteItems().add(deliveryNoteItem);
    }

    public void removeDeliveryNoteItem(DeliveryNoteItem deliveryNoteItem) {
        getDeliveryNoteItems().remove(deliveryNoteItem);
    }

}