@Override public final void visit(Integer cell1Key, Integer cell1Val) { // Is it all or not. if (query.filterCells[0]) { // IS it exact or not if (null != matchingCell0) { if (query.notValCells[0]) { // Exact val match if (matchingCell0.intValue() == cell1Key.intValue()) return; } else { // Not Exact val if (matchingCell0.intValue() != cell1Key.intValue()) return; } } else { // Either range or IN if (query.inValCells[0]) { // IN boolean isMatched = false; // LOOKING FOR ONE MATCHING for (Object obj : query.inValuesAO[0]) { Integer objI = (Integer) obj; isMatched = cell1Key.intValue() == objI.intValue(); // ONE MATCHED, NO NEED TO PROCESS if (query.notValCells[0]) { if (!isMatched) break; } else { if (isMatched) break; } } if (!isMatched) return; // NONE MATCHED } else { // RANGE boolean isMatched = cell1Key.intValue() < cellMin0.intValue() || cell1Key.intValue() > cellMax0.intValue(); if (query.notValCells[0]) { // Not Exact Range if (!isMatched) return; } else { // Exact Range if (isMatched) return; } } } } if (null != plugin) { switch (this.mode) { case MODE_COLS: tablePartsCallback.onRowCols(cell1Key, cell1Val); break; case MODE_KEY: tablePartsCallback.onRowKey(cell1Key); break; } } }