JAL-2483 JAL-2481 findAllFeatures without scanning all features
[jalview.git] / src / jalview / datamodel / features / SequenceFeaturesI.java
index 43e9448..fa77532 100644 (file)
@@ -16,7 +16,7 @@ public interface SequenceFeaturesI
    * 
    * @param sf
    */
-  abstract boolean add(SequenceFeature sf);
+  boolean add(SequenceFeature sf);
 
   /**
    * Returns a (possibly empty) list of features, optionally restricted to
@@ -28,7 +28,7 @@ public interface SequenceFeaturesI
    * @param type
    * @return
    */
-  abstract List<SequenceFeature> findFeatures(int from, int to,
+  List<SequenceFeature> findFeatures(int from, int to,
           String... type);
 
   /**
@@ -38,7 +38,7 @@ public interface SequenceFeaturesI
    * @param type
    * @return
    */
-  abstract List<SequenceFeature> getAllFeatures(String... type);
+  List<SequenceFeature> getAllFeatures(String... type);
 
   /**
    * Answers the number of (positional or non-positional) features, optionally
@@ -48,7 +48,7 @@ public interface SequenceFeaturesI
    * @param type
    * @return
    */
-  abstract int getFeatureCount(boolean positional, String... type);
+  int getFeatureCount(boolean positional, String... type);
 
   /**
    * Answers the total length of positional features, optionally restricted to
@@ -57,7 +57,7 @@ public interface SequenceFeaturesI
    * @param type
    * @return
    */
-  abstract int getTotalFeatureLength(String... type);
+  int getTotalFeatureLength(String... type);
 
   /**
    * Answers a list of all positional features, optionally restricted to
@@ -66,7 +66,7 @@ public interface SequenceFeaturesI
    * @param type
    * @return
    */
-  abstract List<SequenceFeature> getPositionalFeatures(
+  List<SequenceFeature> getPositionalFeatures(
           String... type);
 
   /**
@@ -75,7 +75,7 @@ public interface SequenceFeaturesI
    * 
    * @return
    */
-  abstract List<SequenceFeature> getContactFeatures(String... type);
+  List<SequenceFeature> getContactFeatures(String... type);
 
   /**
    * Answers a list of all non-positional features, optionally restricted to
@@ -85,7 +85,7 @@ public interface SequenceFeaturesI
    *          if no type is specified, all are returned
    * @return
    */
-  abstract List<SequenceFeature> getNonPositionalFeatures(
+  List<SequenceFeature> getNonPositionalFeatures(
           String... type);
 
   /**
@@ -96,14 +96,14 @@ public interface SequenceFeaturesI
    * 
    * @param sf
    */
-  abstract boolean delete(SequenceFeature sf);
+  boolean delete(SequenceFeature sf);
 
   /**
    * Answers true if this store contains at least one feature, else false
    * 
    * @return
    */
-  abstract boolean hasFeatures();
+  boolean hasFeatures();
 
   /**
    * Returns a set of the distinct feature groups present in the collection. The
@@ -116,7 +116,7 @@ public interface SequenceFeaturesI
    * @param type
    * @return
    */
-  abstract Set<String> getFeatureGroups(boolean positionalFeatures,
+  Set<String> getFeatureGroups(boolean positionalFeatures,
           String... type);
 
   /**
@@ -129,7 +129,7 @@ public interface SequenceFeaturesI
    * @param groups
    * @return
    */
-  abstract Set<String> getFeatureTypesForGroups(
+  Set<String> getFeatureTypesForGroups(
           boolean positionalFeatures, String... groups);
 
   /**
@@ -137,6 +137,27 @@ public interface SequenceFeaturesI
    * 
    * @return
    */
-  abstract Set<String> getFeatureTypes();
+  Set<String> getFeatureTypes();
 
+  /**
+   * Answers the minimum score held for positional or non-positional features
+   * for the specified type. This may be Float.NaN if there are no features, or
+   * none has a non-NaN score.
+   * 
+   * @param type
+   * @param positional
+   * @return
+   */
+  float getMinimumScore(String type, boolean positional);
+
+  /**
+   * Answers the maximum score held for positional or non-positional features
+   * for the specified type. This may be Float.NaN if there are no features, or
+   * none has a non-NaN score.
+   * 
+   * @param type
+   * @param positional
+   * @return
+   */
+  float getMaximumScore(String type, boolean positional);
 }
\ No newline at end of file