FECDealLinkDTO.java
package com.tradecloud.dto.treasury;
import com.tradecloud.domain.base.utils.MathUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* Created by ds on 10/17/14.
*/
public class FECDealLinkDTO {
private DealDTO deal;
private FECDTO fec;
private MoneyDTO rate=new MoneyDTO();
private MoneyDTO amount=new MoneyDTO();
private MoneyDTO fecCashFlow=new MoneyDTO();
private MoneyDTO dealCashFlow=new MoneyDTO();
private MoneyDTO amountAbleToLink =new MoneyDTO();
private Boolean partialLink;
private Date creationDate;
private PercentageDTO percentage;
private List<FECDealLinkDTO> allByDeal=new ArrayList<FECDealLinkDTO>();
private BigDecimal formattedAmount;
public DealDTO getDeal() {
return deal;
}
public void setDeal(DealDTO deal) {
this.deal = deal;
}
public FECDTO getFec() {
return fec;
}
public void setFec(FECDTO fec) {
this.fec = fec;
}
public MoneyDTO getRate() {
return rate;
}
public void setRate(MoneyDTO rate) {
this.rate = rate;
}
public MoneyDTO getAmount() {
return amount;
}
public void setAmount(MoneyDTO amount) {
this.amount = amount;
}
public Date getCreationDate() {
return creationDate;
}
public void setCreationDate(Date creationDate) {
this.creationDate = creationDate;
}
public PercentageDTO getPercentage() {
return percentage;
}
public void setPercentage(PercentageDTO percentage) {
this.percentage = percentage;
}
public List<FECDealLinkDTO> getAllByDeal() {
return allByDeal;
}
public void setAllByDeal(List<FECDealLinkDTO> allByDeal) {
this.allByDeal = allByDeal;
}
public MoneyDTO getFecCashFlow() {
return fecCashFlow;
}
public MoneyDTO getDealCashFlow() {
return dealCashFlow;
}
public void setDealCashFlow(MoneyDTO dealCashFlow) {
this.dealCashFlow = dealCashFlow;
}
public MoneyDTO getAmountAbleToLink() {
return amountAbleToLink;
}
public void setAmountAbleToLink(MoneyDTO amountToLink) {
this.amountAbleToLink = amountToLink;
}
public Boolean getPartialLink() {
return partialLink;
}
public void setPartialLink(Boolean partialLink) {
this.partialLink = partialLink;
}
public void setFecCashFlow(MoneyDTO fecCashFlow) {
this.fecCashFlow = fecCashFlow;
}
public FECDealLinkDTO getLink(Long id){
for (FECDealLinkDTO fecDealLinkDTO : allByDeal) {
if(fecDealLinkDTO.getFec().getId().equals(id)){
return fecDealLinkDTO;
}
}
return null;
}
public BigDecimal getFormattedAmount() {
return amount.getValue().add(BigDecimal.ZERO);
}
public void setFormattedAmount(BigDecimal formattedAmount) {
this.formattedAmount = formattedAmount;
if (formattedAmount != null && !MathUtils.areNumbersCloselyEqual(amount.getValue(), formattedAmount, 2)) {
amount.setValue(formattedAmount);
}
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof FECDealLinkDTO)) return false;
FECDealLinkDTO that = (FECDealLinkDTO) o;
if (amount != null ? !amount.equals(that.amount) : that.amount != null) return false;
if (creationDate != null ? !creationDate.equals(that.creationDate) : that.creationDate != null) return false;
if (deal != null ? !deal.equals(that.deal) : that.deal != null) return false;
if (fec != null ? !fec.equals(that.fec) : that.fec != null) return false;
if (percentage != null ? !percentage.equals(that.percentage) : that.percentage != null) return false;
if (rate != null ? !rate.equals(that.rate) : that.rate != null) return false;
return true;
}
@Override
public int hashCode() {
int result = deal != null ? deal.hashCode() : 0;
result = 31 * result + (fec != null ? fec.hashCode() : 0);
result = 31 * result + (rate != null ? rate.hashCode() : 0);
result = 31 * result + (amount != null ? amount.hashCode() : 0);
result = 31 * result + (creationDate != null ? creationDate.hashCode() : 0);
result = 31 * result + (percentage != null ? percentage.hashCode() : 0);
return result;
}
@Override
public String toString() {
return "FECDealLinkDTO{" +
"deal=" + deal +
", fec=" + fec +
", rate=" + rate +
", amount=" + amount +
", creationDate=" + creationDate +
", percentage=" + percentage +
'}';
}
}