# File app/models/change.rb, line 29
  def revert (author)
    @dw_object = DwObject.find_by_path(self.object_path)

    if @dw_object
    case @dw_object.objectType
    when 'Database'
      @database = Database.find(@dw_object.dw_object_id)
      @database.database_desc = self.new_value if self.data_changed == 'database_desc'
      @database.save
      @new_change = Change.new({:object_path => @database.database_nm, :data_changed => "database_desc", 
        :user_id => author, :comment => 'REVERT',             
        :new_value => self.new_value, :date => Time.now})                                                                                                       
      @new_change.save
    when 'Schema'
      @schema = Schema.find(@dw_object.dw_object_id)
      @schema.schema_desc = self.new_value if self.data_changed == 'schema_desc'
      @schema.schema_title = self.new_value if self.data_changed == 'schema_title'
      @schema.save
      @new_change = Change.new({:object_path => @schema.Database.database_nm + '/' + @schema.schema_nm, :data_changed => "schema_desc", 
        :user_id => author, :comment => 'REVERT',             
        :new_value => self.new_value, :date => Time.now}) if self.data_changed == 'schema_desc' 
      @new_change = Change.new({:object_path => @schema.Database.database_nm + '/' + @schema.schema_nm, :data_changed => "schema_title", 
        :user_id => author, :comment => 'REVERT',             
        :new_value => self.new_value, :date => Time.now}) if self.data_changed == 'schema_title'     
      @new_change.save
    when 'Table'
      @table = Table.find(@dw_object.dw_object_id)
      @table.table_desc = self.new_value if self.data_changed == 'table_desc'
      @table.save
      @new_change = Change.new({:object_path => @table.Schema.Database.database_nm + '/' + @table.Schema.schema_nm + '/' + @table.table_nm, :data_changed => "table_desc", 
        :user_id => author, :comment => 'REVERT',             
        :new_value => self.new_value, :date => Time.now})                                                                                                       
      @new_change.save
    when 'Column'
      @column = Column.find(@dw_object.dw_object_id)
      @column.column_desc = self.new_value if self.data_changed == 'column_desc'
      @column.sample_data_txt = self.new_value if self.data_changed == 'sample_data_txt'
      @column.save
      @new_change = Change.new({:object_path => @column.Table.Schema.Database.database_nm + '/' + @column.Table.Schema.schema_nm + '/' + @column.Table.schema_nm + '/' + @column.column_nm, :data_changed => "sample_data_txt", 
         :user_id => author, :comment => 'REVERT',                
         :new_value => self.new_value, :date => Time.now}) if self.data_changed == 'sample_data_txt'                                                                                                
      @new_change = Change.new({:object_path => @column.Table.Schema.Database.database_nm + '/' + @column.Table.Schema.schema_nm + '/' + @column.Table.table_nm + '/' + @column.column_nm, :data_changed => "column_desc", 
         :user_id => author, :comment => 'REVERT',                
         :new_value => self.new_value, :date => Time.now}) if self.data_changed == 'column_desc'                
      @new_change.save
     end
     else
     @reports = Report.find_all()
     for report in @reports
       if report.path == self.object_path
         @the_report = report
       end
     end
     @the_report[self.data_changed] = self.new_value
     @the_report.save
     @new_change = Change.new({:object_path => @the_report.path, :data_changed => self.data_changed,
       :user_id => author, :comment => 'REVERT',
       :new_value => self.new_value, :date => Time.now})
     @new_change.save
     end
   end