public function getCount($filter, $query = '')
{
$storageController = $this->objects->getStorageController($this->getObject());
$condition = new Condition(null, $this->jarves);
if ($filter && is_array($filter)) {
$this->conditionOperator->applyRulesFromPk($condition, $filter, $this->getObject());
} else {
if ($filter instanceof Condition) {
$condition = $filter;
} else {
$condition = new Condition(null, $this->jarves);
}
}
if ($limit = $this->getObjectDefinition()->getLimitDataSets()) {
$condition->mergeAnd($limit);
}
if ($this->getPermissionCheck() && ($aclCondition = $this->acl->getListingCondition($this->getObject()))) {
$condition->mergeAndBegin($aclCondition);
}
if ($query) {
if ($queryCondition = $this->getQueryCondition($query, $this->getItemsSelection())) {
$condition->mergeAnd($queryCondition);
}
}
return $storageController->getCount($condition);
}