PublicHolidayRule.java
package com.tradecloud.domain.configuration;
import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.model.NonBusinessDayRecalculationType;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.hibernate.annotations.ForeignKey;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.*;
@Entity
@Table(name = "publicholidayrule")
@NamedQueries({
@NamedQuery(name = "publicholidayrule.findAll", query = "SELECT phr FROM GlobalClientConfig gcc JOIN gcc.publicHolidayRules phr")})
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "PublicHolidayRule")
public class PublicHolidayRule extends PersistenceBase {
private static final long serialVersionUID = 1L;
/**
* The public holiday this rule relates to.
*/
@XmlElement(name = "PublicHoliday")
@OneToOne(cascade = CascadeType.ALL)
@ForeignKey(name = "fk_publicholiday")
@NotNull
private PublicHoliday publicHoliday;
/**
* Determines if a settlement date falls on the previous or next day before/after a bank holiday.
* Defaults to {@link NonBusinessDayRecalculationType#PREVIOUS}.
*/
@Enumerated(value = EnumType.STRING)
@XmlAttribute
@NotNull
private NonBusinessDayRecalculationType settlementRecalculationType;
public PublicHolidayRule() {
}
public PublicHolidayRule(PublicHoliday publicHoliday) {
this.publicHoliday = publicHoliday;
this.settlementRecalculationType = NonBusinessDayRecalculationType.PREVIOUS;
}
public PublicHolidayRule(PublicHoliday publicHoliday, NonBusinessDayRecalculationType settlementRecalculationType) {
this.publicHoliday = publicHoliday;
this.settlementRecalculationType = settlementRecalculationType;
}
public PublicHoliday getPublicHoliday() {
return publicHoliday;
}
public void setPublicHoliday(PublicHoliday publicHoliday) {
this.publicHoliday = publicHoliday;
}
public NonBusinessDayRecalculationType getSettlementRecalculationType() {
return settlementRecalculationType;
}
public void setSettlementRecalculationType(NonBusinessDayRecalculationType settlementRecalculationType) {
this.settlementRecalculationType = settlementRecalculationType;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (obj == this) {
return true;
}
if (obj.getClass() != getClass()) {
return false;
}
PublicHolidayRule rhs = (PublicHolidayRule) obj;
return new EqualsBuilder()
.append(publicHoliday, rhs.publicHoliday)
.append(settlementRecalculationType, rhs.settlementRecalculationType)
.isEquals();
}
@Override
public int hashCode() {
return new HashCodeBuilder().append(publicHoliday).append(settlementRecalculationType).hashCode();
}
@Override
public String toString() {
return new StringBuilder().append("publicHoliday=").append(publicHoliday).append(",settlementRecalculationType=")
.append(settlementRecalculationType).toString();
}
}