• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 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 "extensions/common/value_builder.h"
6 
7 namespace extensions {
8 
9 // DictionaryBuilder
10 
DictionaryBuilder()11 DictionaryBuilder::DictionaryBuilder() : dict_(new base::DictionaryValue) {}
12 
DictionaryBuilder(const base::DictionaryValue & init)13 DictionaryBuilder::DictionaryBuilder(const base::DictionaryValue& init)
14     : dict_(init.DeepCopy()) {}
15 
~DictionaryBuilder()16 DictionaryBuilder::~DictionaryBuilder() {}
17 
Set(const std::string & path,int in_value)18 DictionaryBuilder& DictionaryBuilder::Set(const std::string& path,
19                                           int in_value) {
20   dict_->SetWithoutPathExpansion(path, new base::FundamentalValue(in_value));
21   return *this;
22 }
23 
Set(const std::string & path,double in_value)24 DictionaryBuilder& DictionaryBuilder::Set(const std::string& path,
25                                           double in_value) {
26   dict_->SetWithoutPathExpansion(path, new base::FundamentalValue(in_value));
27   return *this;
28 }
29 
Set(const std::string & path,const std::string & in_value)30 DictionaryBuilder& DictionaryBuilder::Set(const std::string& path,
31                                           const std::string& in_value) {
32   dict_->SetWithoutPathExpansion(path, new base::StringValue(in_value));
33   return *this;
34 }
35 
Set(const std::string & path,const base::string16 & in_value)36 DictionaryBuilder& DictionaryBuilder::Set(const std::string& path,
37                                           const base::string16& in_value) {
38   dict_->SetWithoutPathExpansion(path, new base::StringValue(in_value));
39   return *this;
40 }
41 
Set(const std::string & path,DictionaryBuilder & in_value)42 DictionaryBuilder& DictionaryBuilder::Set(const std::string& path,
43                                           DictionaryBuilder& in_value) {
44   dict_->SetWithoutPathExpansion(path, in_value.Build().release());
45   return *this;
46 }
47 
Set(const std::string & path,ListBuilder & in_value)48 DictionaryBuilder& DictionaryBuilder::Set(const std::string& path,
49                                           ListBuilder& in_value) {
50   dict_->SetWithoutPathExpansion(path, in_value.Build().release());
51   return *this;
52 }
53 
SetBoolean(const std::string & path,bool in_value)54 DictionaryBuilder& DictionaryBuilder::SetBoolean(
55     const std::string& path, bool in_value) {
56   dict_->SetWithoutPathExpansion(path, new base::FundamentalValue(in_value));
57   return *this;
58 }
59 
60 // ListBuilder
61 
ListBuilder()62 ListBuilder::ListBuilder() : list_(new base::ListValue) {}
ListBuilder(const base::ListValue & init)63 ListBuilder::ListBuilder(const base::ListValue& init) : list_(init.DeepCopy()) {
64 }
~ListBuilder()65 ListBuilder::~ListBuilder() {}
66 
Append(int in_value)67 ListBuilder& ListBuilder::Append(int in_value) {
68   list_->Append(new base::FundamentalValue(in_value));
69   return *this;
70 }
71 
Append(double in_value)72 ListBuilder& ListBuilder::Append(double in_value) {
73   list_->Append(new base::FundamentalValue(in_value));
74   return *this;
75 }
76 
Append(const std::string & in_value)77 ListBuilder& ListBuilder::Append(const std::string& in_value) {
78   list_->Append(new base::StringValue(in_value));
79   return *this;
80 }
81 
Append(const base::string16 & in_value)82 ListBuilder& ListBuilder::Append(const base::string16& in_value) {
83   list_->Append(new base::StringValue(in_value));
84   return *this;
85 }
86 
Append(DictionaryBuilder & in_value)87 ListBuilder& ListBuilder::Append(DictionaryBuilder& in_value) {
88   list_->Append(in_value.Build().release());
89   return *this;
90 }
91 
Append(ListBuilder & in_value)92 ListBuilder& ListBuilder::Append(ListBuilder& in_value) {
93   list_->Append(in_value.Build().release());
94   return *this;
95 }
96 
AppendBoolean(bool in_value)97 ListBuilder& ListBuilder::AppendBoolean(bool in_value) {
98   list_->Append(new base::FundamentalValue(in_value));
99   return *this;
100 }
101 
102 }  // namespace extensions
103