Forecast.java
package com.tradecloud.domain.model;
import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.model.organisationalunit.OrganisationalUnit;
import com.tradecloud.domain.treasury.TreasuryBank;
import com.tradecloud.domain.wrapper.TYMDDateXmlAdapter;
import org.joda.time.LocalDate;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.io.Serializable;
import java.util.Currency;
import java.util.Date;
@Entity
@Table(name = "forecast")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "Forecast")
public class Forecast extends PersistenceBase implements Serializable, ActualExposure {
@Temporal(TemporalType.TIMESTAMP)
@XmlJavaTypeAdapter(TYMDDateXmlAdapter.class)
private Date forecastDate;
// TODO @Basic(optional=false)
@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
@JoinColumn(name = "organisationalunit_id")
private OrganisationalUnit organisationalUnit;
// TODO
// private Supplier supplier;
// TODO @Basic(optional=false)
@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
@JoinColumn(name = "forexgroup_id")
private ForexGroup forexGroup;
@Embedded
private Money amount;
public OrganisationalUnit getDivision() {
return organisationalUnit;
}
public void setDivision(OrganisationalUnit organisationalUnit) {
this.organisationalUnit = organisationalUnit;
}
public OrganisationalUnit getOrganisationalUnit() {
return organisationalUnit;
}
public void setOrganisationalUnit(OrganisationalUnit organisationalUnit) {
this.organisationalUnit = organisationalUnit;
}
public Money getAmount() {
return amount;
}
public void setAmount(Money amount) {
this.amount = amount;
}
public Date getForecastDate() {
return forecastDate;
}
public void setForecastDate(Date forecastDate) {
this.forecastDate = forecastDate;
}
public ForexGroup getForexGroup() {
return forexGroup;
}
@Override
public Currency getCurrency() {
return amount.getCurrency();
}
@Override
public LocalDate getMaturityDate() {
return LocalDate.fromDateFields(forecastDate);
}
@Override
public TreasuryBank getBank() {
return null;
}
public void setForexGroup(ForexGroup forexGroup) {
this.forexGroup = forexGroup;
}
@Override
public String toString() {
return "Org unit '" + organisationalUnit + "'. Date '" + forecastDate + "'. Forex group '" + forexGroup + "'. Amount '" + amount + "'.";
}
}