diff --git a/module/VuFindSearch/src/VuFindSearch/Backend/Solr/HandlerMap.php b/module/VuFindSearch/src/VuFindSearch/Backend/Solr/HandlerMap.php index bfd27718c1b1bb67530c4db5fb23b9008c481323..6a1786bedb844b34907f2f8fa9743d285cee2c83 100644 --- a/module/VuFindSearch/src/VuFindSearch/Backend/Solr/HandlerMap.php +++ b/module/VuFindSearch/src/VuFindSearch/Backend/Solr/HandlerMap.php @@ -199,49 +199,68 @@ class HandlerMap extends AbstractHandlerMap return $this->getParameters($handler, 'appends'); } - /// Interal API + /** + * Add handler default, append, or invariant. + * + * @param string $handler Request handler + * @param string $type Parameter type, one of 'defaults', 'appends', + * or 'invariants' + * @param string $name Parameter name + * @param string $value Parameter value + * + * @return void + */ + public function addParameter($handler, $type, $name, $value) + { + if ($key != 'invariants' && $key != 'appends' && $key != 'defaults') { + throw new InvalidArgumentException( + sprintf('Invalid parameter type: %s', $key) + ); + } + $this->getParameters($handler, $type)->add($name, $value); + } /** * Set handler defaults, appends, or invariants. * * @param string $handler Request handler - * @param string $key Parameter key, one of 'defaults', 'appends', + * @param string $type Parameter type, one of 'defaults', 'appends', * or 'invariants' * @param array $parameters Parameters * * @return void */ - protected function setParameters($handler, $key, array $parameters) + public function setParameters($handler, $type, array $parameters) { - if ($key != 'invariants' && $key != 'appends' && $key != 'defaults') { + if ($type != 'invariants' && $type != 'appends' && $type != 'defaults') { throw new InvalidArgumentException( - sprintf('Invalid parameter key: %s', $key) + sprintf('Invalid parameter key: %s', $type) ); } - $this->parameters[$handler][$key] = new ParamBag($parameters); + $this->parameters[$handler][$type] = new ParamBag($parameters); } /** * Return handler defauls, appends, or invariants. * * @param string $handler Request handler - * @param string $key Parameter key, one of 'defaults', 'appends', + * @param string $type Parameter type, one of 'defaults', 'appends', * or 'invariants' * * @return array * * @throws InvalidArgumentException Invalid parameter key */ - protected function getParameters($handler, $key) + public function getParameters($handler, $type) { - if ($key != 'invariants' && $key != 'appends' && $key != 'defaults') { + if ($type != 'invariants' && $type != 'appends' && $type != 'defaults') { throw new InvalidArgumentException( - sprintf('Invalid parameter key: %s', $key) + sprintf('Invalid parameter key: %s', $type) ); } - if (!isset($this->parameters[$handler][$key])) { - $this->parameters[$handler][$key] = new ParamBag(); + if (!isset($this->parameters[$handler][$type])) { + $this->parameters[$handler][$type] = new ParamBag(); } - return $this->parameters[$handler][$key]; + return $this->parameters[$handler][$type]; } } \ No newline at end of file