--- /dev/null
+package jalview.datamodel.features;
+
+import jalview.datamodel.SequenceFeature;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+
+public interface FeatureStoreI
+{
+
+ boolean addFeature(SequenceFeature feature);
+
+ boolean contains(SequenceFeature feature);
+
+ boolean delete(SequenceFeature sf);
+
+ List<SequenceFeature> findOverlappingFeatures(long start, long end);
+
+ List<SequenceFeature> findOverlappingFeatures(long start, long end,
+ List<SequenceFeature> result);
+
+ List<SequenceFeature> getContactFeatures();
+
+ List<SequenceFeature> getContactFeatures(List<SequenceFeature> result);
+
+ int getFeatureCount(boolean positional);
+
+ Set<String> getFeatureGroups(boolean positionalFeatures);
+
+ Collection<SequenceFeature> getFeatures();
+
+ List<SequenceFeature> getFeaturesForGroup(boolean positional,
+ String group);
+
+ float getMaximumScore(boolean positional);
+
+ float getMinimumScore(boolean positional);
+
+ List<SequenceFeature> getNonPositionalFeatures();
+
+ List<SequenceFeature> getNonPositionalFeatures(
+ List<SequenceFeature> result);
+
+ List<SequenceFeature> getPositionalFeatures();
+
+ List<SequenceFeature> getPositionalFeatures(List<SequenceFeature> result);
+
+ int getTotalFeatureLength();
+
+ boolean isEmpty();
+
+ boolean shiftFeatures(int fromPosition, int shiftBy);
+
+ boolean listContains(List<SequenceFeature> features,
+ SequenceFeature feature);
+
+}