OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "extensions/common/value_builder.h" | 5 #include "extensions/common/value_builder.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/json/json_writer.h" | 9 #include "base/json/json_writer.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
11 | 11 |
12 namespace extensions { | 12 namespace extensions { |
13 | 13 |
14 // DictionaryBuilder | 14 // DictionaryBuilder |
15 | 15 |
16 DictionaryBuilder::DictionaryBuilder() : dict_(new base::DictionaryValue) {} | 16 DictionaryBuilder::DictionaryBuilder() : dict_(new base::DictionaryValue) {} |
17 | 17 |
18 DictionaryBuilder::DictionaryBuilder(const base::DictionaryValue& init) | 18 DictionaryBuilder::DictionaryBuilder(const base::DictionaryValue& init) |
19 : dict_(init.DeepCopy()) {} | 19 : dict_(init.DeepCopy()) {} |
20 | 20 |
21 DictionaryBuilder::~DictionaryBuilder() {} | 21 DictionaryBuilder::~DictionaryBuilder() {} |
22 | 22 |
23 DictionaryBuilder::DictionaryBuilder(DictionaryBuilder&& other) | |
24 : dict_(other.Build()) {} | |
25 | |
26 DictionaryBuilder& DictionaryBuilder::operator=(DictionaryBuilder&& other) { | |
27 dict_ = other.Build(); | |
28 return *this; | |
29 } | |
30 | |
31 std::string DictionaryBuilder::ToJSON() const { | 23 std::string DictionaryBuilder::ToJSON() const { |
32 std::string json; | 24 std::string json; |
33 base::JSONWriter::WriteWithOptions( | 25 base::JSONWriter::WriteWithOptions( |
34 *dict_, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json); | 26 *dict_, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json); |
35 return json; | 27 return json; |
36 } | 28 } |
37 | 29 |
38 DictionaryBuilder& DictionaryBuilder::Set(const std::string& path, | 30 DictionaryBuilder& DictionaryBuilder::Set(const std::string& path, |
39 int in_value) { | 31 int in_value) { |
40 dict_->SetWithoutPathExpansion(path, new base::FundamentalValue(in_value)); | 32 dict_->SetWithoutPathExpansion(path, new base::FundamentalValue(in_value)); |
(...skipping 12 matching lines...) Expand all Loading... |
53 return *this; | 45 return *this; |
54 } | 46 } |
55 | 47 |
56 DictionaryBuilder& DictionaryBuilder::Set(const std::string& path, | 48 DictionaryBuilder& DictionaryBuilder::Set(const std::string& path, |
57 const base::string16& in_value) { | 49 const base::string16& in_value) { |
58 dict_->SetWithoutPathExpansion(path, new base::StringValue(in_value)); | 50 dict_->SetWithoutPathExpansion(path, new base::StringValue(in_value)); |
59 return *this; | 51 return *this; |
60 } | 52 } |
61 | 53 |
62 DictionaryBuilder& DictionaryBuilder::Set(const std::string& path, | 54 DictionaryBuilder& DictionaryBuilder::Set(const std::string& path, |
63 DictionaryBuilder in_value) { | |
64 dict_->SetWithoutPathExpansion(path, in_value.Build()); | |
65 return *this; | |
66 } | |
67 | |
68 DictionaryBuilder& DictionaryBuilder::Set(const std::string& path, | |
69 ListBuilder in_value) { | |
70 dict_->SetWithoutPathExpansion(path, in_value.Build()); | |
71 return *this; | |
72 } | |
73 | |
74 DictionaryBuilder& DictionaryBuilder::Set(const std::string& path, | |
75 scoped_ptr<base::Value> in_value) { | 55 scoped_ptr<base::Value> in_value) { |
76 dict_->SetWithoutPathExpansion(path, std::move(in_value)); | 56 dict_->SetWithoutPathExpansion(path, std::move(in_value)); |
77 return *this; | 57 return *this; |
78 } | 58 } |
79 | 59 |
80 DictionaryBuilder& DictionaryBuilder::SetBoolean( | 60 DictionaryBuilder& DictionaryBuilder::SetBoolean( |
81 const std::string& path, bool in_value) { | 61 const std::string& path, bool in_value) { |
82 dict_->SetWithoutPathExpansion(path, new base::FundamentalValue(in_value)); | 62 dict_->SetWithoutPathExpansion(path, new base::FundamentalValue(in_value)); |
83 return *this; | 63 return *this; |
84 } | 64 } |
85 | 65 |
86 // ListBuilder | 66 // ListBuilder |
87 | 67 |
88 ListBuilder::ListBuilder() : list_(new base::ListValue) {} | 68 ListBuilder::ListBuilder() : list_(new base::ListValue) {} |
89 ListBuilder::ListBuilder(const base::ListValue& init) : list_(init.DeepCopy()) { | 69 ListBuilder::ListBuilder(const base::ListValue& init) : list_(init.DeepCopy()) { |
90 } | 70 } |
91 ListBuilder::~ListBuilder() {} | 71 ListBuilder::~ListBuilder() {} |
92 | 72 |
93 ListBuilder::ListBuilder(ListBuilder&& other) | |
94 : list_(other.Build()) {} | |
95 | |
96 ListBuilder& ListBuilder::operator=(ListBuilder&& other) { | |
97 list_ = other.Build(); | |
98 return *this; | |
99 } | |
100 | |
101 ListBuilder& ListBuilder::Append(int in_value) { | 73 ListBuilder& ListBuilder::Append(int in_value) { |
102 list_->Append(new base::FundamentalValue(in_value)); | 74 list_->Append(new base::FundamentalValue(in_value)); |
103 return *this; | 75 return *this; |
104 } | 76 } |
105 | 77 |
106 ListBuilder& ListBuilder::Append(double in_value) { | 78 ListBuilder& ListBuilder::Append(double in_value) { |
107 list_->Append(new base::FundamentalValue(in_value)); | 79 list_->Append(new base::FundamentalValue(in_value)); |
108 return *this; | 80 return *this; |
109 } | 81 } |
110 | 82 |
111 ListBuilder& ListBuilder::Append(const std::string& in_value) { | 83 ListBuilder& ListBuilder::Append(const std::string& in_value) { |
112 list_->Append(new base::StringValue(in_value)); | 84 list_->Append(new base::StringValue(in_value)); |
113 return *this; | 85 return *this; |
114 } | 86 } |
115 | 87 |
116 ListBuilder& ListBuilder::Append(const base::string16& in_value) { | 88 ListBuilder& ListBuilder::Append(const base::string16& in_value) { |
117 list_->Append(new base::StringValue(in_value)); | 89 list_->Append(new base::StringValue(in_value)); |
118 return *this; | 90 return *this; |
119 } | 91 } |
120 | 92 |
121 ListBuilder& ListBuilder::Append(DictionaryBuilder in_value) { | 93 ListBuilder& ListBuilder::Append(scoped_ptr<base::Value> in_value) { |
122 list_->Append(in_value.Build()); | 94 list_->Append(std::move(in_value)); |
123 return *this; | 95 return *this; |
124 } | 96 } |
125 | 97 |
126 ListBuilder& ListBuilder::Append(ListBuilder in_value) { | |
127 list_->Append(in_value.Build()); | |
128 return *this; | |
129 } | |
130 | |
131 ListBuilder& ListBuilder::AppendBoolean(bool in_value) { | 98 ListBuilder& ListBuilder::AppendBoolean(bool in_value) { |
132 list_->Append(new base::FundamentalValue(in_value)); | 99 list_->Append(new base::FundamentalValue(in_value)); |
133 return *this; | 100 return *this; |
134 } | 101 } |
135 | 102 |
136 } // namespace extensions | 103 } // namespace extensions |
OLD | NEW |