# パッケージ org.opengion.fukurou.process

このドキュメントは、バッチフレームワーク『ふくろう』の ＡＰＩ 仕様です。

     ２．基本設計
       （２）機能概要説明
         ３．バッチ処理フレームワーク
           【概要】
               大量データの登録や抜き出しなど、バッチ的な処理を行うフレームワークを作成します。
               このフレームワークに、基本機能の実装と、各種システム固有機能の実装が簡単に
               行えるように、プラグイン方式を採用します。
               なお、このフレームワーク単独での採用は検討していません。エンジンとしては、
               一体として扱います。

           【効果】
               簡易的なバッチ（あるDBから抜き出して、別のDBに登録するなど）や、ファイルからの
               入出力などが、簡単に作成できるようになります。
               将来的には、統合サーバー機能を充実させることで、PL/SQLの代わりにJavaで
               業務アプリケーションを作成していく事が可能になります。

           【機能】
               １．バッチ共通のMainProcess で、各Process クラス を数珠繋ぎに処理していきます。
               ２．処理の開始は、FirstProcess クラスより始めて、順次、ChainProcess実装クラスで
                   処理を継続します。
               ３．FirstProcess クラス の next() で、次の行が存在するかどうかを判断します。
                   以降の ChainProcess では、LineModel が null かどうか判断して、継続処理を行うか
                   どうかを決定します。
               ４．MainProcess の拡張機能(ログ方式など）をサブクラスで与えます。

        org.opengion.fukurou.process (classes)
           → org.opengion.fukurou.db                            classes
           → org.opengion.fukurou.mail                          classes
           → org.opengion.fukurou.model                         classes
           → org.opengion.fukurou.security                      classes
           → org.opengion.fukurou.system                        classes
           → org.opengion.fukurou.util                          classes
           → org.opengion.fukurou.xml                           classes

- インタフェースの概要
  インタフェース | 説明
  --- | ---
  ChainProcess | ChainProcess は、バッチ処理サブクラスの共通インターフェースです。
  FirstProcess | FirstProcess は、バッチ処理サブクラスの共通インターフェースです。
  HybsProcess | HybsProcess は、バッチ処理サブクラスの共通インターフェースです。
  LoggerProcess | LoggerProcess インターフェース は、AbstractProcess を実行する上で必要となる 各種パラメータを設定します。
  ParamProcess | ParamProcess インターフェース は、AbstractProcess を実行する上で必要となる 各種パラメータを設定します。

- クラスの概要
  クラス | 説明
  --- | ---
  AbstractProcess | AbstractProcess は、ChainProcess インターフェースを実装した、Abstract クラスです。
  FileLineModel | FileLineModel は、LineModel を継承した ファイルリスト専用の LineModel の実装クラスです。
  LineModel | LineModel は、データの１行分を管理する為の TableModel と類似の実装クラスです。
  LineModelFilter | LineModelFilter は、フィルター条件をチェックして、LineModel のフィルタリング を判定する実装クラスです。
  MainProcess | MainProcess は、HybsProcess を継承した、ParamProcess,FirstProcess,ChainProcess の実装クラスを実行するメインメソッドを持つクラスです。
  Process_BulkQuery | Process_BulkQueryは、データベースから読み取った内容を、一括処理する、 FirstProcess と、ChainProcess のインターフェースを両方持った、実装クラスです。
  Process_DBCountFilter | Process_DBCountFilter は、データベースの存在件数でフィルタリングする ChainProcess インターフェースの実装クラスです。
  Process_DBFileout | Process_DBFileout は、SELECT文 を指定し データベースの値を抜き出して、 個々のファイルにセーブする、ChainProcess インターフェースの実装クラスです。
  Process_DBMerge | Process_DBMerge は、UPDATE と INSERT を指定し データベースを追加更新 する、ChainProcess インターフェースの実装クラスです。
  Process_DBParam | Process_DBParam は、他のプロセスへ共通のデータベース接続を割り当てる為の、 ParamProcess インターフェースの実装クラスです。
  Process_DBReader | Process_DBReaderは、データベースから読み取った内容を、LineModel に設定後、 下流に渡す、FirstProcess インターフェースの実装クラスです。
  Process_DBWriter | Process_DBWriter は、上流から受け取ったデータをデータベースに書き込む CainProcess インターフェースの実装クラスです。
  Process_FileCopy | Process_FileCopy は、上流から受け取った FileLineModel を処理する、 ChainProcess インターフェースの実装クラスです。
  Process_FileFtp | Process_FileFtp は、上流から受け取った FileLineModel を処理する、 ChainProcess インターフェースの実装クラスです。
  Process_FileSearch | Process_FileSearch は、指定のフォルダ以下のファイルを一覧する、FirstProcess インターフェースと、ChainProcess インターフェースの実装クラスです。
  Process_Grep | Process_Grep は、上流から受け取った FileLineModelから、文字列を見つけ出す ChainProcess インターフェースの実装クラスです。
  Process_GrepChange | Process_GrepChange は、上流から受け取った FileLineModelから、語句を 置換する、ChainProcess インターフェースの実装クラスです。
  Process_GrepChangeExcel | Process_GrepChangeExcel は、上流から受け取った FileLineModelから、語句を 置換する、ChainProcess インターフェースの実装クラスです。
  Process_LDAPReader | Process_LDAPReaderは、LDAPから読み取った内容を、LineModel に設定後、 下流に渡す、FirstProcess インターフェースの実装クラスです。
  Process_Logger | Process_Logger は、画面出力、ファイルログ、エラーメールを管理する、 ロギング関係の LoggerProcess インターフェースの実装クラスです。
  Process_StringUtil | Process_StringUtil は、上流から受け取ったデータをStringUtilクラスの特定の メソッドでデータ変換する、CainProcess インターフェースの実装クラスです。
  Process_TableDiff | Process_TableDiffは、ファイルから読み取った内容を、LineModel に設定後、 下流に渡す、FirstProcess インターフェースの実装クラスです。
  Process_TableFilter | Process_TableFilter は、上流から受け取ったデータをフィルタする、 ChainProcess インターフェースの実装クラスです。
  Process_TableReader | Process_TableReaderは、ファイルから読み取った内容を、LineModel に設定後、 下流に渡す、FirstProcess インターフェースの実装クラスです。
  Process_TableWriter | Process_TableWriter は、上流から受け取ったデータをファイルに書き込む CainProcess インターフェースの実装クラスです。
  Process_XSLT | XSLT変換結果を指定のファイルに出力します。

- 列挙型の概要
  列挙型 | 説明
  --- | ---
  FilterOperation | フィルター条件のオペレーションの列挙型です。