/**
  * Register a new option descriptor for use by TubePress.
  *
  * @param tubepress_spi_options_OptionDescriptor $optionDescriptor The new option descriptor.
  *
  * @return void
  */
 private function _registerOptionDescriptor(tubepress_spi_options_OptionDescriptor $optionDescriptor)
 {
     $name = $optionDescriptor->getName();
     if (isset($this->_nameToOptionDescriptorMap[$name])) {
         if ($this->_shouldLog) {
             $this->_logger->warn($optionDescriptor->getName() . ' is already registered as an option descriptor');
         }
         return;
     }
     $optionRegistrationEvent = new tubepress_spi_event_EventBase($optionDescriptor);
     $eventDispatcher = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher();
     $eventDispatcher->dispatch(tubepress_api_const_event_EventNames::OPTIONS_DESCRIPTOR_REGISTRATION, $optionRegistrationEvent);
     $this->_nameToOptionDescriptorMap[$name] = $optionDescriptor;
 }
 private function _noChangeBetweenIncomingAndCurrent($filteredValue, tubepress_spi_options_OptionDescriptor $descriptor)
 {
     $boolean = $descriptor->isBoolean();
     $currentValue = $this->fetch($descriptor->getName());
     if ($boolean) {
         return (bool) $filteredValue === (bool) $currentValue;
     }
     return $currentValue == $filteredValue;
 }