<?phpnamespace FMS\eLibreria\CmsBundle\Model\Object\Search;use FMS\eLibreria\CmsBundle\Model\Object\SearchOptions;use FMS\eLibreria\CoreBundle\Model\Entity\Article;use FMS\eLibreria\CoreBundle\Model\Entity\Author;use FMS\eLibreria\CoreBundle\Model\Entity\Book;use FMS\eLibreria\CoreBundle\Model\Entity\Language;use FMS\eLibreria\CoreBundle\Model\Entity\Publisher;use FMS\eLibreria\CoreBundle\Model\Entity\Style;use FMS\eLibreria\CoreBundle\Utils\JsonUtils;use Knp\Bundle\PaginatorBundle\Pagination\SlidingPagination;class SearchDomain implements \JsonSerializable { private $searchItem; private $type; private $elements; private $actualPage; private $totalItems; private $totalPages; public function __construct($searchItem, $type, $actualPage) { $this->searchItem = $searchItem; $this->type = $type; $this->actualPage = $actualPage; } /** * @return mixed */ public function getSearchItem() { return $this->searchItem; } /** * @param mixed $searchItem */ public function setSearchItem($searchItem) { $this->searchItem = $searchItem; } /** * @return mixed */ public function getType() { return $this->type; } /** * @param mixed $type */ public function setType($type) { $this->type = $type; } /** * @return mixed */ public function getElements() { return $this->elements; } /** * @param mixed $elements */ public function setElements($elements) { $this->elements = $elements; } /** * @return mixed */ public function getActualPage() { return $this->actualPage; } /** * @param mixed $actualPage */ public function setActualPage($actualPage) { $this->actualPage = $actualPage; } /** * @return mixed */ public function getTotalItems() { return $this->totalItems; } /** * @param mixed $totalItems */ public function setTotalItems($totalItems) { $this->totalItems = $totalItems; } /** * @return mixed */ public function getTotalPages() { return $this->totalPages; } /** * @param mixed $totalPages */ public function setTotalPages($totalPages) { $this->totalPages = $totalPages; } public function getClass(){ $class = null; switch($this->type){ case SearchOptions::SEARCH_KEY_BOOK: $class = Book::class; break; case SearchOptions::SEARCH_KEY_ARTICLE: $class = Article::class; break; case SearchOptions::SEARCH_KEY_AUTHOR: $class = Author::class; break; case SearchOptions::SEARCH_KEY_LANGUAGE: $class = Language::class; break; case SearchOptions::SEARCH_KEY_PUBLISHER: $class = Publisher::class; break; case SearchOptions::SEARCH_KEY_STYLE: $class = Style::class; break; } return $class; } public function jsonSerialize() { return array( JsonUtils::JSON_KEY_TYPE => $this->type, JsonUtils::JSON_KEY_SEARCH => $this->searchItem, JsonUtils::JSON_KEY_ELEMENTS => $this->elements, JsonUtils::JSON_KEY_PAGE => $this->actualPage, JsonUtils::JSON_KEY_TOTAL_ITEMS => $this->totalItems, JsonUtils::JSON_KEY_TOTAL_PAGES => $this->totalPages, ); }}