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
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
FilePathSetting
から"output"という論理名で取得したベースパス配下のファイルに書き出しを行うFileRecordWriter
をクローズし、 インスタンスをカレントスレッド上から削除する。static void
FilePathSetting
に設定した論理名(論理ベースパス)配下のファイルに書き出しを行うFileRecordWriter
をクローズし、 インスタンスをカレントスレッド上から削除する。static void
closeAll()
本クラスがカレントスレッド上で管理している全てのFileRecordWriter
のファイルストリームを クローズし、また、それら全てのFileRecordWriter
をカレントスレッド上から削除する。protected FileRecordWriter
createFileRecordWriter
(String dataFileBasePathName, String dataFileName, String layoutFileBasePathName, String layoutFileName, int bufferSize) FileRecordWriter
のインスタンスを生成する。protected String
スレッドに保持するキーを生成する。static FileRecordWriter
FilePathSetting
から"output"という論理名で取得したベースパス配下のファイルに書き出しを行うFileRecordWriter
を取得する。static FileRecordWriter
FilePathSetting
に設定した論理名(論理ベースパス)配下のファイルに書き出しを行うFileRecordWriter
を取得する。static FileRecordWriterHolder
本クラスのインスタンスをSystemRepository
より取得する。static void
init()
カレントスレッド上で開いたファイルを管理するための初期処理を行う。static void
FilePathSetting
から"output"という論理名で取得したベースパス配下のファイルをオープンする。static void
FilePathSetting
から"output"という論理名で取得したベースパス配下のファイルをオープンする。static void
FilePathSetting
に設定した論理名(論理ベースパス)配下のファイルをオープンする。static void
FilePathSetting
に設定した論理名(論理ベースパス)配下のファイルをオープンする。static void
open
(String dataFileBasePathName, String dataFileName, String layoutFileBasePathName, String layoutFileName) FilePathSetting
に設定した論理名(論理ベースパス)配下のファイルをオープンする。static void
open
(String dataFileBasePathName, String dataFileName, String layoutFileBasePathName, String layoutFileName, int bufferSize) FilePathSetting
に設定した論理名(論理ベースパス)配下のファイルをオープンする。static void
FilePathSetting
から"output"という論理名で取得したベースパス配下のデータファイルにレコードを出力する。static void
引数で指定したデータファイルにレコードを出力する。static void
FilePathSetting
から"output"という論理名で取得したベースパス配下のデータファイルにレコードを出力する。static void
FilePathSetting
に設定した論理名(論理ベースパス)配下のデータファイルにレコードを出力する。
-
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
をカレントスレッド上から削除する。
-