import textwrap


class generateDetailDesignPrompt():
    # 静的な文字列（詳細プロンプト）

    detail_prompt: str = textwrap.dedent("""\
# 下記のJAVAプログラムの概要を生成してください。説明不要

JAVAプログラム
```
{{JAVA_SOURCE}}
```

# 分析観点
## ソースのコメントや処理フロー・データフローを分析し、どのような入力データをどの処理を経て出力しているかを踏まえて、この処理が何の目的で作成・利用されるのかを業務的またはシステム的観点でまとめてください。
0.ソースとコメントより、全体の処理フローを生成する。
処理フローの生成には下記のポイントを注意してください：
a. 制御構造の網羅:
　　for や while によるループ処理の対象データと、その中での処理単位を特定してください。
　　if-else や switch-case による条件分岐を詳細に分析し、条件ごとの分岐先を漏れなく抽出してください。
b. どのDAOメソッドが呼ばれているか（insert/update/delete/select）をメソッド名レベルで明記してください。特に登録と更新の判定条件を明確にしてください。
　　DAOメソッドの引数と戻り値を明示する
c. 共通メソッド・サービス呼び出し:
　　EJB や Resource を介して呼び出される外部サービスや共通部品のメソッド呼び出しを特定し、その役割を記述してください。 -　共通メソッドの引数と戻り値を明示する d. 業務目的と入出力の整理:
　　ソースのコメントやデータフローに基づき、どのような入力データをどの処理を経て出力しているか、業務的・システム的観点でまとめてください。
e.各処理のインデントをつけてください。
f.vaule設定、return 処理、エラー処理を明記する。

# 出力MDフォーマット、説明不要
```
**処理概要**
-どのような入力データをどの処理を経て出力しているかを踏まえて、この処理が何の目的で作成・利用されるのかを業務的またはシステム的観点でまとめてください。

**処理内容**
- **初期処理**
    - 初期処理の内容を記述
    - マスタファイルをメモリ展開する場合はここに記載
- **メイン処理*
    - XX情報取得/編集処理　#分岐条件ごとに項目を分け、実行されるDAO・共通メソッド名を必ず含めてください。
        - 条件分岐がある場合
            - 【条件】の場合、【処理内容】
            - 【条件】の場合、異常終了する
                - メッセージID：MBxxxxxxEのメッセージをログ出力する
        - 共通関数を使用する場合　#共通関数のメソッド明記
            - 引数1:#引数の説明
            - 引数2:#引数の説明
            - 引数3:#引数の説明
            - 戻り値: 概要説明
                - 出力するデータの説明
        - DAOを使用する場合 #DAOのメソッド明記
            - DAOクラス名.呼出DAOメソッド名
            - 引数1:#引数の説明
            - 引数2:#引数の説明
            - 引数3:#引数の説明
            - 戻り値: 関連説
                - 出力するデータの説明
    - XX情報登録/更新処理  #分岐条件ごとに項目を分け、実行されるDAO・共通メソッド名を必ず含めてください。
        - 条件分岐がある場合
            - 【条件】の場合、【処理内容】
            - 【条件】の場合、異常終了する
                - メッセージID：MBxxxxxxEのメッセージをログ出力する
        - 共通関数を使用する場合　#共通関数のメソッド明記
            - 引数1:#引数の説明
            - 引数2:#引数の説明
            - 引数3:#引数の説明
            - 戻り値: 説明
                - 出力するデータの説明
        - DAOを使用する場合 #DAOのメソッド明記
	    - DAOクラス名.呼出DAOメソッド名
            - 引数1:#引数の説明
            - 引数2:#引数の説明
            - 引数3:#引数の説明
            - 戻り値: 出力の説明
                - 出力するデータの説明
    - XXファイル編集/出力処理　#分岐条件ごとに項目を分け、実行されるDAO・共通メソッド名を必ず含めてください。
        - 条件分岐がある場合
            - 【条件】の場合、【処理内容】
            - 【条件】の場合、異常終了する
                - メッセージID：MBxxxxxxEのメッセージをログ出力する
        - 共通関数を使用する場合　#共通関数のメソッド明記
            - 引数1:#引数の説明
            - 引数2:#引数の説明
            - 引数3:#引数の説明
            - 戻り値: 出力の説明
                - 出力するデータの説明
        - DAOを使用する場合 #DAOのメソッド明記
            - DAOクラス名.呼出DAOメソッド名
            - 引数1:#引数の説明
            - 引数2:#引数の説明
            - 引数3:#引数の説明
            - 戻り値: 出力の説明
                - 出力するデータの説明
- **終了処理**
    - 終了処理の内容を記述
    - 処理なし（終了処理がない場合）

```
    """).strip()
