PrimeInterestRate.java
package com.tradecloud.domain;
import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.base.utils.MathUtils;
import com.tradecloud.domain.model.organisationalunit.OrganisationalUnit;
import com.tradecloud.domain.model.organisationalunit.tradefinance.TradeFinanceRate;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlTransient;
import java.math.BigDecimal;
import java.util.Date;
/**
* Created by ds on 2017/06/07.
*/
@Entity
@Table(name = "primeinterestrate", uniqueConstraints = {
@UniqueConstraint(columnNames = {"effectiveDate", "organisationalUnit_id"})})
public class PrimeInterestRate extends PersistenceBase implements TradeFinanceRate {
@XmlTransient
@ManyToOne(fetch = FetchType.LAZY)
@org.hibernate.annotations.ForeignKey(name = "fk_organisationalUnit")
@NotNull(message = "Parent organisational unit should not be null")
private OrganisationalUnit organisationalUnit;
private BigDecimal interestRate;
@Temporal(TemporalType.TIMESTAMP)
@Column(unique = true, name = "effectiveDate")
private Date effectiveDate;
public PrimeInterestRate() {
}
public PrimeInterestRate(BigDecimal interestRate, Date effectiveDate) {
this.interestRate = interestRate;
this.effectiveDate = effectiveDate;
}
public BigDecimal getInterestRate() {
return interestRate != null ? interestRate : BigDecimal.ZERO.setScale(MathUtils.SCALE_DISPLAY,
MathUtils.ROUNDING_MODE);
}
public void setInterestRate(BigDecimal interestRate) {
this.interestRate = interestRate;
}
public Date getEffectiveDate() {
return effectiveDate;
}
@Override
public BigDecimal getRate() {
return interestRate;
}
public void setEffectiveDate(Date effectiveDate) {
this.effectiveDate = effectiveDate;
}
public OrganisationalUnit getOrganisationalUnit() {
return organisationalUnit;
}
public void setOrganisationalUnit(OrganisationalUnit organisationalUnit) {
this.organisationalUnit = organisationalUnit;
}
@Override
public void setRate(BigDecimal rate) {
this.interestRate = rate;
}
@Override
public String toString() {
return "PrimeInterestRate{" +
"organisationalUnit=" + organisationalUnit +
", interestRate=" + interestRate +
", effectiveDate=" + effectiveDate +
'}';
}
}