src/Model/Object/Search/SearchDomain.php line 142

Open in your IDE?
  1. <?php
  2. namespace FMS\eLibreria\CmsBundle\Model\Object\Search;
  3. use FMS\eLibreria\CmsBundle\Model\Object\SearchOptions;
  4. use FMS\eLibreria\CoreBundle\Model\Entity\Article;
  5. use FMS\eLibreria\CoreBundle\Model\Entity\Author;
  6. use FMS\eLibreria\CoreBundle\Model\Entity\Book;
  7. use FMS\eLibreria\CoreBundle\Model\Entity\Language;
  8. use FMS\eLibreria\CoreBundle\Model\Entity\Publisher;
  9. use FMS\eLibreria\CoreBundle\Model\Entity\Style;
  10. use FMS\eLibreria\CoreBundle\Utils\JsonUtils;
  11. use Knp\Bundle\PaginatorBundle\Pagination\SlidingPagination;
  12. class SearchDomain implements \JsonSerializable {
  13. private $searchItem;
  14. private $type;
  15. private $elements;
  16. private $actualPage;
  17. private $totalItems;
  18. private $totalPages;
  19. public function __construct($searchItem, $type, $actualPage) {
  20. $this->searchItem = $searchItem;
  21. $this->type = $type;
  22. $this->actualPage = $actualPage;
  23. }
  24. /**
  25. * @return mixed
  26. */
  27. public function getSearchItem() {
  28. return $this->searchItem;
  29. }
  30. /**
  31. * @param mixed $searchItem
  32. */
  33. public function setSearchItem($searchItem) {
  34. $this->searchItem = $searchItem;
  35. }
  36. /**
  37. * @return mixed
  38. */
  39. public function getType() {
  40. return $this->type;
  41. }
  42. /**
  43. * @param mixed $type
  44. */
  45. public function setType($type) {
  46. $this->type = $type;
  47. }
  48. /**
  49. * @return mixed
  50. */
  51. public function getElements() {
  52. return $this->elements;
  53. }
  54. /**
  55. * @param mixed $elements
  56. */
  57. public function setElements($elements) {
  58. $this->elements = $elements;
  59. }
  60. /**
  61. * @return mixed
  62. */
  63. public function getActualPage() {
  64. return $this->actualPage;
  65. }
  66. /**
  67. * @param mixed $actualPage
  68. */
  69. public function setActualPage($actualPage) {
  70. $this->actualPage = $actualPage;
  71. }
  72. /**
  73. * @return mixed
  74. */
  75. public function getTotalItems() {
  76. return $this->totalItems;
  77. }
  78. /**
  79. * @param mixed $totalItems
  80. */
  81. public function setTotalItems($totalItems) {
  82. $this->totalItems = $totalItems;
  83. }
  84. /**
  85. * @return mixed
  86. */
  87. public function getTotalPages() {
  88. return $this->totalPages;
  89. }
  90. /**
  91. * @param mixed $totalPages
  92. */
  93. public function setTotalPages($totalPages) {
  94. $this->totalPages = $totalPages;
  95. }
  96. public function getClass(){
  97. $class = null;
  98. switch($this->type){
  99. case SearchOptions::SEARCH_KEY_BOOK:
  100. $class = Book::class;
  101. break;
  102. case SearchOptions::SEARCH_KEY_ARTICLE:
  103. $class = Article::class;
  104. break;
  105. case SearchOptions::SEARCH_KEY_AUTHOR:
  106. $class = Author::class;
  107. break;
  108. case SearchOptions::SEARCH_KEY_LANGUAGE:
  109. $class = Language::class;
  110. break;
  111. case SearchOptions::SEARCH_KEY_PUBLISHER:
  112. $class = Publisher::class;
  113. break;
  114. case SearchOptions::SEARCH_KEY_STYLE:
  115. $class = Style::class;
  116. break;
  117. }
  118. return $class;
  119. }
  120. public function jsonSerialize() {
  121. return array(
  122. JsonUtils::JSON_KEY_TYPE => $this->type,
  123. JsonUtils::JSON_KEY_SEARCH => $this->searchItem,
  124. JsonUtils::JSON_KEY_ELEMENTS => $this->elements,
  125. JsonUtils::JSON_KEY_PAGE => $this->actualPage,
  126. JsonUtils::JSON_KEY_TOTAL_ITEMS => $this->totalItems,
  127. JsonUtils::JSON_KEY_TOTAL_PAGES => $this->totalPages,
  128. );
  129. }
  130. }