/**
  * Record class-specific differences.
  * 'orig' is the same as {@link $_object}, but is passed here for convenience.
  * @param PROJECT $orig
  * @param PROJECT $new
  * @access private
  */
 protected function _record_differences($orig, $new)
 {
     parent::_record_differences($orig, $new);
     if ($orig->trunk_id != $new->trunk_id) {
         $this->_record_object_difference('Trunk', $orig->trunk(), $new->trunk());
     }
     $orig_options = $orig->options();
     $new_options = $new->options();
     if ($orig_options->inherited() != $new_options->inherited()) {
         $definer = $new_options->definer();
         $this->record_difference('Project options are now inherited from ' . $definer->title_as_plain_text());
     }
     if ($orig_options->assignee_group_type != $new_options->assignee_group_type || $orig_options->assignee_group_id != $new_options->assignee_group_id) {
         $this->_record_string_difference('Assignees', $this->_text_for_assignee_options($orig_options), $this->_text_for_assignee_options($new_options));
     }
     if ($orig_options->reporter_group_type != $new_options->reporter_group_type || $orig_options->reporter_group_id != $new_options->reporter_group_id) {
         $this->_record_string_difference('Reporters', $this->_text_for_reporter_options($orig_options), $this->_text_for_reporter_options($new_options));
     }
     if ($orig_options->seconds_until_deadline != $new_options->seconds_until_deadline) {
         $this->_record_string_difference('Release Warning', $orig_options->release_warning_description(), $new_options->release_warning_description());
     }
 }
 /**
  * Record class-specific differences.
  * 'orig' is the same as {@link $_object}, but is passed here for convenience.
  * @param ALBUM $orig
  * @param ALBUM $new
  * @access private
  */
 protected function _record_differences($orig, $new)
 {
     parent::_record_differences($orig, $new);
     $this->_record_object_difference('Main picture', $orig->main_picture(), $new->main_picture());
     $this->_record_string_difference('URL Root', $orig->url_root, $new->url_root);
     $this->_record_string_difference('Location', $orig->location, $new->location);
     $this->_record_time_difference('First day', $orig->first_day, $new->first_day);
     $this->_record_time_difference('Last day', $orig->last_day, $new->last_day);
     if ($orig->show_times != $new->show_times) {
         if ($new->show_times) {
             $this->record_difference('Show times turned on.');
         } else {
             $this->record_difference('Show times turned off.');
         }
     }
     if ($orig->show_celsius != $new->show_celsius) {
         if ($new->show_celsius) {
             $this->record_difference('Show temperatures in Celsius.');
         } else {
             $this->record_difference('Show temperatures in Fahrenheit.');
         }
     }
     if ($orig->first_day_mode != $new->first_day_mode) {
         $orig_title = $this->_day_mode_as_text($orig->first_day_mode);
         $new_title = $this->_day_mode_as_text($new->first_day_mode);
         $this->_record_string_difference('First day mode', $orig_title, $new_title);
     }
     if ($orig->last_day_mode != $new->last_day_mode) {
         $orig_title = $this->_day_mode_as_text($orig->last_day_mode);
         $new_title = $this->_day_mode_as_text($new->last_day_mode);
         $this->_record_string_difference('Last day mode', $orig_title, $new_title);
     }
     if ($orig->max_picture_width != $new->max_picture_width) {
         $this->_record_string_difference('Maximum picture width', $orig->max_picture_width, $new->max_picture_width);
     }
     if ($orig->max_picture_height != $new->max_picture_height) {
         $this->_record_string_difference('Maximum picture height', $orig->max_picture_width, $new->max_picture_width);
     }
 }