data string
| 216 | |
| 217 | // data string |
| 218 | class AFNodeString final : public AFINode |
| 219 | { |
| 220 | public: |
| 221 | explicit AFNodeString(std::shared_ptr<AFNodeMeta> pDataMeta) |
| 222 | { |
| 223 | data_meta_ = pDataMeta; |
| 224 | } |
| 225 | |
| 226 | ~AFNodeString() override = default; |
| 227 | |
| 228 | ArkDataType GetType() const override |
| 229 | { |
| 230 | ARK_ASSERT_RET_VAL(data_meta_ != nullptr, ArkDataType::DT_EMPTY); |
| 231 | return data_meta_->GetType(); |
| 232 | } |
| 233 | |
| 234 | void Reset() override |
| 235 | { |
| 236 | data_ = NULL_STR; |
| 237 | } |
| 238 | |
| 239 | bool IsNull() const override |
| 240 | { |
| 241 | return data_.empty(); |
| 242 | } |
| 243 | |
| 244 | void CopyFrom(AFINode* other) override |
| 245 | { |
| 246 | ARK_ASSERT_RET_NONE(data_meta_ != nullptr && other != nullptr); |
| 247 | ARK_ASSERT_RET_NONE(data_meta_->GetType() == other->GetType()); |
| 248 | |
| 249 | SetString(other->GetString()); |
| 250 | } |
| 251 | |
| 252 | void SaveTo(AFINode* other) override |
| 253 | { |
| 254 | ARK_ASSERT_RET_NONE(data_meta_ != nullptr && other != nullptr); |
| 255 | ARK_ASSERT_RET_NONE(data_meta_->GetType() == other->GetType()); |
| 256 | |
| 257 | other->SetString(GetString()); |
| 258 | } |
| 259 | |
| 260 | const std::string& GetString() const override |
| 261 | { |
| 262 | return data_; |
| 263 | } |
| 264 | |
| 265 | void SetString(const std::string& value) override |
| 266 | { |
| 267 | data_ = value; |
| 268 | } |
| 269 | |
| 270 | std::string ToString() const override |
| 271 | { |
| 272 | return data_; |
| 273 | } |
| 274 | |
| 275 | void FromString(const std::string& value) override |