ManagingReferenceOrderedView optimization: don't allow a fresh RefMetaDataTracker in the frequent case where there's no reference meta data
This commit is contained in:
parent
7eea6b8f92
commit
b8b2b9b2de
|
|
@ -77,13 +77,17 @@ public class ManagingReferenceOrderedView implements ReferenceOrderedView {
|
||||||
* @return A tracker containing information about this locus.
|
* @return A tracker containing information about this locus.
|
||||||
*/
|
*/
|
||||||
public RefMetaDataTracker getReferenceOrderedDataAtLocus( GenomeLoc loc, ReferenceContext referenceContext ) {
|
public RefMetaDataTracker getReferenceOrderedDataAtLocus( GenomeLoc loc, ReferenceContext referenceContext ) {
|
||||||
List<RODRecordList> bindings = states.isEmpty() ? Collections.<RODRecordList>emptyList() : new ArrayList<RODRecordList>(states.size());
|
if ( states.isEmpty() )
|
||||||
|
return RefMetaDataTracker.EMPTY_TRACKER;
|
||||||
|
else {
|
||||||
|
List<RODRecordList> bindings = new ArrayList<RODRecordList>(states.size());
|
||||||
|
|
||||||
for ( ReferenceOrderedDataState state: states )
|
for ( ReferenceOrderedDataState state: states )
|
||||||
// todo -- warning, I removed the reference to the name from states
|
// todo -- warning, I removed the reference to the name from states
|
||||||
bindings.add( state.iterator.seekForward(loc) );
|
bindings.add( state.iterator.seekForward(loc) );
|
||||||
|
|
||||||
return new RefMetaDataTracker(bindings);
|
return new RefMetaDataTracker(bindings);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,7 @@ public class RefMetaDataTracker {
|
||||||
|
|
||||||
final Map<String, RODRecordList> bindings;
|
final Map<String, RODRecordList> bindings;
|
||||||
final protected static Logger logger = Logger.getLogger(RefMetaDataTracker.class);
|
final protected static Logger logger = Logger.getLogger(RefMetaDataTracker.class);
|
||||||
|
public final static RefMetaDataTracker EMPTY_TRACKER = new RefMetaDataTracker();
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue