teams[$team->getId()] = $team; return $this; } /** * @return Team[] */ public function getTeams(): array { return array_values($this->teams); } public function getCurrentUser(): ?User { return $this->currentUser; } /** * @param User $user * @return self */ public function setCurrentUser(User $user) { $this->currentUser = $user; return $this; } /** * @return int */ public function getPage() { return $this->page; } /** * @param int $page * @return self */ public function setPage($page) { $this->page = (int) $page; return $this; } public function getPageSize(): int { return $this->pageSize; } /** * @param int $pageSize * @return self */ public function setPageSize($pageSize) { if ($pageSize !== null && (int) $pageSize > 0) { $this->pageSize = (int) $pageSize; } return $this; } public function getOrderBy(): string { return $this->orderBy; } /** * You need to validate carefully if this value is used from a user-input. * * @param string $orderBy * @return self */ public function setOrderBy($orderBy) { $this->orderBy = $orderBy; return $this; } public function getOrder(): string { return $this->order; } /** * @param string $order * @return self */ public function setOrder($order) { if (in_array($order, [self::ORDER_ASC, self::ORDER_DESC])) { $this->order = $order; } return $this; } /** * @deprecated since 1.0 * @return string */ public function getResultType() { return $this->resultType; } /** * @deprecated since 1.0 * @param string $resultType * @return $this * @throws \InvalidArgumentException */ public function setResultType(string $resultType) { $allowed = [self::RESULT_TYPE_PAGER, self::RESULT_TYPE_QUERYBUILDER, self::RESULT_TYPE_OBJECTS]; if (!in_array($resultType, $allowed)) { throw new \InvalidArgumentException('Unsupported query result type'); } $this->resultType = $resultType; return $this; } public function hasSearchTerm(): bool { return null !== $this->searchTerm; } public function getSearchTerm(): ?SearchTerm { return $this->searchTerm; } /** * @param SearchTerm|null $searchTerm * @return self */ public function setSearchTerm(?SearchTerm $searchTerm) { $this->searchTerm = $searchTerm; return $this; } /** * Returns whether the query has changed fields, compared to the original state. * * @return bool */ public function isDirty(): bool { if ($this->page !== self::DEFAULT_PAGE) { return true; } if ($this->pageSize !== self::DEFAULT_PAGESIZE) { return true; } if (!empty($this->teams)) { return true; } if (null !== $this->searchTerm) { return true; } return false; } }