| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/common/extensions/value_builder.h" |
| |
| using base::DictionaryValue; |
| using base::ListValue; |
| |
| namespace extensions { |
| |
| // DictionaryBuilder |
| |
| DictionaryBuilder::DictionaryBuilder() : dict_(new DictionaryValue) {} |
| |
| DictionaryBuilder::DictionaryBuilder(const DictionaryValue& init) |
| : dict_(init.DeepCopy()) {} |
| |
| DictionaryBuilder::~DictionaryBuilder() {} |
| |
| DictionaryBuilder& DictionaryBuilder::Set(const std::string& path, |
| int in_value) { |
| dict_->SetWithoutPathExpansion(path, Value::CreateIntegerValue(in_value)); |
| return *this; |
| } |
| |
| DictionaryBuilder& DictionaryBuilder::Set(const std::string& path, |
| double in_value) { |
| dict_->SetWithoutPathExpansion(path, Value::CreateDoubleValue(in_value)); |
| return *this; |
| } |
| |
| DictionaryBuilder& DictionaryBuilder::Set(const std::string& path, |
| const std::string& in_value) { |
| dict_->SetWithoutPathExpansion(path, Value::CreateStringValue(in_value)); |
| return *this; |
| } |
| |
| DictionaryBuilder& DictionaryBuilder::Set(const std::string& path, |
| const string16& in_value) { |
| dict_->SetWithoutPathExpansion(path, Value::CreateStringValue(in_value)); |
| return *this; |
| } |
| |
| DictionaryBuilder& DictionaryBuilder::Set(const std::string& path, |
| DictionaryBuilder& in_value) { |
| dict_->SetWithoutPathExpansion(path, in_value.Build().release()); |
| return *this; |
| } |
| |
| DictionaryBuilder& DictionaryBuilder::Set(const std::string& path, |
| ListBuilder& in_value) { |
| dict_->SetWithoutPathExpansion(path, in_value.Build().release()); |
| return *this; |
| } |
| |
| DictionaryBuilder& DictionaryBuilder::SetBoolean( |
| const std::string& path, bool in_value) { |
| dict_->SetWithoutPathExpansion(path, Value::CreateBooleanValue(in_value)); |
| return *this; |
| } |
| |
| // ListBuilder |
| |
| ListBuilder::ListBuilder() : list_(new ListValue) {} |
| ListBuilder::ListBuilder(const ListValue& init) : list_(init.DeepCopy()) {} |
| ListBuilder::~ListBuilder() {} |
| |
| ListBuilder& ListBuilder::Append(int in_value) { |
| list_->Append(Value::CreateIntegerValue(in_value)); |
| return *this; |
| } |
| |
| ListBuilder& ListBuilder::Append(double in_value) { |
| list_->Append(Value::CreateDoubleValue(in_value)); |
| return *this; |
| } |
| |
| ListBuilder& ListBuilder::Append(const std::string& in_value) { |
| list_->Append(Value::CreateStringValue(in_value)); |
| return *this; |
| } |
| |
| ListBuilder& ListBuilder::Append(const string16& in_value) { |
| list_->Append(Value::CreateStringValue(in_value)); |
| return *this; |
| } |
| |
| ListBuilder& ListBuilder::Append(DictionaryBuilder& in_value) { |
| list_->Append(in_value.Build().release()); |
| return *this; |
| } |
| |
| ListBuilder& ListBuilder::Append(ListBuilder& in_value) { |
| list_->Append(in_value.Build().release()); |
| return *this; |
| } |
| |
| ListBuilder& ListBuilder::AppendBoolean(bool in_value) { |
| list_->Append(Value::CreateBooleanValue(in_value)); |
| return *this; |
| } |
| |
| } // namespace extensions |