1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "sync/internal_api/public/change_record.h" 6 7 #include "base/strings/string_number_conversions.h" 8 #include "base/values.h" 9 #include "sync/internal_api/public/base_node.h" 10 #include "sync/internal_api/public/read_node.h" 11 #include "sync/protocol/proto_value_conversions.h" 12 13 namespace syncer { 14 15 ChangeRecord::ChangeRecord() 16 : id(kInvalidId), action(ACTION_ADD) {} 17 18 ChangeRecord::~ChangeRecord() {} 19 20 base::DictionaryValue* ChangeRecord::ToValue() const { 21 base::DictionaryValue* value = new base::DictionaryValue(); 22 std::string action_str; 23 switch (action) { 24 case ACTION_ADD: 25 action_str = "Add"; 26 break; 27 case ACTION_DELETE: 28 action_str = "Delete"; 29 break; 30 case ACTION_UPDATE: 31 action_str = "Update"; 32 break; 33 default: 34 NOTREACHED(); 35 action_str = "Unknown"; 36 break; 37 } 38 value->SetString("action", action_str); 39 value->SetString("id", base::Int64ToString(id)); 40 if (action == ACTION_DELETE) { 41 if (extra.get()) { 42 value->Set("extra", extra->ToValue()); 43 } 44 value->Set("specifics", EntitySpecificsToValue(specifics)); 45 } 46 return value; 47 } 48 49 ExtraPasswordChangeRecordData::ExtraPasswordChangeRecordData() {} 50 51 ExtraPasswordChangeRecordData::ExtraPasswordChangeRecordData( 52 const sync_pb::PasswordSpecificsData& data) 53 : unencrypted_(data) { 54 } 55 56 ExtraPasswordChangeRecordData::~ExtraPasswordChangeRecordData() {} 57 58 base::DictionaryValue* ExtraPasswordChangeRecordData::ToValue() const { 59 return PasswordSpecificsDataToValue(unencrypted_); 60 } 61 62 const sync_pb::PasswordSpecificsData& 63 ExtraPasswordChangeRecordData::unencrypted() const { 64 return unencrypted_; 65 } 66 67 } // namespace syncer 68