OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 "base/values.h" | 5 #include "base/values.h" |
6 | 6 |
7 #include <string.h> | 7 #include <string.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <ostream> | 10 #include <ostream> |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 } | 127 } |
128 | 128 |
129 bool Value::GetAsString(std::string* out_value) const { | 129 bool Value::GetAsString(std::string* out_value) const { |
130 return false; | 130 return false; |
131 } | 131 } |
132 | 132 |
133 bool Value::GetAsString(string16* out_value) const { | 133 bool Value::GetAsString(string16* out_value) const { |
134 return false; | 134 return false; |
135 } | 135 } |
136 | 136 |
| 137 bool Value::GetAsString(const StringValue** out_value) const { |
| 138 return false; |
| 139 } |
| 140 |
137 bool Value::GetAsList(ListValue** out_value) { | 141 bool Value::GetAsList(ListValue** out_value) { |
138 return false; | 142 return false; |
139 } | 143 } |
140 | 144 |
141 bool Value::GetAsList(const ListValue** out_value) const { | 145 bool Value::GetAsList(const ListValue** out_value) const { |
142 return false; | 146 return false; |
143 } | 147 } |
144 | 148 |
145 bool Value::GetAsDictionary(DictionaryValue** out_value) { | 149 bool Value::GetAsDictionary(DictionaryValue** out_value) { |
146 return false; | 150 return false; |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 } | 275 } |
272 | 276 |
273 StringValue::StringValue(const string16& in_value) | 277 StringValue::StringValue(const string16& in_value) |
274 : Value(TYPE_STRING), | 278 : Value(TYPE_STRING), |
275 value_(UTF16ToUTF8(in_value)) { | 279 value_(UTF16ToUTF8(in_value)) { |
276 } | 280 } |
277 | 281 |
278 StringValue::~StringValue() { | 282 StringValue::~StringValue() { |
279 } | 283 } |
280 | 284 |
| 285 std::string* StringValue::GetString() { |
| 286 return &value_; |
| 287 } |
| 288 |
| 289 const std::string& StringValue::GetString() const { |
| 290 return value_; |
| 291 } |
| 292 |
281 bool StringValue::GetAsString(std::string* out_value) const { | 293 bool StringValue::GetAsString(std::string* out_value) const { |
282 if (out_value) | 294 if (out_value) |
283 *out_value = value_; | 295 *out_value = value_; |
284 return true; | 296 return true; |
285 } | 297 } |
286 | 298 |
287 bool StringValue::GetAsString(string16* out_value) const { | 299 bool StringValue::GetAsString(string16* out_value) const { |
288 if (out_value) | 300 if (out_value) |
289 *out_value = UTF8ToUTF16(value_); | 301 *out_value = UTF8ToUTF16(value_); |
290 return true; | 302 return true; |
291 } | 303 } |
292 | 304 |
| 305 bool StringValue::GetAsString(const StringValue** out_value) const { |
| 306 if (*out_value) |
| 307 *out_value = this; |
| 308 return true; |
| 309 } |
| 310 |
293 StringValue* StringValue::DeepCopy() const { | 311 StringValue* StringValue::DeepCopy() const { |
294 return new StringValue(value_); | 312 return new StringValue(value_); |
295 } | 313 } |
296 | 314 |
297 bool StringValue::Equals(const Value* other) const { | 315 bool StringValue::Equals(const Value* other) const { |
298 if (other->GetType() != GetType()) | 316 if (other->GetType() != GetType()) |
299 return false; | 317 return false; |
300 std::string lhs, rhs; | 318 std::string lhs, rhs; |
301 return GetAsString(&lhs) && other->GetAsString(&rhs) && lhs == rhs; | 319 return GetAsString(&lhs) && other->GetAsString(&rhs) && lhs == rhs; |
302 } | 320 } |
(...skipping 829 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1132 | 1150 |
1133 std::ostream& operator<<(std::ostream& out, const Value& value) { | 1151 std::ostream& operator<<(std::ostream& out, const Value& value) { |
1134 std::string json; | 1152 std::string json; |
1135 JSONWriter::WriteWithOptions(&value, | 1153 JSONWriter::WriteWithOptions(&value, |
1136 JSONWriter::OPTIONS_PRETTY_PRINT, | 1154 JSONWriter::OPTIONS_PRETTY_PRINT, |
1137 &json); | 1155 &json); |
1138 return out << json; | 1156 return out << json; |
1139 } | 1157 } |
1140 | 1158 |
1141 } // namespace base | 1159 } // namespace base |
OLD | NEW |