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    Data-merge interface
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    Data-merge interface
00023 */
00024 class IDataMerger {
00025 protected:
00026     /**
00027     * @brief    Default constructor
00028     */
00029     IDataMerger() = default;
00030 
00031     /**
00032     * @brief    Copy constructor
00033     */
00034     IDataMerger(const IDataMerger&) = delete;
00035     /**
00036     * @brief    Copy assignment operator
00037     */
00038     IDataMerger& operator=(const IDataMerger&) = delete;
00039 
00040     /**
00041     * @brief    Move constructor
00042     */
00043     IDataMerger(IDataMerger&&) = delete;
00044     /**
00045     * @brief    Move assignment operator
00046     */
00047     IDataMerger& operator=(IDataMerger&&) = delete;
00048 
00049 public:
00050 
00051     /**
00052     * @brief    Destructor
00053     */
00054     virtual ~IDataMerger() = default;
00055 
00056     /**
00057     * @brief    Get a list of data-merge field names
00058     * @param    input_param - Input parameter
00059     * @return List of data-merge field names
00060     */
00061     virtual std::vector<std::string> getDataMergeFields(InputParam const& input_param) = 0;
00062 
00063     /**
00064     * @brief    Generate the object that executes the simple type data-merge
00065     * @param    simple_type_parameter - Parameter to use for the simple type data-merge
00066     * @return Object that executes the simple type data-merge
00067     */
00068     static std::unique_ptr<IDataMerger> create(SimpleTypeParameter simple_type_parameter);
00069 
00070     /**
00071     * @brief    Generate the object that executes the compound type data-merge
00072     * @param    compound_type_parameter - Parameter to use for the compound type data-merge
00073     * @return Object that executes the compound type data-merge
00074     */
00075     static std::unique_ptr<IDataMerger> create(CompoundTypeParameter compound_type_parameter);
00076 
00077     /**
00078     * @brief    Generate an object to perform data-merge of a nested table type
00079     * @param    nested_table_type_parameter - Parameters used for data-merge of nested table type
00080     * @return Object to perform data-merge of a nested table type
00081     */
00082     static std::unique_ptr<IDataMerger> create(NestedTableTypeParameter nested_table_type_parameter);
00083 
00084     /**
00085     * @brief    Execute the data-merge to the template
00086     * @param    input_param - Input parameter
00087     * @param    output_param - Output parameter
00088     */
00089     virtual void execute(InputParam const& input_param, OutputParam const& output_param) = 0;
00090 };

Generated on 10 Apr 2023 for Word API C/C++ Interface by Doxygen 1.3-rc2