CostGroupValue.java

package com.tradecloud.domain.costing.clean;

import com.tradecloud.common.base.HibernateUtils;
import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.costing.CostGroup;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;

import javax.persistence.*;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import java.math.BigDecimal;

@Entity
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
public class CostGroupValue extends PersistenceBase implements Comparable<CostGroupValue> {

    private static final long serialVersionUID = 1L;

    @Enumerated(EnumType.STRING)
    private CostGroup costGroup;
    private BigDecimal totalCost = new BigDecimal(0.0);

    public CostGroup getCostGroup() {
        return costGroup;
    }

    public void setCostGroup(CostGroup costGroup) {
        this.costGroup = costGroup;
    }

    public BigDecimal getTotalCost() {
        return totalCost;
    }

    public void setTotalCost(BigDecimal totalCost) {
        this.totalCost = totalCost;
    }

    @Override
    public int hashCode() {
        return new HashCodeBuilder()
                .append(costGroup)
                .append(totalCost)
                .hashCode();
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (!HibernateUtils.proxyClassEquals(this, obj)) {
            return false;
        }
        CostGroupValue other = (CostGroupValue) obj;
        return new EqualsBuilder()
                .append(costGroup, other.getCostGroup())
                .append(totalCost, other.getTotalCost())
                .isEquals();
    }

    @Override
    public int compareTo(CostGroupValue costGroupValue) {
        // TODO Auto-generated method stub
        return this.costGroup.toString().compareTo(costGroupValue.getCostGroup().toString());
    }

}