FECDealLinkForDealSpecification.java

package com.tradecloud.repository.treasury;

import java.util.List;
import com.tradecloud.domain.model.FECDealLink;
import com.tradecloud.domain.model.FECSpecification;
import com.tradecloud.domain.model.deal.Deal;
import com.tradecloud.repository.FECDealLinkRepository;

/**
 * @deprecated This class design means that entities have a reference to their
 *             Repository and needs to be refactored
 */
public class FECDealLinkForDealSpecification implements FECSpecification<Deal> {

    private Deal deal;
    private FECDealLinkRepository fecDealLinkRepository;

    public FECDealLinkForDealSpecification(Deal deal) {
        this.deal = deal;
    }

    public boolean isSatisfiedBy(FECDealLink link) {
        return link.getDeal().getId() == deal.getId();
    }

    public List<FECDealLink> findAllSatisfiedBy() {
        return fecDealLinkRepository.findAllByDeal(deal);
    }

    public void setFecDealLinkRepository(FECDealLinkRepository fecDealLinkRepository) {
        this.fecDealLinkRepository = fecDealLinkRepository;
    }

    public void setMatching(Deal deal) {
        this.deal = deal;
    }

    public FECDealLinkForDealSpecification() {
    }
}