@Override public float getProgress() throws IOException { if ((numKeysRead > 0) && (currentGeoWaveKey == null)) { return 1.0f; } if (currentGeoWaveRangeIndexPair == null) { return 0.0f; } final ProgressPerRange progress = progressPerRange.get(currentGeoWaveRangeIndexPair); if (progress == null) { return Math.min( 1, Math.max( 0, getProgressForRange(currentGeoWaveRangeIndexPair.getRange(), currentGeoWaveKey))); } return Math.min( 1, Math.max( 0, getOverallProgress( currentGeoWaveRangeIndexPair.getRange(), currentGeoWaveKey, progress))); }