package com.compomics.util.experiment.filtering;
/**
* Generic interface for a filter.
*
* @author Marc Vaudel
*/
public interface Filter {
/**
* Returns the name of the filter.
*
* @return the name of the filter
*/
public String getName();
/**
* Returns a description for the filter.
*
* @return a description for the filter
*/
public String getDescription();
/**
* Returns a description of the condition to match for the filter to
* validate.
*
* @return the condition to match for the filter to validate
*/
public String getCondition();
/**
* Returns a filter report depending on whether the condition was met.
*
* @param filterPassed boolean indicating whether the filter was passed
*
* @return the report of the filter
*/
public String getReport(boolean filterPassed);
/**
* Clones the filter.
*
* @return a clone of the filter
*/
public Filter clone();
/**
* Indicates whether another filter is the same as the current filter.
*
* @param anotherFilter another filter
*
* @return a boolean indicating whether another filter is the same as the
* current filter
*/
public boolean isSameAs(Filter anotherFilter);
}