1fc223305Sopenharmony_ci/* 2fc223305Sopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd. 3fc223305Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4fc223305Sopenharmony_ci * you may not use this file except in compliance with the License. 5fc223305Sopenharmony_ci * You may obtain a copy of the License at 6fc223305Sopenharmony_ci * 7fc223305Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8fc223305Sopenharmony_ci * 9fc223305Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10fc223305Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11fc223305Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12fc223305Sopenharmony_ci * See the License for the specific language governing permissions and 13fc223305Sopenharmony_ci * limitations under the License. 14fc223305Sopenharmony_ci */ 15fc223305Sopenharmony_ci 16fc223305Sopenharmony_ci#include "preferences_value.h" 17fc223305Sopenharmony_ci 18fc223305Sopenharmony_cinamespace OHOS { 19fc223305Sopenharmony_cinamespace NativePreferences { 20fc223305Sopenharmony_ciPreferencesValue::PreferencesValue(const PreferencesValue &preferencesValue) 21fc223305Sopenharmony_ci{ 22fc223305Sopenharmony_ci if (this == &preferencesValue) { 23fc223305Sopenharmony_ci return; 24fc223305Sopenharmony_ci } 25fc223305Sopenharmony_ci value_ = preferencesValue.value_; 26fc223305Sopenharmony_ci} 27fc223305Sopenharmony_ci 28fc223305Sopenharmony_ciPreferencesValue::PreferencesValue(PreferencesValue &&preferencesValue) noexcept 29fc223305Sopenharmony_ci{ 30fc223305Sopenharmony_ci if (this == &preferencesValue) { 31fc223305Sopenharmony_ci return; 32fc223305Sopenharmony_ci } 33fc223305Sopenharmony_ci value_ = std::move(preferencesValue.value_); 34fc223305Sopenharmony_ci} 35fc223305Sopenharmony_ci 36fc223305Sopenharmony_ciPreferencesValue::PreferencesValue(int value) 37fc223305Sopenharmony_ci{ 38fc223305Sopenharmony_ci value_ = value; 39fc223305Sopenharmony_ci} 40fc223305Sopenharmony_ci 41fc223305Sopenharmony_ciPreferencesValue::PreferencesValue(int64_t value) 42fc223305Sopenharmony_ci{ 43fc223305Sopenharmony_ci value_ = value; 44fc223305Sopenharmony_ci} 45fc223305Sopenharmony_ci 46fc223305Sopenharmony_ciPreferencesValue::PreferencesValue(float value) 47fc223305Sopenharmony_ci{ 48fc223305Sopenharmony_ci value_ = value; 49fc223305Sopenharmony_ci} 50fc223305Sopenharmony_ci 51fc223305Sopenharmony_ciPreferencesValue::PreferencesValue(double value) 52fc223305Sopenharmony_ci{ 53fc223305Sopenharmony_ci value_ = value; 54fc223305Sopenharmony_ci} 55fc223305Sopenharmony_ci 56fc223305Sopenharmony_ciPreferencesValue::PreferencesValue(bool value) 57fc223305Sopenharmony_ci{ 58fc223305Sopenharmony_ci value_ = value; 59fc223305Sopenharmony_ci} 60fc223305Sopenharmony_ci 61fc223305Sopenharmony_ciPreferencesValue::PreferencesValue(const char *value) 62fc223305Sopenharmony_ci{ 63fc223305Sopenharmony_ci value_ = std::string(value); 64fc223305Sopenharmony_ci} 65fc223305Sopenharmony_ci 66fc223305Sopenharmony_ciPreferencesValue::PreferencesValue(std::string value) 67fc223305Sopenharmony_ci{ 68fc223305Sopenharmony_ci value_ = value; 69fc223305Sopenharmony_ci} 70fc223305Sopenharmony_ci 71fc223305Sopenharmony_ciPreferencesValue::PreferencesValue(std::vector<double> value) 72fc223305Sopenharmony_ci{ 73fc223305Sopenharmony_ci value_ = value; 74fc223305Sopenharmony_ci} 75fc223305Sopenharmony_ci 76fc223305Sopenharmony_ciPreferencesValue::PreferencesValue(std::vector<std::string> value) 77fc223305Sopenharmony_ci{ 78fc223305Sopenharmony_ci value_ = value; 79fc223305Sopenharmony_ci} 80fc223305Sopenharmony_ci 81fc223305Sopenharmony_ciPreferencesValue::PreferencesValue(std::vector<bool> value) 82fc223305Sopenharmony_ci{ 83fc223305Sopenharmony_ci value_ = value; 84fc223305Sopenharmony_ci} 85fc223305Sopenharmony_ci 86fc223305Sopenharmony_ciPreferencesValue::PreferencesValue(std::vector<uint8_t> value) 87fc223305Sopenharmony_ci{ 88fc223305Sopenharmony_ci value_ = value; 89fc223305Sopenharmony_ci} 90fc223305Sopenharmony_ci 91fc223305Sopenharmony_ciPreferencesValue::PreferencesValue(Object value) 92fc223305Sopenharmony_ci{ 93fc223305Sopenharmony_ci value_ = value; 94fc223305Sopenharmony_ci} 95fc223305Sopenharmony_ci 96fc223305Sopenharmony_ciPreferencesValue::PreferencesValue(BigInt value) 97fc223305Sopenharmony_ci{ 98fc223305Sopenharmony_ci value_ = value; 99fc223305Sopenharmony_ci} 100fc223305Sopenharmony_ci 101fc223305Sopenharmony_ciPreferencesValue &PreferencesValue::operator=(PreferencesValue &&preferencesValue) noexcept 102fc223305Sopenharmony_ci{ 103fc223305Sopenharmony_ci if (this == &preferencesValue) { 104fc223305Sopenharmony_ci return *this; 105fc223305Sopenharmony_ci } 106fc223305Sopenharmony_ci value_ = std::move(preferencesValue.value_); 107fc223305Sopenharmony_ci return *this; 108fc223305Sopenharmony_ci} 109fc223305Sopenharmony_ci 110fc223305Sopenharmony_ciPreferencesValue &PreferencesValue::operator=(const PreferencesValue &preferencesValue) 111fc223305Sopenharmony_ci{ 112fc223305Sopenharmony_ci if (this == &preferencesValue) { 113fc223305Sopenharmony_ci return *this; 114fc223305Sopenharmony_ci } 115fc223305Sopenharmony_ci value_ = preferencesValue.value_; 116fc223305Sopenharmony_ci return *this; 117fc223305Sopenharmony_ci} 118fc223305Sopenharmony_ci 119fc223305Sopenharmony_cibool PreferencesValue::IsInt() const 120fc223305Sopenharmony_ci{ 121fc223305Sopenharmony_ci return std::holds_alternative<int>(value_); 122fc223305Sopenharmony_ci} 123fc223305Sopenharmony_ci 124fc223305Sopenharmony_cibool PreferencesValue::IsLong() const 125fc223305Sopenharmony_ci{ 126fc223305Sopenharmony_ci return std::holds_alternative<int64_t>(value_); 127fc223305Sopenharmony_ci} 128fc223305Sopenharmony_ci 129fc223305Sopenharmony_cibool PreferencesValue::IsFloat() const 130fc223305Sopenharmony_ci{ 131fc223305Sopenharmony_ci return std::holds_alternative<float>(value_); 132fc223305Sopenharmony_ci} 133fc223305Sopenharmony_ci 134fc223305Sopenharmony_cibool PreferencesValue::IsDouble() const 135fc223305Sopenharmony_ci{ 136fc223305Sopenharmony_ci return std::holds_alternative<double>(value_); 137fc223305Sopenharmony_ci} 138fc223305Sopenharmony_ci 139fc223305Sopenharmony_cibool PreferencesValue::IsBool() const 140fc223305Sopenharmony_ci{ 141fc223305Sopenharmony_ci return std::holds_alternative<bool>(value_); 142fc223305Sopenharmony_ci} 143fc223305Sopenharmony_ci 144fc223305Sopenharmony_cibool PreferencesValue::IsString() const 145fc223305Sopenharmony_ci{ 146fc223305Sopenharmony_ci return std::holds_alternative<std::string>(value_); 147fc223305Sopenharmony_ci} 148fc223305Sopenharmony_ci 149fc223305Sopenharmony_cibool PreferencesValue::IsDoubleArray() const 150fc223305Sopenharmony_ci{ 151fc223305Sopenharmony_ci return std::holds_alternative<std::vector<double>>(value_); 152fc223305Sopenharmony_ci} 153fc223305Sopenharmony_ci 154fc223305Sopenharmony_cibool PreferencesValue::IsUint8Array() const 155fc223305Sopenharmony_ci{ 156fc223305Sopenharmony_ci return std::holds_alternative<std::vector<uint8_t>>(value_); 157fc223305Sopenharmony_ci} 158fc223305Sopenharmony_ci 159fc223305Sopenharmony_cibool PreferencesValue::IsObject() const 160fc223305Sopenharmony_ci{ 161fc223305Sopenharmony_ci return std::holds_alternative<Object>(value_); 162fc223305Sopenharmony_ci} 163fc223305Sopenharmony_ci 164fc223305Sopenharmony_cibool PreferencesValue::IsStringArray() const 165fc223305Sopenharmony_ci{ 166fc223305Sopenharmony_ci return std::holds_alternative<std::vector<std::string>>(value_); 167fc223305Sopenharmony_ci} 168fc223305Sopenharmony_ci 169fc223305Sopenharmony_cibool PreferencesValue::IsBoolArray() const 170fc223305Sopenharmony_ci{ 171fc223305Sopenharmony_ci return std::holds_alternative<std::vector<bool>>(value_); 172fc223305Sopenharmony_ci} 173fc223305Sopenharmony_ci 174fc223305Sopenharmony_cibool PreferencesValue::IsBigInt() const 175fc223305Sopenharmony_ci{ 176fc223305Sopenharmony_ci return std::holds_alternative<BigInt>(value_); 177fc223305Sopenharmony_ci} 178fc223305Sopenharmony_ci 179fc223305Sopenharmony_ciPreferencesValue::operator int() const 180fc223305Sopenharmony_ci{ 181fc223305Sopenharmony_ci return std::get<int>(value_); 182fc223305Sopenharmony_ci} 183fc223305Sopenharmony_ci 184fc223305Sopenharmony_ciPreferencesValue::operator int64_t() const 185fc223305Sopenharmony_ci{ 186fc223305Sopenharmony_ci return std::get<int64_t>(value_); 187fc223305Sopenharmony_ci} 188fc223305Sopenharmony_ci 189fc223305Sopenharmony_ciPreferencesValue::operator float() const 190fc223305Sopenharmony_ci{ 191fc223305Sopenharmony_ci return std::get<float>(value_); 192fc223305Sopenharmony_ci} 193fc223305Sopenharmony_ci 194fc223305Sopenharmony_ciPreferencesValue::operator double() const 195fc223305Sopenharmony_ci{ 196fc223305Sopenharmony_ci return std::get<double>(value_); 197fc223305Sopenharmony_ci} 198fc223305Sopenharmony_ci 199fc223305Sopenharmony_ciPreferencesValue::operator bool() const 200fc223305Sopenharmony_ci{ 201fc223305Sopenharmony_ci return std::get<bool>(value_); 202fc223305Sopenharmony_ci} 203fc223305Sopenharmony_ci 204fc223305Sopenharmony_ciPreferencesValue::operator std::string() const 205fc223305Sopenharmony_ci{ 206fc223305Sopenharmony_ci return std::get<std::string>(value_); 207fc223305Sopenharmony_ci} 208fc223305Sopenharmony_ci 209fc223305Sopenharmony_ciPreferencesValue::operator std::vector<double>() const 210fc223305Sopenharmony_ci{ 211fc223305Sopenharmony_ci return std::get<std::vector<double>>(value_); 212fc223305Sopenharmony_ci} 213fc223305Sopenharmony_ci 214fc223305Sopenharmony_ciPreferencesValue::operator std::vector<bool>() const 215fc223305Sopenharmony_ci{ 216fc223305Sopenharmony_ci return std::get<std::vector<bool>>(value_); 217fc223305Sopenharmony_ci} 218fc223305Sopenharmony_ci 219fc223305Sopenharmony_ciPreferencesValue::operator std::vector<std::string>() const 220fc223305Sopenharmony_ci{ 221fc223305Sopenharmony_ci return std::get<std::vector<std::string>>(value_); 222fc223305Sopenharmony_ci} 223fc223305Sopenharmony_ci 224fc223305Sopenharmony_ciPreferencesValue::operator std::vector<uint8_t>() const 225fc223305Sopenharmony_ci{ 226fc223305Sopenharmony_ci return std::get<std::vector<uint8_t>>(value_); 227fc223305Sopenharmony_ci} 228fc223305Sopenharmony_ci 229fc223305Sopenharmony_ciPreferencesValue::operator Object() const 230fc223305Sopenharmony_ci{ 231fc223305Sopenharmony_ci return std::get<Object>(value_); 232fc223305Sopenharmony_ci} 233fc223305Sopenharmony_ci 234fc223305Sopenharmony_ciPreferencesValue::operator BigInt() const 235fc223305Sopenharmony_ci{ 236fc223305Sopenharmony_ci return std::get<BigInt>(value_); 237fc223305Sopenharmony_ci} 238fc223305Sopenharmony_ci 239fc223305Sopenharmony_cibool PreferencesValue::operator==(const PreferencesValue &value) 240fc223305Sopenharmony_ci{ 241fc223305Sopenharmony_ci return (this->value_ == value.value_); 242fc223305Sopenharmony_ci} 243fc223305Sopenharmony_ci} // End of namespace NativePreferences 244fc223305Sopenharmony_ci} // End of namespace OHOS 245