Package nablarch.common.io
Class FileRecordWriterHolder
java.lang.Object
nablarch.common.io.FileRecordWriterHolder
FileRecordWriterのインスタンスをスレッド毎に管理するクラス。
スレッド毎に管理するFileRecordWriterインスタンスの生成及び取得、クローズ機能を持つ。
FileRecordWriterDisposeHandlerをハンドラとして設定する場合、
本クラスがスレッド上で管理するすべてのFileRecordWriterがFileRecordWriterDisposeHandlerにより自動的にクローズされるので、
業務アプリケーションで本クラスのclose(java.lang.String)メソッドを呼び出す必要はない。
close(String, String)及びclose(String)では、ThreadLocal.remove()の呼び出しを行わない。
スレッド上の値を削除するためには、closeAll()の呼び出しが必要となる。- Author:
- Masato Inoue
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidFilePathSettingから"output"という論理名で取得したベースパス配下のファイルに書き出しを行うFileRecordWriterをクローズし、 インスタンスをカレントスレッド上から削除する。static voidFilePathSettingに設定した論理名(論理ベースパス)配下のファイルに書き出しを行うFileRecordWriterをクローズし、 インスタンスをカレントスレッド上から削除する。static voidcloseAll()本クラスがカレントスレッド上で管理している全てのFileRecordWriterのファイルストリームを クローズし、また、それら全てのFileRecordWriterをカレントスレッド上から削除する。protected FileRecordWritercreateFileRecordWriter(String dataFileBasePathName, String dataFileName, String layoutFileBasePathName, String layoutFileName, int bufferSize) FileRecordWriterのインスタンスを生成する。protected Stringスレッドに保持するキーを生成する。static FileRecordWriterFilePathSettingから"output"という論理名で取得したベースパス配下のファイルに書き出しを行うFileRecordWriterを取得する。static FileRecordWriterFilePathSettingに設定した論理名(論理ベースパス)配下のファイルに書き出しを行うFileRecordWriterを取得する。static FileRecordWriterHolder本クラスのインスタンスをSystemRepositoryより取得する。static voidinit()カレントスレッド上で開いたファイルを管理するための初期処理を行う。static voidFilePathSettingから"output"という論理名で取得したベースパス配下のファイルをオープンする。static voidFilePathSettingから"output"という論理名で取得したベースパス配下のファイルをオープンする。static voidFilePathSettingに設定した論理名(論理ベースパス)配下のファイルをオープンする。static voidFilePathSettingに設定した論理名(論理ベースパス)配下のファイルをオープンする。static voidopen(String dataFileBasePathName, String dataFileName, String layoutFileBasePathName, String layoutFileName) FilePathSettingに設定した論理名(論理ベースパス)配下のファイルをオープンする。static voidopen(String dataFileBasePathName, String dataFileName, String layoutFileBasePathName, String layoutFileName, int bufferSize) FilePathSettingに設定した論理名(論理ベースパス)配下のファイルをオープンする。static voidFilePathSettingから"output"という論理名で取得したベースパス配下のデータファイルにレコードを出力する。static void引数で指定したデータファイルにレコードを出力する。static voidFilePathSettingから"output"という論理名で取得したベースパス配下のデータファイルにレコードを出力する。static voidFilePathSettingに設定した論理名(論理ベースパス)配下のデータファイルにレコードを出力する。
-
Constructor Details
-
FileRecordWriterHolder
public FileRecordWriterHolder()
-
-
Method Details
-
getInstance
本クラスのインスタンスをSystemRepositoryより取得する。SystemRepositoryにインスタンスが存在しない場合は、クラスロード時に生成した本クラスのインスタンスを返却する。- Returns:
- 本クラスのインスタンス
-
open
FilePathSettingから"output"という論理名で取得したベースパス配下のファイルをオープンする。 このとき、フォーマット定義ファイルもFilePathSettingから"format"という論理名で取得したベースパス配下より読み込む。
また、バッファサイズには、デフォルトの値(8192B)が使用される。- Parameters:
dataFileName- 書き込むデータファイルのファイル名layoutFileName- フォーマット定義ファイルのファイル名
-
open
FilePathSettingから"output"という論理名で取得したベースパス配下のファイルをオープンする。 このとき、フォーマット定義ファイルもFilePathSettingから"format"という論理名で取得したベースパス配下より読み込む。
また、引数でデータファイルに書き込む際のバッファサイズを指定する。- Parameters:
dataFileName- 書き込むデータファイルのファイル名layoutFileName- フォーマット定義ファイルのファイル名bufferSize- バッファサイズ
-
open
@Published public static void open(String dataFileBasePathName, String dataFileName, String layoutFileName) FilePathSettingに設定した論理名(論理ベースパス)配下のファイルをオープンする。 このとき、フォーマット定義ファイルはFilePathSettingから"format"という論理名で取得したベースパス配下より読み込む。
また、データファイルに書き込む際のバッファサイズはデフォルト値(8192B)が使用される。- Parameters:
dataFileBasePathName- 書き込むデータファイルのベースパスの論理名dataFileName- 書き込むデータファイルのファイル名layoutFileName- フォーマット定義ファイルのファイル名
-
open
@Published public static void open(String dataFileBasePathName, String dataFileName, String layoutFileName, int bufferSize) FilePathSettingに設定した論理名(論理ベースパス)配下のファイルをオープンする。 このとき、フォーマット定義ファイルはFilePathSettingから"format"という論理名で取得したベースパス配下より読み込む。
また、引数でデータファイルに書き込む際のバッファサイズを指定する。- Parameters:
dataFileBasePathName- 書き込むデータファイルのベースパスの論理名dataFileName- 書き込むデータファイルのファイル名layoutFileName- フォーマット定義ファイルのファイル名bufferSize- バッファサイズ
-
init
public static void init()カレントスレッド上で開いたファイルを管理するための初期処理を行う。本処理を呼ばなかった場合、子スレッド側で開いたファイルは管理対象とならないため注意すること。
-
open
@Published public static void open(String dataFileBasePathName, String dataFileName, String layoutFileBasePathName, String layoutFileName) FilePathSettingに設定した論理名(論理ベースパス)配下のファイルをオープンする。 このとき、フォーマット定義ファイルはFilePathSettingから"format"という論理名で取得したベースパス配下より読み込む。 また、データファイルに書き込む際のバッファサイズはデフォルト値(8192B)が使用される。- Parameters:
dataFileBasePathName- 書き込むデータファイルのベースパスの論理名dataFileName- 書き込むデータファイルのファイル名layoutFileBasePathName- フォーマット定義ファイルのベースパス論理名layoutFileName- フォーマット定義ファイルのファイル名
-
open
@Published public static void open(String dataFileBasePathName, String dataFileName, String layoutFileBasePathName, String layoutFileName, int bufferSize) FilePathSettingに設定した論理名(論理ベースパス)配下のファイルをオープンする。また、引数でデータファイルに書き込む際のバッファサイズと、
FilePathSettingに設定したフォーマット定義ファイルの論理名を指定する。- Parameters:
dataFileBasePathName- 書き込むデータファイルのベースパスの論理名dataFileName- 書き込むデータファイルのファイル名layoutFileBasePathName- フォーマット定義ファイルのベースパスの論理名layoutFileName- フォーマット定義ファイルのファイル名bufferSize- バッファサイズ- Throws:
IllegalArgumentException-bufferSize以外の引数がnullまたは空の場合IllegalStateException- カレントスレッド上のFileRecordWriterが既にオープンしている場合
-
write
FilePathSettingから"output"という論理名で取得したベースパス配下のデータファイルにレコードを出力する。- Parameters:
record- ファイルに出力するレコードfileName- 書き込むデータファイルのファイル名
-
write
FilePathSettingに設定した論理名(論理ベースパス)配下のデータファイルにレコードを出力する。- Parameters:
record- ファイルに出力するレコードbasePathName- 書き込むデータファイルのベースパスの論理名fileName- 書き込むデータファイルのファイル名
-
write
FilePathSettingから"output"という論理名で取得したベースパス配下のデータファイルにレコードを出力する。また、引数で出力するレコードのレコードタイプを指定する。
- Parameters:
recordType- 出力するレコードのレコードタイプrecord- ファイルに出力するレコードfileName- 書き込むデータファイルのファイル名
-
write
@Published public static void write(String recordType, Map<String, ?> record, String basePathName, String fileName) 引数で指定したデータファイルにレコードを出力する。- Parameters:
recordType- 出力するレコードのレコードタイプrecord- ファイルに出力するレコードbasePathName- 書き込むデータファイルのベースパスの論理名fileName- 書き込むデータファイルのファイル名
-
createFileRecordWriter
protected FileRecordWriter createFileRecordWriter(String dataFileBasePathName, String dataFileName, String layoutFileBasePathName, String layoutFileName, int bufferSize) FileRecordWriterのインスタンスを生成する。- Parameters:
dataFileBasePathName- ベースパスの論理名dataFileName- 書き込むデータファイルのファイル名layoutFileName- レイアウトファイル名layoutFileBasePathName- レイアウトファイルの配置ディレクトリの論理名bufferSize- ファイル読み込み時のバッファサイズ- Returns:
- FileRecordWriterのインスタンス
-
createKey
スレッドに保持するキーを生成する。- Parameters:
basePathName- ベースパスの論理名fileName- 書き込むデータファイルのファイル名- Returns:
- キー
- Throws:
IllegalArgumentException-basePathNameに"&"が含まれていなかった場合
-
get
FilePathSettingから"output"という論理名で取得したベースパス配下のファイルに書き出しを行うFileRecordWriterを取得する。- Parameters:
fileName- 書き込むデータファイルのファイル名- Returns:
FileRecordWriter
-
get
FilePathSettingに設定した論理名(論理ベースパス)配下のファイルに書き出しを行うFileRecordWriterを取得する。- Parameters:
basePathName- 書き込むデータファイルのベースパスの論理名fileName- 書き込むデータファイルのファイル名- Returns:
FileRecordWriter- Throws:
IllegalArgumentException- カレントスレッド上のFileRecordWriterが閉じている場合
-
close
FilePathSettingから"output"という論理名で取得したベースパス配下のファイルに書き出しを行うFileRecordWriterをクローズし、 インスタンスをカレントスレッド上から削除する。- Parameters:
fileName- 書き込むデータファイルのファイル名
-
close
FilePathSettingに設定した論理名(論理ベースパス)配下のファイルに書き出しを行うFileRecordWriterをクローズし、 インスタンスをカレントスレッド上から削除する。- Parameters:
basePathName- 書き込むデータファイルのベースパスの論理名fileName- 書き込むデータファイルのファイル名
-
closeAll
public static void closeAll()本クラスがカレントスレッド上で管理している全てのFileRecordWriterのファイルストリームを クローズし、また、それら全てのFileRecordWriterをカレントスレッド上から削除する。
-