/** * Returns a collection of Trashed locations contained in the trash. * * $query allows to filter/sort the elements to be contained in the collection. * * @param \eZ\Publish\API\Repository\Values\Content\Query $query * * @return \eZ\Publish\API\Repository\Values\Content\SearchResult */ public function findTrashItems(Query $query) { if ($query->filter !== null && !$query->filter instanceof Criterion) { throw new InvalidArgumentValue("query->filter", $query->filter, "Query"); } if ($query->sortClauses !== null) { if (!is_array($query->sortClauses)) { throw new InvalidArgumentValue("query->sortClauses", $query->sortClauses, "Query"); } foreach ($query->sortClauses as $sortClause) { if (!$sortClause instanceof SortClause) { throw new InvalidArgumentValue("query->sortClauses", "only instances of SortClause class are allowed"); } } } if ($query->offset !== null && !is_numeric($query->offset)) { throw new InvalidArgumentValue("query->offset", $query->offset, "Query"); } if ($query->limit !== null && !is_numeric($query->limit)) { throw new InvalidArgumentValue("query->limit", $query->limit, "Query"); } $spiTrashItems = $this->persistenceHandler->trashHandler()->findTrashItems($query->filter !== null ? $query->filter : null, $query->offset !== null && $query->offset > 0 ? (int) $query->offset : 0, $query->limit !== null && $query->limit >= 1 ? (int) $query->limit : null, $query->sortClauses !== null ? $query->sortClauses : null); $trashItems = array(); foreach ($spiTrashItems as $spiTrashItem) { $trashItems[] = $this->buildDomainTrashItemObject($spiTrashItem); } $searchResult = new SearchResult(); $searchResult->count = count($trashItems); $searchResult->items = $trashItems; $searchResult->query = $query; return $searchResult; }