AlcDefaultOverridesFromCLCEntry.java

package com.tradecloud.domain.costing;

import com.tradecloud.common.base.PersistenceBase;

import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlAttribute;

@Entity
public class AlcDefaultOverridesFromCLCEntry extends PersistenceBase implements Comparable<AlcDefaultOverridesFromCLCEntry> {

    private static final long serialVersionUID = 1L;

    @XmlAttribute
    @Enumerated(EnumType.STRING)
    @NotNull
    private CostGroup costGroup;

    @NotNull
    private boolean inUse;

    public CostGroup getCostGroup() {
        return costGroup;
    }

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

    public boolean isInUse() {
        return inUse;
    }

    public void setInUse(boolean inUse) {
        this.inUse = inUse;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;

        AlcDefaultOverridesFromCLCEntry that = (AlcDefaultOverridesFromCLCEntry) o;

        if (costGroup != that.costGroup) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = super.hashCode();
        result = 31 * result + costGroup.hashCode();
        return result;
    }

    @Override
    public int compareTo(AlcDefaultOverridesFromCLCEntry o) {
        return this.getCostGroup().value().compareTo(o.getCostGroup().value());
    }
}