/**
  * Initializes a single option.
  *
  * @param string $name  The option name.
  * @param string $value The option value.
  *
  * @return void
  */
 private function _init($name, $value)
 {
     if (!org_tubepress_impl_options_OptionsReference::shouldBePersisted($name)) {
         return;
     }
     if (!$this->exists($name)) {
         $this->delete($name);
         $this->create($name, $value);
     }
     if (org_tubepress_impl_options_OptionsReference::getType($name) != org_tubepress_api_const_options_Type::BOOL && $this->get($name) == "") {
         $this->setOption($name, $value);
     }
 }
 /**
  * Checks if the option value has the right type
  *
  * @param string  $optionName The name of the option to validate
  * @param unknown $candidate  The value of the option to validate
  *
  * @return void
  */
 private static function _checkType($optionName, $candidate, org_tubepress_api_message_MessageService $messageService)
 {
     $type = org_tubepress_impl_options_OptionsReference::getType($optionName);
     switch ($type) {
         case org_tubepress_api_const_options_Type::TEXT:
         case org_tubepress_api_const_options_Type::YT_USER:
         case org_tubepress_api_const_options_Type::PLAYLIST:
             if (!is_string($candidate)) {
                 throw new Exception(sprintf($messageService->_('validation-text'), $optionName, $candidate));
             }
             break;
         case org_tubepress_api_const_options_Type::BOOL:
             if (strcasecmp((string) $candidate, '1') !== 0 && strcasecmp((string) $candidate, '') !== 0) {
                 throw new Exception(sprintf($messageService->_('validation-bool'), $optionName, $candidate));
             }
             break;
         case org_tubepress_api_const_options_Type::INTEGRAL:
             if (intval($candidate) == 0 && $optionName != org_tubepress_api_const_options_names_Display::DESC_LIMIT && $optionName !== org_tubepress_api_const_options_names_Feed::RESULT_COUNT_CAP) {
                 throw new Exception(sprintf($messageService->_('validation-int-type'), $optionName, $candidate));
             }
             break;
         case org_tubepress_api_const_options_Type::ORDER:
         case org_tubepress_api_const_options_Type::PLAYER:
         case org_tubepress_api_const_options_Type::PLAYER_IMPL:
         case org_tubepress_api_const_options_Type::SAFE_SEARCH:
         case org_tubepress_api_const_options_Type::TIME_FRAME:
             $validValues = org_tubepress_impl_options_OptionsReference::getValidEnumValues($type);
             if (in_array((string) $candidate, $validValues) !== true) {
                 throw new Exception(sprintf($messageService->_('validation-enum'), $optionName, implode(', ', $validValues), $candidate));
             }
             break;
         case org_tubepress_api_const_options_Type::COLOR:
             //implement me please
             break;
     }
 }