<?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\SearchEndpoint; use ONGR\ElasticsearchDSL\BuilderInterface; use Symfony\Component\Serializer\Normalizer\NormalizableInterface; /** * Interface used to define search endpoint. */ interface SearchEndpointInterface extends NormalizableInterface { /** * Adds builder to search endpoint. * * @param BuilderInterface $builder Builder to add. * @param array $parameters Additional parameters relevant to builder. * * @return int Returns builder key. */ public function addBuilder(BuilderInterface $builder, $parameters = []); /** * Removes contained builder. * * @param int $key * * @return $this */ public function removeBuilder($key); /** * Returns contained builder or null if Builder is not found. * * @param int $key * * @return BuilderInterface|null */ public function getBuilder($key); /** * Returns all contained builders. * * @return BuilderInterface[] */ public function getBuilders(); /** * Returns parameters for contained builder or empty array if parameters are not found. * * @param int $key * * @return array */ public function getBuilderParameters($key); /** * @param int $key * @param array $parameters * * @return $this */ public function setBuilderParameters($key, $parameters); }