public function search(CriteriaCollectionInterface $criteriaCollection)
{
$previousCriteria = $criteriaCollection;
$previousResults = null;
$result = new ResultCollection();
/** @var CellInterface $cell */
foreach ($this->cellCollection as $name => $cell) {
if ($cell->getTransformer()->skip($previousResults)) {
continue;
}
$previousResults = $cell->getSearcher()->search($previousCriteria);
$previousCriteria = $this->getNewCriteria($cell, $previousCriteria, $previousResults);
$result->addNamedItem($name, $previousResults);
}
return $result;
}