/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package uk.ac.ebi.ep.base.common; import java.util.Collection; import org.apache.commons.collections.Predicate; import uk.ac.ebi.ep.data.domain.UniprotEntry; import uk.ac.ebi.ep.data.search.model.Compound; import uk.ac.ebi.ep.data.search.model.Disease; import uk.ac.ebi.ep.data.search.model.EnzymeAccession; /** * * @author joseph */ public class DefaultPredicate implements Predicate{ /** * Collection of unique IDs, which will act as a filter. */ private final Collection<String> defaultFilter; public DefaultPredicate(Collection<String> defaultFilter) { this.defaultFilter = defaultFilter; } @Override public boolean evaluate(Object obj) { if (defaultFilter == null || defaultFilter.isEmpty()){ return true; } boolean eval = false; if (obj instanceof UniprotEntry){ UniprotEntry es = (UniprotEntry) obj; for (EnzymeAccession ea : es.getRelatedspecies()){ String sciName = ea.getSpecies().getScientificname(); if (defaultFilter.contains(sciName)){ eval = true; break; } for(Disease disease : ea.getDiseases()){ if (defaultFilter.contains(disease.getName() )){ eval = true; break; } } for(Compound compounds : ea.getCompounds()){ if (defaultFilter.contains(compounds.getName())){ eval = true; break; } } } } return eval; } }