LandShipment.java
package com.tradecloud.domain.shipment;
import com.tradecloud.common.base.HibernateUtils;
import com.tradecloud.domain.item.WeightUnitOfMeasure;
import com.tradecloud.domain.model.shipment.ShippingMode;
import com.tradecloud.domain.place.City;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.springframework.stereotype.Component;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import java.math.BigDecimal;
import java.util.Date;
/**
*
*/
@Entity
@DiscriminatorValue("LAND_SHIPMENT")
@Table(name = "landshipment")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "LandShipment")
@Component
public class LandShipment extends Shipment implements Comparable<LandShipment> {
private static final long serialVersionUID = 1L;
@XmlAttribute
private String roadConsignmentNote;
@XmlAttribute
private Date roadConsignmentNoteIssueDate;
@XmlAttribute
private String transporter;
@XmlAttribute
private String transporterReference;
@Transient
private String registration;
private BigDecimal chargeableWeight;
@ManyToOne(fetch = FetchType.EAGER)
private WeightUnitOfMeasure chargeableWeightUOM;
@XmlAttribute
@Enumerated(EnumType.STRING)
private ShippingMode shippingMode = ShippingMode.ROAD;
public LandShipment() {
super();
}
public LandShipment(String number, String reference) {
super(number, reference);
}
public LandShipment(String number, String reference, String roadConsignmentNote, Date roadConsignmentNoteIssueDate, String transporter,
String transporterReference, ShippingMode shippingMode) {
super(number, reference);
this.roadConsignmentNote = roadConsignmentNote;
this.roadConsignmentNoteIssueDate = roadConsignmentNoteIssueDate;
this.transporter = transporter;
this.transporterReference = transporterReference;
this.shippingMode = shippingMode;
}
public String getRoadConsignmentNote() {
return this.roadConsignmentNote;
}
public void setRoadConsignmentNote(String roadConsignmentNote) {
this.roadConsignmentNote = roadConsignmentNote;
}
public Date getRoadConsignmentNoteIssueDate() {
return this.roadConsignmentNoteIssueDate;
}
public void setRoadConsignmentNoteIssueDate(Date roadConsignmentNoteIssueDate) {
this.roadConsignmentNoteIssueDate = roadConsignmentNoteIssueDate;
}
public String getTransporter() {
return this.transporter;
}
public void setTransporter(String transporter) {
this.transporter = transporter;
}
public String getTransporterReference() {
return this.transporterReference;
}
public void setTransporterReference(String transporterReference) {
this.transporterReference = transporterReference;
}
@Override
public ShippingMode getShippingMode() {
return shippingMode;
}
@Override
public int hashCode() {
return new HashCodeBuilder().appendSuper(super.hashCode()).append(shippingMode).toHashCode();
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
// Do not use class.equals. This can return false for proxy objects
if (!HibernateUtils.proxyClassEquals(this, obj)) {
return false;
}
LandShipment other = (LandShipment) obj;
return new EqualsBuilder()
.appendSuper(super.equals(other))
.append(shippingMode, other.getShippingMode())
.isEquals();
}
@Override
public int compareTo(LandShipment other) {
return getNumber().compareTo(other.getNumber());
}
@Override
public Date getBillOfLadingDate() {
return null;
}
@Override
public City getBillPlaceOfIssue() {
return null;
}
@Override
public void setBillPlaceOfIssue(City billPlaceOfIssue) {
}
@Override
public BigDecimal getBillOfLadingSpotRate() {
return null;
}
@Override
public void setBillOfLadingSpotRate(BigDecimal billOfLadingSpotRate) {
}
public String getRegistration() {
return registration;
}
public void setRegistration(String registration) {
this.registration = registration;
}
@Override
public ShippingMode getMultiModalShippingMode() {
return getShippingInfo().getMultiModalShippingMode();
}
public WeightUnitOfMeasure getChargeableWeightUOM() {
return chargeableWeightUOM;
}
public void setChargeableWeightUOM(WeightUnitOfMeasure chargeableWeightUOM) {
this.chargeableWeightUOM = chargeableWeightUOM;
}
public BigDecimal getChargeableWeight() {
return chargeableWeight;
}
public void setChargeableWeight(BigDecimal chargeableWeight) {
this.chargeableWeight = chargeableWeight;
}
}