JAL-3383 JAL-3397 JAL-3253-applet IntervalStore options
[jalview.git] / src / jalview / datamodel / features / FeatureStoreImpl.java
index 02394bb..47c1dd4 100644 (file)
@@ -27,7 +27,6 @@ import java.util.List;
 
 import intervalstore.api.IntervalStoreI;
 import intervalstore.impl.BinarySearcher;
-import intervalstore.impl.IntervalStore;
 
 /**
  * A data store for a set of sequence features that supports efficient lookup of
@@ -40,9 +39,18 @@ import intervalstore.impl.IntervalStore;
 public class FeatureStoreImpl extends FeatureStore
 {
 
+  /**
+   * Default constructor uses NCList
+   */
   public FeatureStoreImpl()
   {
-    features = new IntervalStore<>();
+    this(true);
+  }
+
+  public FeatureStoreImpl(boolean useNCList)
+  {
+    features = (useNCList ? new intervalstore.impl.IntervalStore<>()
+            : new intervalstore.nonc.IntervalStore<>(false));
   }
 
   /**
@@ -87,7 +95,7 @@ public class FeatureStoreImpl extends FeatureStore
    * (creating the IntervalStore if necessary)
    */
   @Override
-  protected synchronized void addNestedFeature(SequenceFeature feature)
+  protected synchronized void addPositionalFeature(SequenceFeature feature)
   {
     features.add(feature);
   }
@@ -286,4 +294,10 @@ public class FeatureStoreImpl extends FeatureStore
     return BinarySearcher.findFirst(list, f -> f.getEnd() >= pos);
   }
 
+  @Override
+  protected boolean findAndRemoveNonContactFeature(SequenceFeature sf)
+  {
+    return features.remove(sf);
+  }
+
 }