1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "extensions/common/value_builder.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace extensions { 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// DictionaryBuilder 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)DictionaryBuilder::DictionaryBuilder() : dict_(new base::DictionaryValue) {} 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)DictionaryBuilder::DictionaryBuilder(const base::DictionaryValue& init) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : dict_(init.DeepCopy()) {} 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DictionaryBuilder::~DictionaryBuilder() {} 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DictionaryBuilder& DictionaryBuilder::Set(const std::string& path, 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int in_value) { 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) dict_->SetWithoutPathExpansion(path, new base::FundamentalValue(in_value)); 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return *this; 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DictionaryBuilder& DictionaryBuilder::Set(const std::string& path, 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) double in_value) { 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) dict_->SetWithoutPathExpansion(path, new base::FundamentalValue(in_value)); 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return *this; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DictionaryBuilder& DictionaryBuilder::Set(const std::string& path, 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& in_value) { 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) dict_->SetWithoutPathExpansion(path, new base::StringValue(in_value)); 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return *this; 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DictionaryBuilder& DictionaryBuilder::Set(const std::string& path, 375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const base::string16& in_value) { 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) dict_->SetWithoutPathExpansion(path, new base::StringValue(in_value)); 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return *this; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DictionaryBuilder& DictionaryBuilder::Set(const std::string& path, 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DictionaryBuilder& in_value) { 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict_->SetWithoutPathExpansion(path, in_value.Build().release()); 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return *this; 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DictionaryBuilder& DictionaryBuilder::Set(const std::string& path, 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ListBuilder& in_value) { 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dict_->SetWithoutPathExpansion(path, in_value.Build().release()); 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return *this; 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DictionaryBuilder& DictionaryBuilder::SetBoolean( 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& path, bool in_value) { 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) dict_->SetWithoutPathExpansion(path, new base::FundamentalValue(in_value)); 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return *this; 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// ListBuilder 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 627d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)ListBuilder::ListBuilder() : list_(new base::ListValue) {} 637d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)ListBuilder::ListBuilder(const base::ListValue& init) : list_(init.DeepCopy()) { 647d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ListBuilder::~ListBuilder() {} 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ListBuilder& ListBuilder::Append(int in_value) { 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) list_->Append(new base::FundamentalValue(in_value)); 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return *this; 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ListBuilder& ListBuilder::Append(double in_value) { 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) list_->Append(new base::FundamentalValue(in_value)); 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return *this; 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ListBuilder& ListBuilder::Append(const std::string& in_value) { 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) list_->Append(new base::StringValue(in_value)); 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return *this; 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)ListBuilder& ListBuilder::Append(const base::string16& in_value) { 832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) list_->Append(new base::StringValue(in_value)); 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return *this; 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ListBuilder& ListBuilder::Append(DictionaryBuilder& in_value) { 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) list_->Append(in_value.Build().release()); 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return *this; 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ListBuilder& ListBuilder::Append(ListBuilder& in_value) { 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) list_->Append(in_value.Build().release()); 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return *this; 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ListBuilder& ListBuilder::AppendBoolean(bool in_value) { 982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) list_->Append(new base::FundamentalValue(in_value)); 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return *this; 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace extensions 103