CreditorBillingTransactionShippingInfo.java

package com.tradecloud.domain.creditorbilling.transaction;

import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.common.Incoterm;
import com.tradecloud.domain.model.shipment.ShippingMode;
import com.tradecloud.domain.party.ServiceProvider;
import com.tradecloud.domain.place.FinalDestination;
import com.tradecloud.domain.place.PlaceOfDischarge;
import com.tradecloud.domain.place.PlaceOfLoading;
import com.tradecloud.domain.shipment.BaseShippingInfo;
import org.hibernate.annotations.ForeignKey;

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

/**
 * @author jon
 */
@Entity
@Table(name = "cbtransactionshippinginfo")
public class CreditorBillingTransactionShippingInfo extends PersistenceBase implements BaseShippingInfo {

    private String voyageNumber;
    private String shippingVessel;
    private String billOfLadingReference;
    private Date billOfLadingDate;
    private Date actualDepartureDate;
    private Date actualArrivalDate;

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

    @Enumerated(EnumType.STRING)
    private ShippingMode shippingModeUpdate;

    @NotNull
    @ForeignKey(name = "fk_incoterm")
    @ManyToOne
    @JoinColumn(name = "incoterm_code")
    private Incoterm incoterm;

    @ForeignKey(name = "fk_incotermupdate")
    @ManyToOne
    @JoinColumn(name = "incoterm_update_code")
    private Incoterm incotermUpdate;

    @NotNull
    @ForeignKey(name = "fk_placeofloading")
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "placeofloading_code")
    private PlaceOfLoading placeOfLoading;

    @ForeignKey(name = "fk_placeofloadingupdate")
    @ManyToOne
    @JoinColumn(name = "placeofloading_update_code")
    private PlaceOfLoading placeOfLoadingUpdate;

    @NotNull
    @ForeignKey(name = "fk_placeofdischarge")
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "placeofdischarge_code")
    private PlaceOfDischarge placeOfDischarge;

    @ForeignKey(name = "fk_placeofdischargeupdate")
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "placeofdischarge_update_code")
    private PlaceOfDischarge placeOfDischargeUpdate;

    @NotNull
    @ForeignKey(name = "fk_freightforwarder")
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "freightforwarder_id")
    private ServiceProvider freightForwarder;

    @ForeignKey(name = "fk_freightforwarderupdate")
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "freightforwarder_update_id")
    private ServiceProvider freightForwarderUpdate;

    @NotNull
    @ForeignKey(name = "fk_clearingagent")
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "clearingagent_id")
    private ServiceProvider clearingAgent;

    @ForeignKey(name = "fk_clearingagentupdate")
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "clearingagent_update_id")
    private ServiceProvider clearingAgentUpdate;

    @ForeignKey(name = "fk_finaldestination")
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "final_destination_code")
    private FinalDestination finalDestination;

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

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

    @Override
    public Incoterm getIncoterm() {
        return incoterm;
    }

    @Override
    public void setIncoterm(Incoterm incoterm) {
        this.incoterm = incoterm;
    }

    @Override
    public PlaceOfLoading getPlaceOfLoading() {
        return placeOfLoading;
    }

    @Override
    public void setPlaceOfLoading(PlaceOfLoading placeOfLoading) {
        this.placeOfLoading = placeOfLoading;
    }

    @Override
    public PlaceOfDischarge getPlaceOfDischarge() {
        return placeOfDischarge;
    }

    @Override
    public void setPlaceOfDischarge(PlaceOfDischarge placeOfDischarge) {
        this.placeOfDischarge = placeOfDischarge;
    }

    @Override
    public ServiceProvider getFreightForwarder() {
        return freightForwarder;
    }

    @Override
    public void setFreightForwarder(ServiceProvider freightForwarder) {
        this.freightForwarder = freightForwarder;
    }

    @Override
    public ServiceProvider getClearingAgent() {
        return clearingAgent;
    }

    @Override
    public void setClearingAgent(ServiceProvider clearingAgent) {
        this.clearingAgent = clearingAgent;
    }

    public ShippingMode getShippingModeUpdate() {
        return shippingModeUpdate;
    }

    public void setShippingModeUpdate(ShippingMode shippingModeUpdate) {
        this.shippingModeUpdate = shippingModeUpdate;
    }

    public Incoterm getIncotermUpdate() {
        return incotermUpdate;
    }

    public void setIncotermUpdate(Incoterm incotermUpdate) {
        this.incotermUpdate = incotermUpdate;
    }

    public PlaceOfLoading getPlaceOfLoadingUpdate() {
        return placeOfLoadingUpdate;
    }

    public void setPlaceOfLoadingUpdate(PlaceOfLoading placeOfLoadingUpdate) {
        this.placeOfLoadingUpdate = placeOfLoadingUpdate;
    }

    public PlaceOfDischarge getPlaceOfDischargeUpdate() {
        return placeOfDischargeUpdate;
    }

    public void setPlaceOfDischargeUpdate(PlaceOfDischarge placeOfDischargeUpdate) {
        this.placeOfDischargeUpdate = placeOfDischargeUpdate;
    }

    public ServiceProvider getFreightForwarderUpdate() {
        return freightForwarderUpdate;
    }

    public void setFreightForwarderUpdate(ServiceProvider freightForwarderUpdate) {
        this.freightForwarderUpdate = freightForwarderUpdate;
    }

    public ServiceProvider getClearingAgentUpdate() {
        return clearingAgentUpdate;
    }

    public void setClearingAgentUpdate(ServiceProvider clearingAgentUpdate) {
        this.clearingAgentUpdate = clearingAgentUpdate;
    }

    public FinalDestination getFinalDestination() {
        return finalDestination;
    }

    public void setFinalDestination(FinalDestination finalDestination) {
        this.finalDestination = finalDestination;
    }

    public Date getActualDepartureDate() {
        return actualDepartureDate;
    }

    public void setActualDepartureDate(Date actualDepartureDate) {
        this.actualDepartureDate = actualDepartureDate;
    }

    public Date getActualArrivalDate() {
        return actualArrivalDate;
    }

    public void setActualArrivalDate(Date actualArrivalDate) {
        this.actualArrivalDate = actualArrivalDate;
    }

    public String getVoyageNumber() {
        return voyageNumber;
    }

    public void setVoyageNumber(String voyageNumber) {
        this.voyageNumber = voyageNumber;
    }

    public String getShippingVessel() {
        return shippingVessel;
    }

    public void setShippingVessel(String shippingVessel) {
        this.shippingVessel = shippingVessel;
    }

    public String getBillOfLadingReference() {
        return billOfLadingReference;
    }

    public void setBillOfLadingReference(String billOfLadingReference) {
        this.billOfLadingReference = billOfLadingReference;
    }

    public Date getBillOfLadingDate() {
        return billOfLadingDate;
    }

    public void setBillOfLadingDate(Date billOfLadingDate) {
        this.billOfLadingDate = billOfLadingDate;
    }

    @Override
    public ShippingMode getMultiModalShippingMode() {
        return null;
    }

    @Override
    public void setMultiModalShippingMode(ShippingMode shippingMode) {

    }
}