StandardExchangeRate.java
package com.tradecloud.domain.exchangerate;
import com.tradecloud.common.base.HibernateUtils;
import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.common.Currency;
import com.tradecloud.domain.model.organisationalunit.OrganisationalUnit;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
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;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author jon
*/
@Entity
@Table(name = "standardexchangerate")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "StandardExchangeRate")
public class StandardExchangeRate extends PersistenceBase {
@NotNull(message = "Local currency is required")
@ManyToOne
private Currency localCurrency;
@NotNull(message = "Foreign currency is required")
@ManyToOne
private Currency foreignCurrency;
@ManyToOne
private OrganisationalUnit organisationalUnit;
@NotNull(message = "Effective date is required")
@Temporal(javax.persistence.TemporalType.DATE)
private Date effectiveDate;
@NotNull(message = "Rate is required")
@Basic(optional = false)
private BigDecimal rate;
@Temporal(javax.persistence.TemporalType.DATE)
private Date deletedDate;
public Currency getLocalCurrency() {
return localCurrency;
}
public void setLocalCurrency(Currency localCurrency) {
this.localCurrency = localCurrency;
}
public Currency getForeignCurrency() {
return foreignCurrency;
}
public void setForeignCurrency(Currency foreignCurrency) {
this.foreignCurrency = foreignCurrency;
}
public OrganisationalUnit getOrganisationalUnit() {
return organisationalUnit;
}
public void setOrganisationalUnit(OrganisationalUnit organisationalUnit) {
this.organisationalUnit = organisationalUnit;
}
public Date getEffectiveDate() {
return effectiveDate;
}
public void setEffectiveDate(Date effectiveDate) {
this.effectiveDate = effectiveDate;
}
public BigDecimal getRate() {
return rate;
}
public void setRate(BigDecimal rate) {
this.rate = rate;
}
public Date getDeletedDate() {
return deletedDate;
}
public void setDeletedDate(Date deletedDate) {
this.deletedDate = deletedDate;
}
@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;
}
StandardExchangeRate other = (StandardExchangeRate) obj;
return new EqualsBuilder()
.append(rate, other.getRate())
.append(localCurrency, other.getLocalCurrency())
.append(foreignCurrency, other.getForeignCurrency())
.append(organisationalUnit, other.getOrganisationalUnit())
.append(effectiveDate, other.getEffectiveDate())
.append(getCreated(), other.getCreated())
.isEquals();
}
@Override
public int hashCode() {
return new HashCodeBuilder()
.append(rate)
.append(localCurrency)
.append(foreignCurrency)
.append(organisationalUnit)
.append(effectiveDate)
.append(getCreated())
.toHashCode();
}
public int upoadHashCode() {
return new HashCodeBuilder()
.append(rate)
.append(localCurrency)
.append(foreignCurrency)
.append(organisationalUnit)
.append(effectiveDate)
.toHashCode();
}
}