From bcfcb5c112d0c4252a24c5d0582c6adee6192f18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simonas=20=C5=A0erlinskas?= <simonas.serlinskas@nfq.com> Date: Mon, 18 Feb 2019 09:56:09 +0200 Subject: [PATCH] introducing field aware trait and named builder interface --- src/Aggregation/AbstractAggregation.php | 8 +++--- src/FieldAwareTrait.php | 36 +++++++++++++++++++++++++ src/InnerHit/NestedInnerHit.php | 4 +-- src/NamedBuilderInterface.php | 25 +++++++++++++++++ src/Search.php | 2 +- src/Suggest/Suggest.php | 4 +-- 6 files changed, 70 insertions(+), 9 deletions(-) create mode 100644 src/FieldAwareTrait.php create mode 100644 src/NamedBuilderInterface.php diff --git a/src/Aggregation/AbstractAggregation.php b/src/Aggregation/AbstractAggregation.php index 32977f4..fe59853 100644 --- a/src/Aggregation/AbstractAggregation.php +++ b/src/Aggregation/AbstractAggregation.php @@ -12,14 +12,14 @@ namespace ONGR\ElasticsearchDSL\Aggregation; use ONGR\ElasticsearchDSL\BuilderBag; -use ONGR\ElasticsearchDSL\BuilderInterface; use ONGR\ElasticsearchDSL\NameAwareTrait; +use ONGR\ElasticsearchDSL\NamedBuilderInterface; use ONGR\ElasticsearchDSL\ParametersTrait; /** * AbstractAggregation class. */ -abstract class AbstractAggregation implements BuilderInterface +abstract class AbstractAggregation implements NamedBuilderInterface { use ParametersTrait; use NameAwareTrait; @@ -93,7 +93,7 @@ abstract class AbstractAggregation implements BuilderInterface /** * Returns all sub aggregations. * - * @return BuilderBag[]|BuilderInterface[] + * @return BuilderBag[]|NamedBuilderInterface[] */ public function getAggregations() { @@ -108,7 +108,7 @@ abstract class AbstractAggregation implements BuilderInterface * Returns sub aggregation. * @param string $name Aggregation name to return. * - * @return AbstractAggregation|BuilderInterface|null + * @return AbstractAggregation|NamedBuilderInterface|null */ public function getAggregation($name) { diff --git a/src/FieldAwareTrait.php b/src/FieldAwareTrait.php new file mode 100644 index 0000000..3316e51 --- /dev/null +++ b/src/FieldAwareTrait.php @@ -0,0 +1,36 @@ +<?php + +/* + * This file is part of the ONGR package. + * + * (c) NFQ Technologies UAB <info@nfq.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace ONGR\ElasticsearchDSL; + +trait FieldAwareTrait +{ + /** + * @var string + */ + private $field; + + /** + * @return mixed + */ + public function getField() + { + return $this->field; + } + + /** + * @param mixed $field + */ + public function setField($field) + { + $this->field = $field; + } +} diff --git a/src/InnerHit/NestedInnerHit.php b/src/InnerHit/NestedInnerHit.php index e04707a..e52ca71 100644 --- a/src/InnerHit/NestedInnerHit.php +++ b/src/InnerHit/NestedInnerHit.php @@ -11,8 +11,8 @@ namespace ONGR\ElasticsearchDSL\InnerHit; -use ONGR\ElasticsearchDSL\BuilderInterface; use ONGR\ElasticsearchDSL\NameAwareTrait; +use ONGR\ElasticsearchDSL\NamedBuilderInterface; use ONGR\ElasticsearchDSL\ParametersTrait; use ONGR\ElasticsearchDSL\Search; @@ -21,7 +21,7 @@ use ONGR\ElasticsearchDSL\Search; * * @link https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-inner-hits.html */ -class NestedInnerHit implements BuilderInterface +class NestedInnerHit implements NamedBuilderInterface { use ParametersTrait; use NameAwareTrait; diff --git a/src/NamedBuilderInterface.php b/src/NamedBuilderInterface.php new file mode 100644 index 0000000..b9df432 --- /dev/null +++ b/src/NamedBuilderInterface.php @@ -0,0 +1,25 @@ +<?php + +/* + * This file is part of the ONGR package. + * + * (c) NFQ Technologies UAB <info@nfq.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace ONGR\ElasticsearchDSL; + +/** + * Interface NamedBuilderInterface. + */ +interface NamedBuilderInterface extends BuilderInterface +{ + /** + * Returns element name. + * + * @return string + */ + public function getName(); +} diff --git a/src/Search.php b/src/Search.php index 1a1b51b..9d140f2 100644 --- a/src/Search.php +++ b/src/Search.php @@ -412,7 +412,7 @@ class Search * * @return $this */ - public function addSuggest(BuilderInterface $suggest) + public function addSuggest(NamedBuilderInterface $suggest) { $this->getEndpoint(SuggestEndpoint::NAME)->add($suggest, $suggest->getName()); diff --git a/src/Suggest/Suggest.php b/src/Suggest/Suggest.php index f795130..5baab70 100644 --- a/src/Suggest/Suggest.php +++ b/src/Suggest/Suggest.php @@ -11,11 +11,11 @@ namespace ONGR\ElasticsearchDSL\Suggest; -use ONGR\ElasticsearchDSL\BuilderInterface; +use ONGR\ElasticsearchDSL\NamedBuilderInterface; use ONGR\ElasticsearchDSL\ParametersTrait; use Symfony\Component\Serializer\Exception\InvalidArgumentException; -class Suggest implements BuilderInterface +class Suggest implements NamedBuilderInterface { use ParametersTrait; -- GitLab