FinanceRateSearch.java

package com.tradecloud.dto.rate;

import com.tradecloud.domain.model.payment.PaymentMethod;
import com.tradecloud.domain.model.payment.PaymentTerm;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import java.math.BigDecimal;

/**
 * Created by ds on 2017/01/09.
 */
@Component
@Scope("view")
public class FinanceRateSearch extends RateSearch {

    private PaymentMethod paymentMethod;
    private PaymentTerm paymentTerm;

    private BigDecimal minimum;
    private BigDecimal maximum;

    public FinanceRateSearch() {

    }

    public FinanceRateSearch(FinanceRateSearch financeRateSearch) {
        super(financeRateSearch);
        this.paymentMethod = financeRateSearch.getPaymentMethod();
        this.paymentTerm = financeRateSearch.getPaymentTerm();
        this.minimum = financeRateSearch.getMinimum();
        this.maximum = financeRateSearch.getMaximum();
        this.organisationalUnit=financeRateSearch.getOrganisationalUnit();
    }

    public void reset() {
        super.reset();
        this.paymentMethod = null;
        this.paymentTerm = null;
        this.minimum = null;
        this.maximum = null;
        this.organisationalUnit=null;
    }

    public PaymentMethod getPaymentMethod() {
        return paymentMethod;
    }

    public void setPaymentMethod(PaymentMethod paymentMethod) {
        this.paymentMethod = paymentMethod;
    }

    public PaymentTerm getPaymentTerm() {
        return paymentTerm;
    }

    public void setPaymentTerm(PaymentTerm paymentTerm) {
        this.paymentTerm = paymentTerm;
    }

    public BigDecimal getMinimum() {
        return minimum;
    }

    public void setMinimum(BigDecimal minimum) {
        this.minimum = minimum;
    }

    public BigDecimal getMaximum() {
        return maximum;
    }

    public void setMaximum(BigDecimal maximum) {
        this.maximum = maximum;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;

        FinanceRateSearch that = (FinanceRateSearch) o;

        return new EqualsBuilder().append(paymentMethod, that.getPaymentMethod()).append(paymentTerm, that.getPaymentTerm()).
                append(minimum, that.getMinimum()).append(maximum, that.getMaximum())
                .append(getItemCategory(),that.getItemCategory()).isEquals();
    }

    @Override
    public int hashCode() {
        return generate(getCostingType(),
                getCostLine(), getCurrency(), getEffectiveDateLower(), getEffectiveDateUpper(), getOrganisationalUnit(), getPriorityConfig(),
                getMinimum(), getMaximum(), getPaymentMethod(), getPaymentTerm(), getSearchMetaParams(),getRateUnit(),getItemCategory());

    }

}