StandardExchangeRateSearch.java

package com.tradecloud.dto.rate;

import com.tradecloud.domain.base.utils.DateRange;
import com.tradecloud.domain.common.Currency;
import com.tradecloud.domain.dto.base.SearchBase;
import com.tradecloud.domain.model.organisationalunit.OrganisationalUnit;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @author jon
 */
@Component
@Scope("view")
public class StandardExchangeRateSearch extends SearchBase {

    private Currency localCurrency;

    private Currency foreignCurrency;

    private OrganisationalUnit organisationalUnit;

    private Date effectiveDate;

    private Date createdDate;

    private DateRange effectiveDateRange=new DateRange();

    private DateRange createdDateRange=new DateRange();

    public Currency getLocalCurrency() {
        return localCurrency;
    }

    public void setLocalCurrency(Currency localCurrency) {
        this.localCurrency = localCurrency;
    }

    public Currency getForeignCurrency() {
        return foreignCurrency;
    }

    public void setForeignCurrency(Currency foreignCurrency) {
        this.foreignCurrency = foreignCurrency;
    }

    public OrganisationalUnit getOrganisationalUnit() {
        return organisationalUnit;
    }

    public void setOrganisationalUnit(OrganisationalUnit organisationalUnit) {
        this.organisationalUnit = organisationalUnit;
    }

    public Date getEffectiveDate() {
        return effectiveDate;
    }

    public void setEffectiveDate(Date effectiveDate) {
        this.effectiveDate = effectiveDate;
    }

    public DateRange getEffectiveDateRange() {
        return effectiveDateRange;
    }

    public void setEffectiveDateRange(DateRange effectiveDateRange) {
        this.effectiveDateRange = effectiveDateRange;
    }

    public DateRange getCreatedDateRange() {
        return createdDateRange;
    }

    public void setCreatedDateRange(DateRange createdDateRange) {
        this.createdDateRange = createdDateRange;
    }

    public Date getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(Date createdDate) {
        this.createdDate = createdDate;
    }

    @Override
    public String getTableName() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;

        if (o == null || getClass() != o.getClass()) return false;

        StandardExchangeRateSearch that = (StandardExchangeRateSearch) o;

        return new EqualsBuilder()
                .append(getLocalCurrency(), that.getLocalCurrency())
                .append(getForeignCurrency(), that.getForeignCurrency())
                .append(getOrganisationalUnit(), that.getOrganisationalUnit())
                .append(getEffectiveDate(), that.getEffectiveDate())
                .append(getCreatedDate(), that.getCreatedDate())
                .isEquals();
    }

    @Override
    public int hashCode() {
        return new HashCodeBuilder(17, 37)
                .append(getLocalCurrency())
                .append(getForeignCurrency())
                .append(getOrganisationalUnit())
                .append(getEffectiveDate())
                .append(getCreatedDate())
                .toHashCode();
    }
}