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.
|
||||
*/
|
||||
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 )
|
||||
// todo -- warning, I removed the reference to the name from states
|
||||
bindings.add( state.iterator.seekForward(loc) );
|
||||
for ( ReferenceOrderedDataState state: states )
|
||||
// todo -- warning, I removed the reference to the name from states
|
||||
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 protected static Logger logger = Logger.getLogger(RefMetaDataTracker.class);
|
||||
public final static RefMetaDataTracker EMPTY_TRACKER = new RefMetaDataTracker();
|
||||
|
||||
// ------------------------------------------------------------------------------------------
|
||||
//
|
||||
|
|
|
|||
Loading…
Reference in New Issue