/**
  * @param Payone_Core_Model_Config $config
  * @return Payone_Settings_Data_ConfigFile_Abstract|Payone_Settings_Data_ConfigFile_Shop_Protect
  */
 protected function generateSettingsProtect(Payone_Core_Model_Config $config)
 {
     /** @var $protectConfig Payone_Settings_Data_ConfigFile_Shop_Protect */
     $protectConfig = $this->getSettingsClass('shop_protect');
     $protect = $config->getProtect();
     $creditrating = $protect->getCreditrating();
     /** @var $consumerScore Payone_Settings_Data_ConfigFile_Protect_Consumerscore */
     $consumerScore = $this->generateSettingsBySection('protect_consumerscore', $creditrating);
     $yellow = $this->getAllowedPaymentMethods('yellow', $creditrating);
     $consumerScore->setYellow($yellow);
     $red = $this->getAllowedPaymentMethods('red', $creditrating);
     $consumerScore->setRed($red);
     $consumerScore->setDuetime($creditrating->getResultLifetimeInSeconds());
     /** @var $addressCheck Payone_Settings_Data_ConfigFile_Protect_Addresscheck */
     $addressCheck = $this->generateSettingsBySection('protect_addresscheck', $protect->getAddressCheck());
     $personStatusmapping = $protect->getAddressCheck()->getMappingPersonstatus();
     if (!is_array($personStatusmapping)) {
         $personStatusmapping = array();
     }
     $addressCheck->setPersonstatusmapping($personStatusmapping);
     $protectConfig->setConsumerscore($consumerScore);
     $protectConfig->setAddresscheck($addressCheck);
     return $protectConfig;
 }