DemurrageTransaction.java
package com.tradecloud.domain.demurrage;
import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.container.ShipmentContainer;
import com.tradecloud.domain.shipment.SeaShipment;
import com.tradecloud.domain.state.BaseStateful;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
*
*/
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class DemurrageTransaction extends PersistenceBase implements
BaseStateful<DemurrageTransactionState> {
@NotNull
@OneToOne
private ShipmentContainer shipmentContainer;
@OneToOne(fetch = FetchType.LAZY)
private SeaShipment seaShipment;
private String transactionNumber;
private String rejectReason;
@Temporal(TemporalType.DATE)
private Date signedOffDate;
@NotNull
@Enumerated(EnumType.STRING)
private DemurrageTransactionState state;
private boolean active;
public ShipmentContainer getShipmentContainer() {
return shipmentContainer;
}
public void setShipmentContainer(ShipmentContainer shipmentContainer) {
this.shipmentContainer = shipmentContainer;
}
@Override
public DemurrageTransactionState getState() {
return state;
}
@Override
public void setState(DemurrageTransactionState state) {
this.state = state;
}
public String getTransactionNumber() {
return transactionNumber;
}
public void setTransactionNumber(String transactionNumber) {
this.transactionNumber = transactionNumber;
}
public Date getSignedOffDate() {
return signedOffDate;
}
public void setSignedOffDate(Date signedOffDate) {
this.signedOffDate = signedOffDate;
}
public boolean isActive() {
return active;
}
public void setActive(boolean active) {
this.active = active;
}
public String getRejectReason() {
return rejectReason;
}
public void setRejectReason(String rejectReason) {
this.rejectReason = rejectReason;
}
public SeaShipment getSeaShipment() {
return seaShipment;
}
public void setSeaShipment(SeaShipment seaShipment) {
this.seaShipment = seaShipment;
}
@Override
public int hashCode() {
return new HashCodeBuilder()
.append(shipmentContainer)
.append(getState())
.toHashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final DemurrageTransaction other = (DemurrageTransaction) obj;
return new EqualsBuilder()
.append(shipmentContainer, other.getShipmentContainer())
.append(getState(), other.getState())
.isEquals();
}
public abstract String getCommentsAsString();
}