addProvider($source); } } public function addGlobalSource(Search_GlobalSource_Interface $source) { if ($source instanceof Search_FacetProvider_Interface) { $this->addProvider($source); } } public function addProvider(Search_FacetProvider_Interface $provider) { $this->addFacets($provider->getFacets()); } public function addFacets(array $facets) { foreach ($facets as $facet) { $this->facets[$facet->getName()] = $facet; } } /** * @return \Search_Query_Facet_Term[] */ public function getFacets() { return $this->facets; } /** * @param string $name * * @return \Search_Query_Facet_Term|void */ public function getFacet($name) { if (isset($this->facets[$name])) { return $this->facets[$name]; } } }