X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fdatamodel%2Ffeatures%2FFeatureStoreImpl.java;h=a90755dabd21efff3bc26a1338891d41a997ea6f;hb=28e9024f09a78a9625ed4defa2012bf342bec51e;hp=02394bb8275734de221eab070ee69148e041e719;hpb=8406f2ced29d2c04dbabaf1cde80b1a7fa8ce8ce;p=jalview.git diff --git a/src/jalview/datamodel/features/FeatureStoreImpl.java b/src/jalview/datamodel/features/FeatureStoreImpl.java index 02394bb..a90755d 100644 --- a/src/jalview/datamodel/features/FeatureStoreImpl.java +++ b/src/jalview/datamodel/features/FeatureStoreImpl.java @@ -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,9 +95,10 @@ public class FeatureStoreImpl extends FeatureStore * (creating the IntervalStore if necessary) */ @Override - protected synchronized void addNestedFeature(SequenceFeature feature) + protected synchronized boolean addPositionalFeature( + SequenceFeature feature) { - features.add(feature); + return features.add(feature); } /** @@ -286,4 +295,10 @@ public class FeatureStoreImpl extends FeatureStore return BinarySearcher.findFirst(list, f -> f.getEnd() >= pos); } + @Override + protected boolean findAndRemoveNonContactFeature(SequenceFeature sf) + { + return features.remove(sf); + } + }