001package org.biopax.paxtools.util; 002 003import java.util.Set; 004 005 006/** 007 * A FilterSet that filters based on the class. For example, it is useful for creating a Set of Proteins from a 008 * Set of BioPAXElements. 009 * @param <E> Superset's type e.g. BioPAXElement 010 * @param <F> Subset's type e.g. Protein. F must extend E 011 */ 012public class ClassFilterSet<E, F extends E> extends AbstractFilterSet<E, F> 013{ 014// ------------------------------ FIELDS ------------------------------ 015protected Class<F> filterClass; 016 017 // --------------------------- CONSTRUCTORS --------------------------- 018 019 public ClassFilterSet(Set<? extends E> baseSet,Class<F> filterClass) 020 { 021 super(baseSet); 022 this.filterClass = filterClass; 023 024 } 025 026 /** 027 * This filter method implementation filters based on isInstance function. 028 * @param value Object to be tested 029 * @return true if value is instance of F. 030 */ 031 @Override public boolean filter(E value) 032 { 033 return filterClass.isInstance(value); 034 } 035 036}