1a69a01cdSopenharmony_ci/* 2a69a01cdSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 3a69a01cdSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4a69a01cdSopenharmony_ci * you may not use this file except in compliance with the License. 5a69a01cdSopenharmony_ci * You may obtain a copy of the License at 6a69a01cdSopenharmony_ci * 7a69a01cdSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8a69a01cdSopenharmony_ci * 9a69a01cdSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10a69a01cdSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11a69a01cdSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12a69a01cdSopenharmony_ci * See the License for the specific language governing permissions and 13a69a01cdSopenharmony_ci * limitations under the License. 14a69a01cdSopenharmony_ci */ 15a69a01cdSopenharmony_ci 16a69a01cdSopenharmony_ci#include "format_csv.h" 17a69a01cdSopenharmony_ci 18a69a01cdSopenharmony_ci#include <iomanip> 19a69a01cdSopenharmony_ci#include <sstream> 20a69a01cdSopenharmony_ci 21a69a01cdSopenharmony_cinamespace OHOS { 22a69a01cdSopenharmony_cinamespace WuKong { 23a69a01cdSopenharmony_ciFormatCSV::FormatCSV() : Format() 24a69a01cdSopenharmony_ci{ 25a69a01cdSopenharmony_ci} 26a69a01cdSopenharmony_ci 27a69a01cdSopenharmony_ciFormatCSV::~FormatCSV() 28a69a01cdSopenharmony_ci{ 29a69a01cdSopenharmony_ci} 30a69a01cdSopenharmony_ci 31a69a01cdSopenharmony_civoid FormatCSV::FormatDetail(std::shared_ptr<Table> tablePtr, std::string &target) 32a69a01cdSopenharmony_ci{ 33a69a01cdSopenharmony_ci std::vector<std::string> header = tablePtr->GetHeader(); 34a69a01cdSopenharmony_ci std::vector<std::vector<std::string>> record = tablePtr->GetRecord(); 35a69a01cdSopenharmony_ci std::vector<int> column_size_ = tablePtr->GetColumnSize(); 36a69a01cdSopenharmony_ci std::stringstream ss; 37a69a01cdSopenharmony_ci 38a69a01cdSopenharmony_ci ss << "name, " << tablePtr->GetName() << ", detail, " << tablePtr->GetDetail() << std::endl; 39a69a01cdSopenharmony_ci for (uint32_t col = 0; col < header.size(); col++) { 40a69a01cdSopenharmony_ci ss << std::setw(column_size_[col]) << std::setiosflags(std::ios::left) << std::setfill(' ') << header[col]; 41a69a01cdSopenharmony_ci if (col == (header.size() - 1)) { 42a69a01cdSopenharmony_ci break; 43a69a01cdSopenharmony_ci } 44a69a01cdSopenharmony_ci ss << ','; 45a69a01cdSopenharmony_ci } 46a69a01cdSopenharmony_ci ss << std::endl; 47a69a01cdSopenharmony_ci 48a69a01cdSopenharmony_ci for (uint32_t row = 0; row < record.size(); row++) { 49a69a01cdSopenharmony_ci for (uint32_t col = 0; col < header.size(); col++) { 50a69a01cdSopenharmony_ci ss << std::setw(column_size_[col]) << std::setiosflags(std::ios::left) << std::setfill(' '); 51a69a01cdSopenharmony_ci ss << record[row][col]; 52a69a01cdSopenharmony_ci if (col == (header.size() - 1)) { 53a69a01cdSopenharmony_ci break; 54a69a01cdSopenharmony_ci } 55a69a01cdSopenharmony_ci ss << ','; 56a69a01cdSopenharmony_ci } 57a69a01cdSopenharmony_ci ss << std::endl; 58a69a01cdSopenharmony_ci } 59a69a01cdSopenharmony_ci target += ss.str(); 60a69a01cdSopenharmony_ci} 61a69a01cdSopenharmony_ci} // namespace WuKong 62a69a01cdSopenharmony_ci} // namespace OHOS 63