* @license http://github.com/basdenooijer/solarium/raw/master/COPYING * @link http://www.solarium-project.org/ * * @package Solarium */ /** * Customization value object * * @package Solarium * @subpackage Plugin */ class Solarium_Plugin_CustomizeRequest_Customization extends Solarium_Configurable { /** * Type definition for params */ const TYPE_PARAM = 'param'; /** * Type definition for headers */ const TYPE_HEADER = 'header'; /** * Default options * * @var array */ protected $_options = array( 'key' => null, 'type' => null, 'name' => null, 'value' => null, 'persistent' => false, 'overwrite' => true, ); /** * Set key value * * @param string $value * @return Solarium_Plugin_CustomizeRequest_Customization */ public function setKey($value) { $this->_setOption('key', $value); return $this; } /** * Get key value * * @return string */ public function getKey() { return $this->getOption('key'); } /** * Set type value * * @param string $value * @return Solarium_Plugin_CustomizeRequest_Customization */ public function setType($value) { $this->_setOption('type', $value); return $this; } /** * Get type value * * @return string */ public function getType() { return $this->getOption('type'); } /** * Set name value * * @param string $value * @return Solarium_Plugin_CustomizeRequest_Customization */ public function setName($value) { $this->_setOption('name', $value); return $this; } /** * Get name value * * @return string */ public function getName() { return $this->getOption('name'); } /** * Set value * * @param string $value * @return Solarium_Plugin_CustomizeRequest_Customization */ public function setValue($value) { $this->_setOption('value', $value); return $this; } /** * Get value * * @return string */ public function getValue() { return $this->getOption('value'); } /** * Set persistent on/off * * @param boolean $value * @return Solarium_Plugin_CustomizeRequest_Customization */ public function setPersistent($value) { $this->_setOption('persistent', $value); return $this; } /** * Get persistent setting * * @return boolean */ public function getPersistent() { return $this->getOption('persistent'); } /** * Set overwrite option on/off * * @param boolean $value * @return Solarium_Plugin_CustomizeRequest_Customization */ public function setOverwrite($value) { $this->_setOption('overwrite', $value); return $this; } /** * Get overwrite option value * * @return boolean */ public function getOverwrite() { return $this->getOption('overwrite'); } /** * Check for all mandatory settings * * @return bool */ public function isValid() { $type = $this->getType(); if ($type !== self::TYPE_PARAM && $type !== self::TYPE_HEADER) return false; if (null == $this->getKey() || null == $this->getName() || null == $this->getValue()) return false; return true; } }