LeadTime.java
package com.tradecloud.domain.common;
import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.model.shipment.ShippingMode;
import com.tradecloud.domain.place.City;
import com.tradecloud.domain.place.PlaceOfDischarge;
import com.tradecloud.domain.place.PlaceOfLoading;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
/**
* TODO - This entity really needs some unique constraints. The data has the potential to snow ball and become unmanageable.
*/
@Entity
@Table(name = "leadtime")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
public class LeadTime extends PersistenceBase {
@Enumerated(value = EnumType.STRING)
private ShippingMode shippingMode;
@ManyToOne
private PlaceOfLoading placeOfLoading;
@ManyToOne
private PlaceOfDischarge placeOfDischarge;
@ManyToOne
private City city;
private int cityToPort;
private int days;
private int stackTime;
private int landSideLeadTime;
private int shippingWindow;
private static final long serialVersionUID = 1L;
public ShippingMode getShippingMode() {
return shippingMode;
}
public void setShippingMode(ShippingMode shippingMode) {
this.shippingMode = shippingMode;
}
public PlaceOfLoading getPlaceOfLoading() {
return placeOfLoading;
}
public void setPlaceOfLoading(PlaceOfLoading placeOfLoading) {
this.placeOfLoading = placeOfLoading;
}
public PlaceOfDischarge getPlaceOfDischarge() {
return placeOfDischarge;
}
public void setPlaceOfDischarge(PlaceOfDischarge placeOfDischarge) {
this.placeOfDischarge = placeOfDischarge;
}
public int getDays() {
return days;
}
public void setDays(int days) {
this.days = days;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (obj == this) {
return true;
}
if (obj.getClass() != getClass()) {
return false;
}
LeadTime rhs = (LeadTime) obj;
return new EqualsBuilder().append(placeOfLoading, rhs.getPlaceOfLoading()).append(placeOfDischarge, rhs.getPlaceOfDischarge())
.append(shippingMode, rhs.getShippingMode()).append(city, rhs.getCity()).isEquals();
}
@Override
public int hashCode() {
return new HashCodeBuilder().append(placeOfLoading).append(placeOfDischarge).append(shippingMode).toHashCode();
}
public int getStackTime() {
return stackTime;
}
public void setStackTime(int stackTime) {
this.stackTime = stackTime;
}
public int getLandSideLeadTime() {
return landSideLeadTime;
}
public void setLandSideLeadTime(int landSideLeadTime) {
this.landSideLeadTime = landSideLeadTime;
}
public int getShippingWindow() {
return shippingWindow;
}
public void setShippingWindow(int shippingWindow) {
this.shippingWindow = shippingWindow;
}
public City getCity() {
return city;
}
public void setCity(City city) {
this.city = city;
}
public int getCityToPort() {
return cityToPort;
}
public void setCityToPort(int cityToPort) {
this.cityToPort = cityToPort;
}
}