Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

IDataMerger.h

Go to the documentation of this file.
00001 /**
00002 * @file         IDataMerger.h
00003 * @brief    差し込み印刷インタフェース
00004 *
00005 * @author       Nakashima h
00006 * @date     2021-10-06
00007 *
00008 * $Id: IDataMerger.h 32 2022-07-14 03:20:43Z shingo.yoneda $
00009 *
00010 * Copyright (c) 2020-2022 Antenna House, Inc. All rights reserved.
00011 */
00012 
00013 #pragma once
00014 #include <queue>
00015 #include <memory>
00016 
00017 #include "SimpleTypeParameter.h"
00018 #include "CompoundTypeParameter.h"
00019 #include "NestedTableTypeParameter.h"
00020 
00021 /**
00022 * @brief    差し込み印刷インタフェース
00023 */
00024 class IDataMerger {
00025 protected:
00026     /**
00027     * @brief    デフォルトコンストラクタ
00028     */
00029     IDataMerger() = default;
00030 
00031     /**
00032     * @brief    コピーコンストラクタ
00033     */
00034     IDataMerger(const IDataMerger&) = delete;
00035     /**
00036     * @brief    コピー代入演算子
00037     */
00038     IDataMerger& operator=(const IDataMerger&) = delete;
00039 
00040     /**
00041     * @brief    ムーブコンストラクタ
00042     */
00043     IDataMerger(IDataMerger&&) = delete;
00044     /**
00045     * @brief    ムーブ代入演算子
00046     */
00047     IDataMerger& operator=(IDataMerger&&) = delete;
00048 
00049 public:
00050 
00051     /**
00052     * @brief    デストラクタ
00053     */
00054     virtual ~IDataMerger() = default;
00055 
00056     /**
00057     * @brief    差し込み印刷フィールド名の一覧を取得
00058     * @param    input_param - 入力パラメータ
00059     * @return 差し込み印刷フィールド名の一覧
00060     */
00061     virtual std::vector<std::string> getDataMergeFields(InputParam const& input_param) = 0;
00062 
00063     /**
00064     * @brief    シンプル版の差し込み印刷を実行するオブジェクトを生成する
00065     * @param    simple_type_parameter - シンプル版の差し込み印刷に使用するパラメータ
00066     * @return シンプル版の差し込み印刷を実行するオブジェクト
00067     */
00068     static std::unique_ptr<IDataMerger> create(SimpleTypeParameter simple_type_parameter);
00069 
00070     /**
00071     * @brief    複合版の差し込み印刷を実行するオブジェクトを生成する
00072     * @param    compound_type_parameter - 複合版の差し込み印刷に使用するパラメータ
00073     * @return 複合版の差し込み印刷を実行するオブジェクト
00074     */
00075     static std::unique_ptr<IDataMerger> create(CompoundTypeParameter compound_type_parameter);
00076 
00077     /**
00078     * @brief    ネスト構造のテーブル版の差し込み印刷を実行するオブジェクトを生成する
00079     * @param    nested_table_type_parameter - ネスト構造のテーブル版の差し込み印刷に使用するパラメータ
00080     * @return ネスト構造のテーブル版の差し込み印刷を実行するオブジェクト
00081     */
00082     static std::unique_ptr<IDataMerger> create(NestedTableTypeParameter nested_table_type_parameter);
00083 
00084     /**
00085     * @brief    テンプレートへの差し込み印刷を実行
00086     * @param    input_param - 入力パラメータ
00087     * @param    output_param - 出力パラメータ
00088     */
00089     virtual void execute(InputParam const& input_param, OutputParam const& output_param) = 0;
00090 };

Generated on 19 Jan 2023 for Word API C/C++ Interface by Doxygen 1.3-rc2