1 // Copyright (C) 2019 The Android Open Source Project
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //      http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #include "repr/json/converter.h"
16 
17 
18 namespace header_checker {
19 namespace repr {
20 
21 
22 const JsonArray json_empty_array;
23 const JsonObject json_empty_object;
24 const Json::Value json_0(0);
25 const Json::Value json_false(false);
26 const Json::Value json_empty_string("");
27 
28 
29 const AccessSpecifierIR default_access_ir = AccessSpecifierIR::PublicAccess;
30 
31 const RecordTypeIR::RecordKind default_record_kind_ir =
32     RecordTypeIR::RecordKind::struct_kind;
33 
34 const VTableComponentIR::Kind default_vtable_component_kind_ir =
35     VTableComponentIR::Kind::FunctionPointer;
36 
37 const ElfSymbolIR::ElfSymbolBinding default_elf_symbol_binding_ir =
38     ElfSymbolIR::ElfSymbolBinding::Global;
39 
40 
Set(const std::string & key,bool value)41 void JsonObject::Set(const std::string &key, bool value) {
42   SetOmissible(key, value, false);
43 }
44 
45 
Set(const std::string & key,uint64_t value)46 void JsonObject::Set(const std::string &key, uint64_t value) {
47   SetOmissible<Json::UInt64>(key, value, 0);
48 }
49 
50 
Set(const std::string & key,int64_t value)51 void JsonObject::Set(const std::string &key, int64_t value) {
52   SetOmissible<Json::Int64>(key, value, 0);
53 }
54 
55 
Set(const std::string & key,const std::string & value)56 void JsonObject::Set(const std::string &key, const std::string &value) {
57   SetOmissible<const std::string &>(key, value, "");
58 }
59 
60 
Set(const std::string & key,const JsonArray & value)61 void JsonObject::Set(const std::string &key, const JsonArray &value) {
62   SetOmissible(key, value, json_empty_array);
63 }
64 
65 
66 }  // namespace repr
67 }  // header_checker
68