/* * Copyright (c) 2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "text.h" namespace OHOS { namespace UDMF { Text::Text() : UnifiedRecord(TEXT) { } Text::Text(UDDetails &variantMap) : UnifiedRecord(TEXT) { this->details_ = variantMap; } Text::Text(UDType type, ValueType value) : UnifiedRecord(type, value) { SetType(TEXT); if (std::holds_alternative>(value)) { auto object = std::get>(value); std::shared_ptr detailObj = nullptr; if (object->GetValue(DETAILS, detailObj)) { details_ = ObjectUtils::ConvertToUDDetails(detailObj); } hasObject_ = true; } } int64_t Text::GetSize() { return UnifiedDataUtils::GetDetailsSize(this->details_); } void Text::SetDetails(UDDetails &variantMap) { this->details_ = variantMap; if (std::holds_alternative>(value_)) { std::get>(value_)->value_[DETAILS] = ObjectUtils::ConvertToObject(details_); } } UDDetails Text::GetDetails() const { return this->details_; } void Text::InitObject() { if (!std::holds_alternative>(value_)) { auto value = value_; value_ = std::make_shared(); auto object = std::get>(value_); object->value_[DETAILS] = ObjectUtils::ConvertToObject(details_); object->value_["VALUE_TYPE"] = value; } } } // namespace UDMF } // namespace OHOS