/** * Filter a DataTable instance. See @filter for more info. * * @param DataTable\Simple|DataTable\Map $dataTable * @return mixed */ protected function manipulateDataTable($dataTable) { $result = $dataTable->getEmptyClone(); foreach ($this->labels as $labelIndex => $label) { $row = null; foreach ($this->getLabelVariations($label) as $labelVariation) { $labelVariation = explode(self::SEPARATOR_RECURSIVE_LABEL, $labelVariation); $row = $this->doFilterRecursiveDescend($labelVariation, $dataTable); if ($row) { if ($this->addLabelIndex) { $row->setMetadata(self::FLAG_IS_ROW_EVOLUTION, $labelIndex); } $result->addRow($row); break; } } } return $result; }