Version.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. namespace Elastica\QueryBuilder;
  3. /**
  4. * Abstract Version class.
  5. *
  6. * @author Manuel Andreo Garcia <andreo.garcia@googlemail.com>
  7. */
  8. abstract class Version
  9. {
  10. /**
  11. * supported query methods.
  12. *
  13. * @var string[]
  14. */
  15. protected $queries = [];
  16. /**
  17. * supported filter methods.
  18. *
  19. * @var string[]
  20. */
  21. protected $filters = [];
  22. /**
  23. * supported aggregation methods.
  24. *
  25. * @var string[]
  26. */
  27. protected $aggregations = [];
  28. /**
  29. * supported $suggester methods.
  30. *
  31. * @var string[]
  32. */
  33. protected $suggesters = [];
  34. /**
  35. * returns true if $name is supported, false otherwise.
  36. *
  37. * @param string $name
  38. * @param $type
  39. *
  40. * @return bool
  41. */
  42. public function supports($name, $type)
  43. {
  44. switch ($type) {
  45. case DSL::TYPE_QUERY:
  46. return in_array($name, $this->queries);
  47. case DSL::TYPE_AGGREGATION:
  48. return in_array($name, $this->aggregations);
  49. case DSL::TYPE_SUGGEST:
  50. return in_array($name, $this->suggesters);
  51. }
  52. // disables version check in Facade for custom DSL objects
  53. return true;
  54. }
  55. /**
  56. * @return string[]
  57. */
  58. public function getAggregations()
  59. {
  60. return $this->aggregations;
  61. }
  62. /**
  63. * @return string[]
  64. */
  65. public function getQueries()
  66. {
  67. return $this->queries;
  68. }
  69. /**
  70. * @return string[]
  71. */
  72. public function getSuggesters()
  73. {
  74. return $this->suggesters;
  75. }
  76. }