package jalview.datamodel.features; import jalview.datamodel.SequenceFeature; import jalview.util.matcher.MatcherI; /** * An interface for an object that can apply a match condition to a * SequenceFeature object * * @author gmcarstairs */ public interface FeatureMatcherI { /** * Answers true if the value provided for this matcher's key passes this * matcher's match condition * * @param feature * @return */ boolean matches(SequenceFeature feature); /** * Answers the attribute key this matcher operates on (or null if match is by * Label or Score) * * @return */ String[] getAttribute(); /** * Answers true if match is against feature label (description), else false * * @return */ boolean isByLabel(); /** * Answers true if match is against feature score, else false * * @return */ boolean isByScore(); /** * Answers true if match is against a feature attribute (text or range) * * @return */ boolean isByAttribute(); /** * Answers the match condition that is applied * * @return */ MatcherI getMatcher(); /** * Answers a string representation of this object suitable for use when * persisting data, in a format that can be reliably read back. Any changes to * the format should be backwards compatible. */ String toStableString(); }