ConfirmingFeeRateSearch.java

package com.tradecloud.dto.rate;

import com.tradecloud.domain.model.organisationalunit.OrganisationalUnit;
import com.tradecloud.domain.model.payment.PaymentTerm;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

/**
 * Created by ds on 2017/03/15.
 */
@Component
@Scope("view")
public class ConfirmingFeeRateSearch extends RateSearch {

    private static final long serialVersionUID = 1L;

    private OrganisationalUnit organisationalUnit;
    private PaymentTerm paymentTerm;

    public ConfirmingFeeRateSearch() {
        super();
    }

    public ConfirmingFeeRateSearch(ConfirmingFeeRateSearch confirmingFeeRateSearch) {
        super(confirmingFeeRateSearch);
        this.organisationalUnit = confirmingFeeRateSearch.organisationalUnit;
        this.paymentTerm = confirmingFeeRateSearch.paymentTerm;
    }

    public PaymentTerm getPaymentTerm() {
        return paymentTerm;
    }

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

    @Override
    public String toString() {
        return "Cost line '" + costLine + "'. " + "Business unit '" + (organisationalUnit != null ? organisationalUnit.getName() : null) + "'. "
                + "Division '" + "'. " + costingType + "'.";
    }

    @Override
    public void reset() {
        super.reset();
        organisationalUnit = null;
        paymentTerm = null;
    }

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