/**
  * Update "target_folder" to use settings from "source_folder".
  * If "creating" is set, the settings are being created and the target folder
  * should be updated to reflect the new setting.
  * @param FOLDER $target_folder
  * @param FOLDER $source_folder
  * @param boolean $creating
  * @access private
  */
 protected function _update_folder($target_folder, $source_folder, $creating)
 {
     $field_name = $this->_field_name;
     if ($this->create_history_item_for_self || $target_folder->id != $this->_folder->id) {
         $history_item = $target_folder->new_history_item();
         if ($target_folder->visible()) {
             $history_item->kind = History_item_updated;
         } else {
             $history_item->kind = History_item_hidden_update;
         }
         $history_item->title = $this->_history_item_title($creating);
         $history_item->record_difference($this->_history_item_description($creating, $source_folder));
         $history_item->store();
     }
     $target_folder->{$field_name} = $source_folder->id;
     $target_folder->store();
 }