ForwardingRate.java
package com.tradecloud.domain.rate;
import com.tradecloud.domain.container.ContainerType;
import com.tradecloud.domain.model.organisationalunit.OrganisationalUnit;
import com.tradecloud.domain.model.shipment.ShippingMode;
import com.tradecloud.domain.party.ServiceProvider;
import com.tradecloud.domain.place.NamedPlace;
import com.tradecloud.domain.place.PlaceOfLoading;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
@Entity
@Table(name = "forwardingrate")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "ForwardingRate")
@Getter
@Setter
public class ForwardingRate extends Rate implements CompanyRate {
private static final long serialVersionUID = 1L;
@NotNull
@Basic(optional = false)
@Enumerated(EnumType.STRING)
private ShippingMode shippingMode;
@Enumerated(EnumType.STRING)
private ShippingMode multiModalShippingMode;
@ManyToOne
private ContainerType containerType;
@ManyToOne
private PlaceOfLoading placeOfLoading;
@ManyToOne
private ServiceProvider freightForwarder;
@ManyToOne
private ServiceProvider carrier;
@ManyToOne
private NamedPlace namedPlace;
@ManyToOne
private OrganisationalUnit company;
public ContainerType getContainerType() {
return containerType;
}
public void setContainerType(ContainerType containerType) {
this.containerType = containerType;
}
public ServiceProvider getFreightForwarder() {
return freightForwarder;
}
public void setFreightForwarder(ServiceProvider freightForwarder) {
this.freightForwarder = freightForwarder;
}
public PlaceOfLoading getPlaceOfLoading() {
return placeOfLoading;
}
public void setPlaceOfLoading(PlaceOfLoading placeOfLoading) {
this.placeOfLoading = placeOfLoading;
}
public ShippingMode getShippingMode() {
return shippingMode;
}
public void setShippingMode(ShippingMode shippingMode) {
this.shippingMode = shippingMode;
}
public NamedPlace getNamedPlace() {
return namedPlace;
}
public void setNamedPlace(NamedPlace namedPlace) {
this.namedPlace = namedPlace;
}
@Override
public String toString() {
String toReturn = super.toString();
String shippingModeStr = "Shipping Mode: '" + shippingMode + "', ";
String containerTypeStr = "Container Type: '" +
(containerType != null ? containerType.getName() : "") + "', ";
String placeOfLoadingStr = "Place of Loading: '" +
(placeOfLoading != null ? placeOfLoading.getName() : "") + "', ";
String freightForwarderStr = "Freight Forwarder: '" +
(freightForwarder != null ? freightForwarder.getName() : "") + "', ";
String carrierStr = "Carrier: '" +
(carrier != null ? carrier.getName() : "") + "', ";
String namedPlaceStr = " Named Place:" + (namedPlace != null ? namedPlace.getName() : "") + "', ";
String organisationalUnitStr = "Organisational Unit: '" + (getOrganisationalUnit() != null ? getOrganisationalUnit().getName() : "") + "',";
toReturn += shippingModeStr + containerTypeStr + placeOfLoadingStr + freightForwarderStr + carrierStr + namedPlaceStr + organisationalUnitStr;
return toReturn;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null)
return false;
if (!(obj instanceof ForwardingRate)) {
return false;
}
if (!super.equals(obj))
return false;
ForwardingRate other = (ForwardingRate) obj;
if (other.getShippingMode() == shippingMode
&& objectsEqual(containerType, other.getContainerType())
&& objectsEqual(placeOfLoading, other.getPlaceOfLoading())
&& objectsEqual(freightForwarder, other.getFreightForwarder())
&& objectsEqual(carrier, other.getCarrier())
&& objectsEqual(namedPlace, other.getNamedPlace())
&& objectsEqual(getOrganisationalUnit(), other.getOrganisationalUnit())
&& objectsEqual(company, other.getCompany()))
return true;
return false;
}
/**
* @return the carrier
*/
public ServiceProvider getCarrier() {
return carrier;
}
/**
* @param carrier the carrier to set
*/
public void setCarrier(ServiceProvider carrier) {
this.carrier = carrier;
}
}