1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
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
16 #include "ohos_nweb/bridge/ark_web_hap_value_impl.h"
17
18 #include "ohos_nweb/cpptoc/ark_web_hap_value_vector_cpptoc.h"
19
20 #include "base/bridge/ark_web_bridge_macros.h"
21
22 namespace OHOS::ArkWeb {
23
24 using ArkWebHapValueType = OHOS::NWeb::NWebHapValue::Type;
25
ArkWebHapValueImpl(std::shared_ptr<OHOS::NWeb::NWebHapValue> nweb_hap_value)26 ArkWebHapValueImpl::ArkWebHapValueImpl(std::shared_ptr<OHOS::NWeb::NWebHapValue> nweb_hap_value)
27 : nweb_hap_value_(nweb_hap_value)
28 {}
29
GetType()30 unsigned char ArkWebHapValueImpl::GetType()
31 {
32 return static_cast<unsigned char>(nweb_hap_value_->GetType());
33 }
34
SetType(unsigned char type)35 void ArkWebHapValueImpl::SetType(unsigned char type)
36 {
37 nweb_hap_value_->SetType(static_cast<ArkWebHapValueType>(type));
38 }
39
GetInt()40 int ArkWebHapValueImpl::GetInt()
41 {
42 return nweb_hap_value_->GetInt();
43 }
44
SetInt(int value)45 void ArkWebHapValueImpl::SetInt(int value)
46 {
47 nweb_hap_value_->SetInt(value);
48 }
49
GetBool()50 bool ArkWebHapValueImpl::GetBool()
51 {
52 return nweb_hap_value_->GetBool();
53 }
54
SetBool(bool value)55 void ArkWebHapValueImpl::SetBool(bool value)
56 {
57 nweb_hap_value_->SetBool(value);
58 }
59
GetDouble()60 double ArkWebHapValueImpl::GetDouble()
61 {
62 return nweb_hap_value_->GetDouble();
63 }
64
SetDouble(double value)65 void ArkWebHapValueImpl::SetDouble(double value)
66 {
67 nweb_hap_value_->SetDouble(value);
68 }
69
GetString()70 ArkWebString ArkWebHapValueImpl::GetString()
71 {
72 return ArkWebStringClassToStruct(nweb_hap_value_->GetString());
73 }
74
SetString(const ArkWebString & value)75 void ArkWebHapValueImpl::SetString(const ArkWebString& value)
76 {
77 nweb_hap_value_->SetString(ArkWebStringStructToClass(value));
78 }
79
GetBinary(int & length)80 const char* ArkWebHapValueImpl::GetBinary(int& length)
81 {
82 return nweb_hap_value_->GetBinary(length);
83 }
84
SetBinary(int length,const char * value)85 void ArkWebHapValueImpl::SetBinary(int length, const char* value)
86 {
87 nweb_hap_value_->SetBinary(length, value);
88 }
89
GetDictValue()90 ArkWebHapValueMap ArkWebHapValueImpl::GetDictValue()
91 {
92 return ArkWebHapValueMapClassToStruct(nweb_hap_value_->GetDictValue());
93 }
94
GetListValue()95 ArkWebHapValueVector ArkWebHapValueImpl::GetListValue()
96 {
97 return ArkWebHapValueVectorClassToStruct(nweb_hap_value_->GetListValue());
98 }
99
NewChildValue()100 ArkWebRefPtr<ArkWebHapValue> ArkWebHapValueImpl::NewChildValue()
101 {
102 std::shared_ptr<OHOS::NWeb::NWebHapValue> nweb_hap_value = nweb_hap_value_->NewChildValue();
103 if (CHECK_SHARED_PTR_IS_NULL(nweb_hap_value)) {
104 return nullptr;
105 }
106
107 return new ArkWebHapValueImpl(nweb_hap_value);
108 }
109
SaveDictChildValue(const ArkWebString & key)110 void ArkWebHapValueImpl::SaveDictChildValue(const ArkWebString& key)
111 {
112 nweb_hap_value_->SaveDictChildValue(ArkWebStringStructToClass(key));
113 }
114
SaveListChildValue()115 void ArkWebHapValueImpl::SaveListChildValue()
116 {
117 nweb_hap_value_->SaveListChildValue();
118 }
119
GetInt64()120 int64_t ArkWebHapValueImpl::GetInt64()
121 {
122 return nweb_hap_value_->GetInt64();
123 }
124
SetInt64(int64_t value)125 void ArkWebHapValueImpl::SetInt64(int64_t value)
126 {
127 nweb_hap_value_->SetInt64(value);
128 }
129
GetBinary()130 ArkWebUint8Vector ArkWebHapValueImpl::GetBinary()
131 {
132 return ArkWebBasicVectorClassToStruct<uint8_t, ArkWebUint8Vector>(nweb_hap_value_->GetBinary());
133 }
134
SetBinary(const ArkWebUint8Vector & value)135 void ArkWebHapValueImpl::SetBinary(const ArkWebUint8Vector& value)
136 {
137 nweb_hap_value_->SetBinary(ArkWebBasicVectorStructToClass<uint8_t, ArkWebUint8Vector>(value));
138 }
139
GetBoolArray()140 ArkWebBooleanVector ArkWebHapValueImpl::GetBoolArray()
141 {
142 return ArkWebBasicVectorClassToStruct<bool, ArkWebBooleanVector>(nweb_hap_value_->GetBoolArray());
143 }
144
SetBoolArray(const ArkWebBooleanVector & value)145 void ArkWebHapValueImpl::SetBoolArray(const ArkWebBooleanVector& value)
146 {
147 nweb_hap_value_->SetBoolArray(ArkWebBasicVectorStructToClass<bool, ArkWebBooleanVector>(value));
148 }
149
GetInt64Array()150 ArkWebInt64Vector ArkWebHapValueImpl::GetInt64Array()
151 {
152 return ArkWebBasicVectorClassToStruct<int64_t, ArkWebInt64Vector>(nweb_hap_value_->GetInt64Array());
153 }
154
SetInt64Array(const ArkWebInt64Vector & value)155 void ArkWebHapValueImpl::SetInt64Array(const ArkWebInt64Vector& value)
156 {
157 nweb_hap_value_->SetInt64Array(ArkWebBasicVectorStructToClass<int64_t, ArkWebInt64Vector>(value));
158 }
159
GetDoubleArray()160 ArkWebDoubleVector ArkWebHapValueImpl::GetDoubleArray()
161 {
162 return ArkWebBasicVectorClassToStruct<double, ArkWebDoubleVector>(nweb_hap_value_->GetDoubleArray());
163 }
164
SetDoubleArray(const ArkWebDoubleVector & value)165 void ArkWebHapValueImpl::SetDoubleArray(const ArkWebDoubleVector& value)
166 {
167 nweb_hap_value_->SetDoubleArray(ArkWebBasicVectorStructToClass<double, ArkWebDoubleVector>(value));
168 }
169
GetStringArray()170 ArkWebStringVector ArkWebHapValueImpl::GetStringArray()
171 {
172 return ArkWebStringVectorClassToStruct(nweb_hap_value_->GetStringArray());
173 }
174
SetStringArray(const ArkWebStringVector & value)175 void ArkWebHapValueImpl::SetStringArray(const ArkWebStringVector& value)
176 {
177 nweb_hap_value_->SetStringArray(ArkWebStringVectorStructToClass(value));
178 }
179
GetErrMsg()180 ArkWebString ArkWebHapValueImpl::GetErrMsg()
181 {
182 return ArkWebStringClassToStruct(nweb_hap_value_->GetErrMsg());
183 }
184
SetErrMsg(const ArkWebString & msg)185 void ArkWebHapValueImpl::SetErrMsg(const ArkWebString& msg)
186 {
187 nweb_hap_value_->SetErrMsg(ArkWebStringStructToClass(msg));
188 }
189
GetErrName()190 ArkWebString ArkWebHapValueImpl::GetErrName()
191 {
192 return ArkWebStringClassToStruct(nweb_hap_value_->GetErrName());
193 }
194
SetErrName(const ArkWebString & name)195 void ArkWebHapValueImpl::SetErrName(const ArkWebString& name)
196 {
197 nweb_hap_value_->SetErrName(ArkWebStringStructToClass(name));
198 }
199
200 } // namespace OHOS::ArkWeb
201