JAL-3210 Improvements to eclipse detection. New src tree and SwingJS updated from...
[jalview.git] / src / jalview / datamodel / features / FeatureStoreI.java
diff --git a/src/jalview/datamodel/features/FeatureStoreI.java b/src/jalview/datamodel/features/FeatureStoreI.java
new file mode 100644 (file)
index 0000000..fb32577
--- /dev/null
@@ -0,0 +1,58 @@
+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);
+
+}