git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
JAL-3253-applet JAL-3397 JAL-3383 fast IntervalStore for JavaScript
[jalview.git]
/
src
/
jalview
/
datamodel
/
features
/
FeatureStoreImpl.java
diff --git
a/src/jalview/datamodel/features/FeatureStoreImpl.java
b/src/jalview/datamodel/features/FeatureStoreImpl.java
index
02394bb
..
a90755d
100644
(file)
--- 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.api.IntervalStoreI;
import intervalstore.impl.BinarySearcher;
-import intervalstore.impl.IntervalStore;
/**
* A data store for a set of sequence features that supports efficient lookup of
/**
* 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
{
public class FeatureStoreImpl extends FeatureStore
{
+ /**
+ * Default constructor uses NCList
+ */
public FeatureStoreImpl()
{
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
* (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);
}
return BinarySearcher.findFirst(list, f -> f.getEnd() >= pos);
}
+ @Override
+ protected boolean findAndRemoveNonContactFeature(SequenceFeature sf)
+ {
+ return features.remove(sf);
+ }
+
}
}