示例#1
0
 protected void advanceSubIterator() {
   try {
     if (mCurrentOffset < mOffsets.size()) {
       if (mOffsets.start(mCurrentOffset) != mPreviousVirtualOffsetStart) {
         // Diagnostic.developerLog("After region " + mCurrentOffset + " " + mCurrentRegion + ",
         // opening new reader at offset " +
         // VirtualOffsets.offsetToString(mOffsets.start(mCurrentOffset)) + " for region " +
         // mOffsets.region(mCurrentOffset));
         mReader.seek(mOffsets.start(mCurrentOffset));
         mBuffered = false;
         // } else {
         //  Diagnostic.developerLog("After region " + mCurrentOffset + " " + mCurrentRegion + ",
         // re-using existing reader for region " + mOffsets.region(mCurrentOffset));
       }
       mCurrentRegion = mOffsets.region(mCurrentOffset);
       final int newTemplate = mSequenceLookup.get(mCurrentRegion.getSequenceName());
       if (newTemplate != mCurrentTemplate) {
         mPreviousAlignmentStart = Integer.MIN_VALUE;
       }
       mPreviousVirtualOffsetStart = mOffsets.start(mCurrentOffset);
       mCurrentTemplate = newTemplate;
     }
     mCurrentOffset++;
   } catch (IOException e) {
     throw new RuntimeIOException(e.getMessage(), e);
   }
 }