/**
* Reads the data from the appropriate IlluminaDataProvider and feeds it into the TileProcessingRecord for
* this tile.
*/
public void process() {
final IlluminaDataProvider dataProvider = factory.makeDataProvider(Arrays.asList(this.tile.getNumber()));
log.debug(String.format("Reading data from tile %s ...", tile.getNumber()));
while (dataProvider.hasNext()) {
final ClusterData cluster = dataProvider.next();
readProgressLogger.record(null, 0);
// If this cluster is passing, or we do NOT want to ONLY emit passing reads, then add it to the next
if (cluster.isPf() || includeNonPfReads) {
final String barcode = (demultiplex ? cluster.getMatchedBarcode() : null);
this.processingRecord.addRecord(barcode, converter.convertClusterToOutputRecord(cluster));
}
}
this.handler.completeTile(this.tile);
dataProvider.close();
}