Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(31)

Side by Side Diff: base/values.cc

Issue 7714004: base: Add AsList() function to Value API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: OVERRIDE Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "base/float_util.h" 7 #include "base/float_util.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 // static 90 // static
91 StringValue* Value::CreateStringValue(const std::string& in_value) { 91 StringValue* Value::CreateStringValue(const std::string& in_value) {
92 return new StringValue(in_value); 92 return new StringValue(in_value);
93 } 93 }
94 94
95 // static 95 // static
96 StringValue* Value::CreateStringValue(const string16& in_value) { 96 StringValue* Value::CreateStringValue(const string16& in_value) {
97 return new StringValue(in_value); 97 return new StringValue(in_value);
98 } 98 }
99 99
100 ListValue* Value::AsList() {
101 return NULL;
102 }
103
100 bool Value::GetAsBoolean(bool* out_value) const { 104 bool Value::GetAsBoolean(bool* out_value) const {
101 return false; 105 return false;
102 } 106 }
103 107
104 bool Value::GetAsInteger(int* out_value) const { 108 bool Value::GetAsInteger(int* out_value) const {
105 return false; 109 return false;
106 } 110 }
107 111
108 bool Value::GetAsDouble(double* out_value) const { 112 bool Value::GetAsDouble(double* out_value) const {
109 return false; 113 return false;
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after
501 if (out_value) 505 if (out_value)
502 *out_value = static_cast<DictionaryValue*>(value); 506 *out_value = static_cast<DictionaryValue*>(value);
503 507
504 return true; 508 return true;
505 } 509 }
506 510
507 bool DictionaryValue::GetList(const std::string& path, 511 bool DictionaryValue::GetList(const std::string& path,
508 ListValue** out_value) const { 512 ListValue** out_value) const {
509 Value* value; 513 Value* value;
510 bool result = Get(path, &value); 514 bool result = Get(path, &value);
511 if (!result || !value->IsType(TYPE_LIST)) 515 if (!result || !value->AsList())
512 return false; 516 return false;
513 517
514 if (out_value) 518 if (out_value)
515 *out_value = static_cast<ListValue*>(value); 519 *out_value = static_cast<ListValue*>(value);
516 520
517 return true; 521 return true;
518 } 522 }
519 523
520 bool DictionaryValue::GetWithoutPathExpansion(const std::string& key, 524 bool DictionaryValue::GetWithoutPathExpansion(const std::string& key,
521 Value** out_value) const { 525 Value** out_value) const {
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 if (out_value) 583 if (out_value)
580 *out_value = static_cast<DictionaryValue*>(value); 584 *out_value = static_cast<DictionaryValue*>(value);
581 585
582 return true; 586 return true;
583 } 587 }
584 588
585 bool DictionaryValue::GetListWithoutPathExpansion(const std::string& key, 589 bool DictionaryValue::GetListWithoutPathExpansion(const std::string& key,
586 ListValue** out_value) const { 590 ListValue** out_value) const {
587 Value* value; 591 Value* value;
588 bool result = GetWithoutPathExpansion(key, &value); 592 bool result = GetWithoutPathExpansion(key, &value);
589 if (!result || !value->IsType(TYPE_LIST)) 593 if (!result || !value->AsList())
590 return false; 594 return false;
591 595
592 if (out_value) 596 if (out_value)
593 *out_value = static_cast<ListValue*>(value); 597 *out_value = static_cast<ListValue*>(value);
594 598
595 return true; 599 return true;
596 } 600 }
597 601
598 bool DictionaryValue::Remove(const std::string& path, Value** out_value) { 602 bool DictionaryValue::Remove(const std::string& path, Value** out_value) {
599 DCHECK(IsStringUTF8(path)); 603 DCHECK(IsStringUTF8(path));
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
792 796
793 if (out_value) 797 if (out_value)
794 *out_value = static_cast<DictionaryValue*>(value); 798 *out_value = static_cast<DictionaryValue*>(value);
795 799
796 return true; 800 return true;
797 } 801 }
798 802
799 bool ListValue::GetList(size_t index, ListValue** out_value) const { 803 bool ListValue::GetList(size_t index, ListValue** out_value) const {
800 Value* value; 804 Value* value;
801 bool result = Get(index, &value); 805 bool result = Get(index, &value);
802 if (!result || !value->IsType(TYPE_LIST)) 806 if (!result || !value->AsList())
803 return false; 807 return false;
804 808
805 if (out_value) 809 if (out_value)
806 *out_value = static_cast<ListValue*>(value); 810 *out_value = static_cast<ListValue*>(value);
807 811
808 return true; 812 return true;
809 } 813 }
810 814
811 bool ListValue::Remove(size_t index, Value** out_value) { 815 bool ListValue::Remove(size_t index, Value** out_value) {
812 if (index >= list_.size()) 816 if (index >= list_.size())
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
855 859
856 bool ListValue::Insert(size_t index, Value* in_value) { 860 bool ListValue::Insert(size_t index, Value* in_value) {
857 DCHECK(in_value); 861 DCHECK(in_value);
858 if (index > list_.size()) 862 if (index > list_.size())
859 return false; 863 return false;
860 864
861 list_.insert(list_.begin() + index, in_value); 865 list_.insert(list_.begin() + index, in_value);
862 return true; 866 return true;
863 } 867 }
864 868
869 ListValue* ListValue::AsList() {
870 return this;
871 }
872
865 bool ListValue::GetAsList(ListValue** out_value) { 873 bool ListValue::GetAsList(ListValue** out_value) {
866 if (out_value) 874 if (out_value)
867 *out_value = this; 875 *out_value = this;
868 return true; 876 return true;
869 } 877 }
870 878
871 bool ListValue::GetAsList(const ListValue** out_value) const { 879 bool ListValue::GetAsList(const ListValue** out_value) const {
872 if (out_value) 880 if (out_value)
873 *out_value = this; 881 *out_value = this;
874 return true; 882 return true;
(...skipping 24 matching lines...) Expand all
899 if (lhs_it != end() || rhs_it != other_list->end()) 907 if (lhs_it != end() || rhs_it != other_list->end())
900 return false; 908 return false;
901 909
902 return true; 910 return true;
903 } 911 }
904 912
905 ValueSerializer::~ValueSerializer() { 913 ValueSerializer::~ValueSerializer() {
906 } 914 }
907 915
908 } // namespace base 916 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698