void (int handles, int firstRow, int lastRow) { for (; firstRow <= lastRow; firstRow++) { rowEntry.row = firstRow; RowInfo row = rows.get(firstRow); for (int i = 0; i < handles;) { EditorHandle handle = editorHandles[i++]; if (filters[handle.column].is(row)) { if (handle.handleRow(rowEntry)) { // if handleRow returns true, this editor will // require no additional iteration (move it to the // end) if no handles remain, just return switchHandle(--i, --handles); if (handles == 0) { return; } } } } } }