CostLineTemplateValue.java
package com.tradecloud.domain.costing.clean;
import com.tradecloud.domain.costing.CostLineTemplate;
import com.tradecloud.domain.model.Money;
import org.hibernate.annotations.ForeignKey;
import javax.persistence.Embeddable;
import javax.persistence.Embedded;
import javax.persistence.ManyToOne;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* This is a simple class to store a value for a costline.
*
* @author jon
*/
@Embeddable
public class CostLineTemplateValue implements Serializable, Comparable<CostLineTemplateValue> {
@NotNull
@ForeignKey(name = "fk_costlinetemplate")
@ManyToOne(optional = false)
private CostLineTemplate costLineTemplate;
// Can be null. For example, if a rate is not found
@Embedded
private Money amount;
public CostLineTemplate getCostLineTemplate() {
return costLineTemplate;
}
public void setCostLineTemplate(CostLineTemplate costLineTemplate) {
this.costLineTemplate = costLineTemplate;
}
public Money getAmount() {
return amount;
}
public void setAmount(Money amount) {
this.amount = amount;
}
@Override
public int compareTo(CostLineTemplateValue o) {
String orderOne = getCostLineTemplate().getCostGroup().getHumanValue() + "-" + getCostLineTemplate().getName();
String orderTwo = o.getCostLineTemplate().getCostGroup().getHumanValue() + o.getCostLineTemplate().getName();
return orderOne.compareTo(orderTwo);
}
public String getSortedName() {
return getCostLineTemplate().getCostGroup().getHumanValue() + "-" + getCostLineTemplate().getName();
}
}