@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;
        }
      }
    }