* Copyright (c) Huawei Technologies Co., Ltd. 2025. All rights reserved.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
*/
#include "KeyFieldInfoPOD.h"
#include <sstream>
namespace omnistream {
KeyFieldInfoPOD::KeyFieldInfoPOD() : fieldIndex(0)
{
}
KeyFieldInfoPOD::KeyFieldInfoPOD(const std::string& fieldName, const std::string& fieldTypeName, int fieldIndex)
: fieldName(fieldName),
fieldTypeName(fieldTypeName),
fieldIndex(fieldIndex)
{
}
std::string KeyFieldInfoPOD::getFieldName() const
{
return fieldName;
}
std::string KeyFieldInfoPOD::getFieldTypeName() const
{
return fieldTypeName;
}
int KeyFieldInfoPOD::getFieldIndex() const
{
return fieldIndex;
}
void KeyFieldInfoPOD::setFieldName(const std::string& fieldName_)
{
this->fieldName = fieldName_;
}
void KeyFieldInfoPOD::setFieldTypeName(const std::string& fieldTypeName_)
{
this->fieldTypeName = fieldTypeName_;
}
void KeyFieldInfoPOD::setFieldIndex(int fieldIndex_)
{
this->fieldIndex = fieldIndex_;
}
std::string KeyFieldInfoPOD::toString() const
{
std::stringstream ss;
ss << "FieldInfo{"
<< "fieldName='" << fieldName << '\'' << ", fieldTypeName='" << fieldTypeName << '\''
<< ", fieldIndex=" << fieldIndex << '}';
return ss.str();
}
}
*
// main.cpp (Example Usage)
#include <iostream>
#include <fstream>
#include <nlohmann/json.hpp>
#include "keyfieldinfopojo.h"
int main() {
demo::KeyFieldInfoPOJO myField("exampleField", "java.lang.String", 0);
// Serialization to JSON string
nlohmann::json j = myField; // Implicitly uses the intrusive serialization
std::string jsonString = j.dump(4);
std::cout << "JSON string:\n" << jsonString << std::endl;
// Serialization to JSON file
std::ofstream outfile("myfield.json");
outfile << j;
outfile.close();
// Deserialization from JSON string
demo::KeyFieldInfoPOJO myField2 = nlohmann::json::parse(jsonString); // Implicitly uses the intrusive
deserialization
std::cout << "\nDeserialized object:\n" << myField2.toString() << std::endl;
// Deserialization from JSON file
std::ifstream infile("myfield.json");
nlohmann::json j3;
infile >> j3;
infile.close();
demo::KeyFieldInfoPOJO myField3 = j3; // Implicitly uses the intrusive deserialization
std::cout << "\nDeserialized from file:\n" << myField3.toString() << std::endl;
return 0;
}
*/