/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package uk.ac.ebi.ep.base.common; import java.util.Collection; import java.util.Set; import java.util.stream.Collectors; import org.apache.commons.collections.Predicate; import uk.ac.ebi.ep.data.domain.UniprotEntry; import uk.ac.ebi.ep.data.search.model.EcNumber; /** * * @author joseph */ public class EcNumberPredicate implements Predicate { private final Collection<Integer> ecNumberFilters; public EcNumberPredicate(Collection<Integer> ecNumberFilter) { this.ecNumberFilters = ecNumberFilter; } @Override public boolean evaluate(Object obj) { if (ecNumberFilters == null || ecNumberFilters.isEmpty()) { return true; } Set<Integer> ecNumberFilter = ecNumberFilters.stream().distinct().collect(Collectors.toSet()); boolean eval = false; if (obj instanceof UniprotEntry) { UniprotEntry entry = (UniprotEntry) obj; for (EcNumber ec : entry.getEnzymePortalEcNumbersSet()) { Integer family = ec.getEc(); if (ecNumberFilter.contains(family)) { eval = true; break; } } } return eval; } }