FECRequestDealLinkForDealSpecification.java

package com.tradecloud.repository.treasury;

import java.util.List;
import com.tradecloud.domain.model.FECRequestDealLink;
import com.tradecloud.domain.model.RequestSpecification;
import com.tradecloud.domain.model.deal.Deal;
import com.tradecloud.repository.FECRequestDealLinkRepository;

/**
 * What does this class do??? Why we need him?
 * 
 */
/**
 * @deprecated This class design means that entities have a reference to their
 *             Repository and needs to be refactored
 */
public class FECRequestDealLinkForDealSpecification implements RequestSpecification<Deal> {

    private Deal deal;
    private FECRequestDealLinkRepository fecRequestDealLinkRepository;

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

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

    public List<FECRequestDealLink> findAllSatisfiedBy() {
        return fecRequestDealLinkRepository.findAllByDeal(deal);
    }

    public void setFecRequestDealLinkRepository(FECRequestDealLinkRepository fecRequestDealLinkRepository) {
        this.fecRequestDealLinkRepository = fecRequestDealLinkRepository;
    }

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

    public FECRequestDealLinkForDealSpecification() {
    }
}