package nl.nikhef.tools;

/**
 * Filter interface is for matching elements to the filter.
 * @author vincentb
 *
 * @param <T>
 */
public interface Filter<T extends Object> {

	/**
	 * Each object is provided to this class.
	 * 
	 * 
	 * @param other
	 * 
	 * 
	 * @return		Whether or not the object will be matched.
	 */
	public boolean match(T other);
	
	
	/**
	 * First elements are matched to the provided class.
	 */
	public Class<T> getFilterClass();
		
}
