RateLookupPriorityConfig.java
package com.tradecloud.domain.rate;
import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.costing.CostLineTemplate;
import org.hibernate.annotations.ForeignKey;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
@Entity
@Table(name = "ratelookuppriorityconfig")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "RateLookupPriorityConfig")
public class RateLookupPriorityConfig extends PersistenceBase implements Comparable<RateLookupPriorityConfig> {
@NotNull
@ManyToOne(optional = false)
@ForeignKey(name = "fk_costlinetemplate")
private CostLineTemplate costLineTemplate;
@NotNull
@Enumerated(EnumType.STRING)
private RateLookupPriorityType rateLookupPriorityType;
@NotNull
private int priority; //0 highest priority, 1 second highest etc
public RateLookupPriorityConfig(CostLineTemplate costLineTemplate,
int priority,
RateLookupPriorityType rateLookupPriorityType) {
this.costLineTemplate = costLineTemplate;
this.priority = priority;
this.rateLookupPriorityType = rateLookupPriorityType;
setId(new Long(priority));
}
public RateLookupPriorityConfig() {
}
public CostLineTemplate getCostLineTemplate() {
return costLineTemplate;
}
public int getPriority() {
return priority;
}
public void setCostLineTemplate(CostLineTemplate costLineTemplate) {
this.costLineTemplate = costLineTemplate;
}
public void setPriority(int priority) {
this.priority = priority;
}
public RateLookupPriorityType getRateLookupPriorityType() {
return rateLookupPriorityType;
}
public void setRateLookupPriorityType(RateLookupPriorityType rateLookupPriorityType) {
this.rateLookupPriorityType = rateLookupPriorityType;
}
@Override
public int compareTo(RateLookupPriorityConfig o) {
if (priority == o.getPriority())
return 0;
if (priority > o.getPriority())
return 1;
return -1;
}
@Override
public int hashCode() {
int result = super.hashCode();
result = 31 * result + (costLineTemplate != null ? costLineTemplate.hashCode() : 0);
result = 31 * result + (rateLookupPriorityType != null ? rateLookupPriorityType.hashCode() : 0);
result = 31 * result + priority;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null)
return false;
if (!(obj instanceof RateLookupPriorityConfig)) {
return false;
}
RateLookupPriorityConfig other = (RateLookupPriorityConfig) obj;
if (other.getCostLineTemplate().equals(costLineTemplate) && other.getPriority() == priority &&
other.getRateLookupPriorityType() == rateLookupPriorityType)
return true;
return false;
}
@Override
public String toString() {
return "RateLookupPriorityConfig: costLineCode '" + costLineTemplate.getCode() + "', " +
"type '" + rateLookupPriorityType.toString() + "', " + " priority '" + priority + "'";
}
}