addSuggestion($suggestion); } } /** * Set the global text for this suggester. * * @param string $text * * @return $this */ public function setGlobalText($text) { return $this->setParam('text', $text); } /** * Add a suggestion to this suggest clause. * * @param AbstractSuggest $suggestion * * @return $this */ public function addSuggestion(AbstractSuggest $suggestion) { return $this->setParam($suggestion->getName(), $suggestion->toArray()); } /** * @param Suggest|AbstractSuggest $suggestion * * @throws Exception\NotImplementedException * * @return self */ public static function create($suggestion) { switch (true) { case $suggestion instanceof self: return $suggestion; case $suggestion instanceof AbstractSuggest: return new self($suggestion); } throw new NotImplementedException(); } }