SABSSlidingScale.java
package com.tradecloud.domain.sabs;
import com.tradecloud.domain.common.Currency;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.log4j.Logger;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlID;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.Date;
/**
* SABS Sliding Scale.
*/
@Entity
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlRootElement(name = "SabsSlidingScale")
@Table(name = "sabsslidingscale") //, uniqueConstraints = { @UniqueConstraint(columnNames =
//{ "effectiveDate" , "sabsSlidingScaleDescription" }) })
@NamedQueries({
@NamedQuery(name = "findSABSSlidingScaleById",
query = "from SABSSlidingScale sabsslidingscale left join fetch sabsslidingscale.sabsSlidingScaleIncrement " +
" left join fetch sabsslidingscale.sabsSlidingScaleUnitValue left join fetch sabsslidingscale.events " +
"where sabsslidingscale.id=:id")})
public class SABSSlidingScale extends AbstractSABSSlidingScale implements Comparable<SABSSlidingScale> {
public SABSSlidingScale() {
}
public SABSSlidingScale(SABSSlidingScaleDescription description) {
super(description);
}
public SABSSlidingScale(SABSSlidingScaleDescription description, Date effectiveDate) {
super(description, effectiveDate);
}
public SABSSlidingScale(SABSSlidingScaleDescription description, Date effectiveDate, Currency currency) {
super(description, effectiveDate, currency);
}
private static final long serialVersionUID = 1L;
/**
* TODO - just using values from the parent for now.
*/
@Override
public int compareTo(SABSSlidingScale sABSSlidingScale) {
if (getSabsSlidingScaleDescription() != null) {
if (getSabsSlidingScaleDescription().compareTo(sABSSlidingScale.getSabsSlidingScaleDescription()) != 0) {
return getSabsSlidingScaleDescription().compareTo(sABSSlidingScale.getSabsSlidingScaleDescription());
}
}
if (getEffectiveDate() != null) {
if (getEffectiveDate().compareTo(sABSSlidingScale.getEffectiveDate()) != 0) {
return getEffectiveDate().compareTo(sABSSlidingScale.getEffectiveDate());
}
}
if (getCurrency() != null) {
if (getCurrency().compareTo(sABSSlidingScale.getCurrency()) != 0) {
return getCurrency().compareTo(sABSSlidingScale.getCurrency());
}
}
return 0;
}
private static transient Logger log = Logger.getLogger(SABSSlidingScale.class);
@Override
public String toString() {
return new ToStringBuilder(super.toString()).toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof SABSSlidingScale)) {
return false;
}
SABSSlidingScale other = (SABSSlidingScale) obj;
return new EqualsBuilder().appendSuper(super.equals(obj)).isEquals();
}
@Override
public int hashCode() {
return new HashCodeBuilder().appendSuper(super.hashCode()).toHashCode();
}
@XmlID
public String getIdStr() {
return String.valueOf(super.getId());
}
}