## org.biojava.bio.seq
Interface OptimizableFilter

All Superinterfaces:
  FeatureFilter, Serializable

All Known Implementing Classes:
  FeatureFilter.AnnotationContains, FeatureFilter.ByAncestor, FeatureFilter.ByAnnotation, FeatureFilter.ByAnnotationType, FeatureFilter.ByChild, FeatureFilter.ByClass, FeatureFilter.ByComponentName, FeatureFilter.ByDescendant, FeatureFilter.ByFeature, FeatureFilter.ByPairwiseScore, FeatureFilter.ByParent, FeatureFilter.BySequenceName, FeatureFilter.BySource, FeatureFilter.ByType, FeatureFilter.ContainedByLocation, FeatureFilter.FrameFilter, FeatureFilter.HasAnnotation, FeatureFilter.OnlyChildren, FeatureFilter.OnlyDescendants, FeatureFilter.OverlapsLocation, FeatureFilter.ShadowContainedByLocation, FeatureFilter.ShadowOverlapsLocation, FeatureFilter.StrandFilter

    public interface OptimizableFilter

extends FeatureFilter

The interface for filters that can potentialy optimize themselves, and compare themselves with other filters.

Since:
  1.2
Author:
  Matthew Pocock

Nested Class Summary

Nested classes/interfaces inherited from interface org.biojava.bio.seq.FeatureFilter

`FeatureFilter.And, FeatureFilter.AnnotationContains, FeatureFilter.ByAncestor, FeatureFilter.ByAnnotation, FeatureFilter.ByAnnotationType, FeatureFilter.ByChild, FeatureFilter.ByClass, FeatureFilter.ByComponentName, FeatureFilter.ByDescendant, FeatureFilter.ByFeature, FeatureFilter.ByPairwiseScore, FeatureFilter.ByParent, FeatureFilter.BySequenceName, FeatureFilter.BySource, FeatureFilter.ByType, FeatureFilter.ContainedByLocation, FeatureFilter.FrameFilter, FeatureFilter.HasAnnotation, FeatureFilter.Not, FeatureFilter.OnlyChildren, FeatureFilter.OnlyDescendants, FeatureFilter.Or, FeatureFilter.OverlapsLocation, FeatureFilter.ShadowContainedByLocation, FeatureFilter.ShadowOverlapsLocation, FeatureFilter.StrandFilter`

Field Summary

Fields inherited from interface org.biojava.bio.seq.FeatureFilter
`all, leaf, none, top_level`

Method Summary
`boolean` `isDisjoint(FeatureFilter filt)` Returns true if this filter is disjoint from filt - that is, there is no Feature that is accepted by both filters.
`boolean` `isProperSubset(FeatureFilter sup)` Returns true if this filter is a proper subset of sup - that is, for every feature that matches this, it also matches sup.

Methods inherited from interface org.biojava.bio.seq.FeatureFilter
`accept`

Method Detail

### isProperSubset

    boolean isProperSubset(FeatureFilter sup)

  Returns true if this filter is a proper subset of sup - that is, for every feature that matches this, it also matches sup. The empty filter is a proper subset of all filters. All filters are a proper subset of the all filter. All filters are proper subsets of themselves.

  Parameters:
    `sup` - the potential super set
  Returns:
    true if sup contains all features contained by this filter

### isDisjoint

    boolean isDisjoint(FeatureFilter filt)

  Returns true if this filter is disjoint from filt - that is, there is no Feature that is accepted by both filters. The empty filter is disjoint from all other filters. The all filter is disjoint from none.