public function find($criteria = null, $findCallback = null)
{
if ($findCallback !== null) {
if (!is_callable($findCallback)) {
throw new \InvalidArgumentException(sprintf("Second argument is expected to be Callable"));
}
} else {
$findCallback = [$this->getEntityClass(), 'find'];
}
$criteria = $this->getCriteria($criteria);
$this->setInnerIterator($findCallback(empty($criteria) ? null : $criteria, null, $this->getSorting(), $this->controller->getMaxResults(), $this->controller->getPageOffset(), true));
return $this;
}