00001 /** 00002 * @file IDocumentForm.h 00003 * @brief 2つの文書の比較を行うインターフェイス 00004 * 00005 * @author Nakashima h 00006 * @date 2022-02-02 00007 * 00008 * $Id: ICompareDocuments.h 32 2022-07-14 03:20:43Z shingo.yoneda $ 00009 * 00010 * Copyright (c) 2022 Antenna House, Inc. All rights reserved. 00011 */ 00012 00013 #pragma once 00014 #include <queue> 00015 #include <memory> 00016 #include <string> 00017 00018 //#include <AHOOXMLDocxManagerCppCtl/ChangedRatio.h> 00019 #include "ChangedRatio.h" 00020 00021 /** 00022 * @brief 2つの文書の比較を行うクラス 00023 */ 00024 class ICompareDocuments { 00025 protected: 00026 /** 00027 * @brief デフォルトコンストラクタ 00028 */ 00029 ICompareDocuments() = default; 00030 00031 /** 00032 * @brief コピーコンストラクタ 00033 */ 00034 ICompareDocuments(const ICompareDocuments&) = delete; 00035 00036 /** 00037 * @brief コピー代入演算子 00038 */ 00039 ICompareDocuments& operator=(const ICompareDocuments&) = delete; 00040 00041 /** 00042 * @brief ムーブコンストラクタ 00043 */ 00044 ICompareDocuments(ICompareDocuments&&) = delete; 00045 00046 /** 00047 * @brief ムーブ代入演算子 00048 */ 00049 ICompareDocuments& operator=(ICompareDocuments&&) = delete; 00050 00051 public: 00052 /** 00053 * @brief デストラクタ 00054 */ 00055 virtual ~ICompareDocuments() = default; 00056 00057 /** 00058 * @brief 文書の比較を実行するオブジェクトを生成する 00059 */ 00060 static std::unique_ptr<ICompareDocuments> create(); 00061 00062 /** 00063 * @brief 文書の比較を実行する 00064 * @param originalFilePath - 原本のパス 00065 * @param revisedFilePath - 改訂版のパス 00066 * @param outputFilePath - 比較結果の出力パス 00067 */ 00068 virtual void CompareDocument(std::string const& originalFilePath, std::string const& revisedFilePath, std::string const& outputFilePath) = 0; 00069 00070 /** 00071 * @brief 新旧対照表を作成する 00072 * @param originalFilePath - 原本のパス 00073 * @param revisedFilePath - 改訂版のパス 00074 * @param outputFilePath - 新旧対照表の出力パス 00075 */ 00076 virtual void CreateComparativeTable(std::string const& originalFilePath, std::string const& revisedFilePath, std::string const& outputFilePath) = 0; 00077 00078 /** 00079 * @brief 文書の変更割合をパースする 00080 * @param originalFilePath - 原本のパス 00081 * @param revisedFilePath - 改訂版のパス 00082 * @return 文書の変更割合 00083 */ 00084 virtual ChangedRatio ParseChangedRatio(std::string const& originalFilePath, std::string const& revisedFilePath) = 0; 00085 };