AgentRate.java
package com.tradecloud.domain.rate;
import com.tradecloud.common.base.HibernateUtils;
import com.tradecloud.domain.agent.Agent;
import com.tradecloud.domain.supplier.Supplier;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
@Entity
@Table(name = "agentrate")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "AgentRate")
public class AgentRate extends Rate {
@ManyToOne(fetch = FetchType.EAGER)
private Agent agent;
@ManyToOne
private Supplier supplier;
public Agent getAgent() {
return agent;
}
public void setAgent(Agent agent) {
this.agent = agent;
}
public Supplier getSupplier() {
return supplier;
}
public void setSupplier(Supplier supplier) {
this.supplier = supplier;
}
public void init() {
this.rateUnit = RateUnit.PERCENTAGE;
}
@Override
public String toString() {
String toReturn = super.toString();
String agentStr = "Agent: '" + agent + "', ";
String supplierStr = "Supplier: '" + (supplier != null ? supplier.getName() : "") + "', ";
String orgUnitStr = "Organisational Unit: '" +
(getOrganisationalUnit() != null ? getOrganisationalUnit().getName() : "") + "', ";
toReturn += agentStr + supplierStr + orgUnitStr;
return toReturn;
}
@Override
public int hashCode() {
return new HashCodeBuilder()
.appendSuper(super.hashCode())
.append(agent)
.append(supplier)
.append(getOrganisationalUnit())
.toHashCode();
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!HibernateUtils.proxyClassEquals(this, obj)) {
return false;
}
AgentRate other = (AgentRate) obj;
return new EqualsBuilder()
.appendSuper(super.equals(other))
.append(agent, other.getAgent())
.append(supplier, other.getSupplier())
.append(getOrganisationalUnit(), other.getOrganisationalUnit())
.isEquals();
}
}