Exemplo n.º 1
0
 /**
  * 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;
 }