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 13namespace syncer { 14 15ChangeRecord::ChangeRecord() 16 : id(kInvalidId), action(ACTION_ADD) {} 17 18ChangeRecord::~ChangeRecord() {} 19 20base::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 49ExtraPasswordChangeRecordData::ExtraPasswordChangeRecordData() {} 50 51ExtraPasswordChangeRecordData::ExtraPasswordChangeRecordData( 52 const sync_pb::PasswordSpecificsData& data) 53 : unencrypted_(data) { 54} 55 56ExtraPasswordChangeRecordData::~ExtraPasswordChangeRecordData() {} 57 58base::DictionaryValue* ExtraPasswordChangeRecordData::ToValue() const { 59 return PasswordSpecificsDataToValue(unencrypted_); 60} 61 62const sync_pb::PasswordSpecificsData& 63 ExtraPasswordChangeRecordData::unencrypted() const { 64 return unencrypted_; 65} 66 67} // namespace syncer 68