Package nablarch.core.dataformat
Class FormatterFactory
java.lang.Object
nablarch.core.dataformat.FormatterFactory
データレコードフォーマッタ(
また、以下にフォーマット定義ファイルの定義例を示す。
DataRecordFormatter
)を生成するファクトリクラス。
フォーマット定義ファイルのパースを行い、ディレクティブで指定されたファイルタイプに対応するデータレコードフォーマッタを生成して返却する。
具体的には、ファイルタイプが "Variable" の場合にVariableLengthDataRecordFormatter
を、
ファイルタイプが "Fixed" の場合にFixedLengthDataRecordFormatter
を生成する。
フォーマット定義情報保持クラスは、本クラスの内部でキャッシュし、同一のフォーマット定義ファイルが何度もパースされないように制御する。 デフォルトではフォーマット定義ファイルのパース結果はキャッシュされる。
また、リポジトリに「formatterFactory」のキーで本クラスのインスタンスを格納することで、設定を変更することができる。
以下に、設定可能な項目の一覧を示す。
プロパティ名 | 型 | 概要 |
---|---|---|
allowedRecordSeparatorList | List<String> |
レコード終端文字列として許容する文字列のリスト |
defaultReplacementType | Map<String, String> |
フィールドタイプ名に対応するデフォルトの寄せ字変換タイプ名のMap |
encoding | String | フォーマット定義ファイルのエンコーディング |
cacheLayoutFileDefinition | boolean | フォーマット定義ファイルのパース結果のキャッシュ要否 |
また、以下にフォーマット定義ファイルの定義例を示す。
<component name="formatterFactory"
class="nablarch.core.dataformat.FormatterFactory">
<property name="cacheLayoutFileDefinition" value="false" />
<property name="defaultReplacementType">
<map>
<entry key="X" value="type_hankaku" />
<entry key="N" value="type_zenkaku" />
</map>
</property>
</component>
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected LayoutDefinition
createDefinition
(File layoutFile) フォーマット定義ファイルを読み込み、フォーマット定義情報保持クラスを生成する。createFormatter
(File layoutFile) データレコードフォーマッタのインスタンスを生成する。 フォーマット定義ファイルのパース結果をキャッシュする設定の場合は、フォーマット定義ファイルのパースは2度行わない。protected DataRecordFormatter
createFormatter
(String fileType, String formatFilePath) データレコードフォーマッタを生成する。 ファイルタイプにより下記のとおりフォーマッタの生成を行い、 これら以外のファイルタイプの場合は例外をスローする。 ファイルタイプ フォーマッタクラス Variable VariableLengthDataRecordFormatter Fixed FixedLengthDataRecordFormatter JSON JsonDataRecordFormatter XML XmlDataRecordFormattercreateFormatter
(LayoutDefinition definition) フォーマット定義情報保持クラスをもとに、データレコードフォーマッタのインスタンスを生成する。protected LayoutFileParser
createLayoutFileParser
(String layoutFilePath) フォーマット定義ファイルのパーサを生成する。protected LayoutDefinition
getDefinitionFromCache
(File layoutFile) キャッシュからフォーマット定義情報保持クラスを取得する。 フォーマット定義情報保持クラスをキャッシュから取得できない場合は、生成する。static FormatterFactory
FormatterFactoryクラスのインスタンスをリポジトリより取得する。 リポジトリより取得できなかった場合は、デフォルトで本クラスのインスタンスを返却する。setAllowedRecordSeparatorList
(List<String> allowedRecordSeparatorList) 許容するレコード終端文字列のリストを設定する。setCacheLayoutFileDefinition
(boolean cacheLayoutFileDefinition) フォーマット定義ファイルのパース結果のキャッシュ要否を設定する。setDefaultReplacementType
(Map<String, String> defaultReplacementType) データタイプ名に対応するデフォルトの寄せ字変換タイプ名のMapを設定する。setEncoding
(String encoding) フォーマット定義ファイルのファイルエンコーディングを設定する。protected void
setFormatterProperty
(DataRecordFormatter formatter) データレコードフォーマッタにプロパティを設定する。
-
Constructor Details
-
FormatterFactory
public FormatterFactory()
-
-
Method Details
-
getInstance
FormatterFactoryクラスのインスタンスをリポジトリより取得する。 リポジトリより取得できなかった場合は、デフォルトで本クラスのインスタンスを返却する。- Returns:
- このクラスのインスタンス
-
setCacheLayoutFileDefinition
フォーマット定義ファイルのパース結果のキャッシュ要否を設定する。- Parameters:
cacheLayoutFileDefinition
- フォーマット定義ファイルのパース結果のキャッシュ要否- Returns:
- このオブジェクト自体
-
createFormatter
データレコードフォーマッタのインスタンスを生成する。 フォーマット定義ファイルのパース結果をキャッシュする設定の場合は、フォーマット定義ファイルのパースは2度行わない。- Parameters:
layoutFile
- フォーマット定義ファイル- Returns:
- データレコードフォーマッタのインスタンス
-
createFormatter
フォーマット定義情報保持クラスをもとに、データレコードフォーマッタのインスタンスを生成する。- Parameters:
definition
- フォーマット定義情報保持クラス- Returns:
- データレコードフォーマッタのインスタンス
-
getDefinitionFromCache
キャッシュからフォーマット定義情報保持クラスを取得する。 フォーマット定義情報保持クラスをキャッシュから取得できない場合は、生成する。- Parameters:
layoutFile
- フォーマット定義ファイル- Returns:
- フォーマット定義情報保持クラス
-
createFormatter
データレコードフォーマッタを生成する。 ファイルタイプにより下記のとおりフォーマッタの生成を行い、 これら以外のファイルタイプの場合は例外をスローする。ファイルタイプ フォーマッタクラス Variable VariableLengthDataRecordFormatter Fixed FixedLengthDataRecordFormatter JSON JsonDataRecordFormatter XML XmlDataRecordFormatter - Parameters:
fileType
- ファイルタイプformatFilePath
- フォーマット定義ファイルのパス(例外発生時に使用する)- Returns:
- フォーマッタ
-
setFormatterProperty
データレコードフォーマッタにプロパティを設定する。具体的には、データレコードフォーマッタの型がDataRecordFormatterSupportの場合に、 本クラスに設定された以下のプロパティを、データレコードフォーマッタのプロパティに設定する。
- データタイプ名に対応するデフォルトの寄せ字変換タイプ名のMap
- 許容するレコード終端文字列のリスト
- Parameters:
formatter
- データレコードフォーマッタ
-
createDefinition
フォーマット定義ファイルを読み込み、フォーマット定義情報保持クラスを生成する。- Parameters:
layoutFile
- フォーマット定義ファイル- Returns:
- フォーマット定義情報保持クラス
-
createLayoutFileParser
フォーマット定義ファイルのパーサを生成する。- Parameters:
layoutFilePath
- フォーマット定義ファイルのパス- Returns:
- フォーマット定義ファイルのパーサ
-
setAllowedRecordSeparatorList
許容するレコード終端文字列のリストを設定する。- Parameters:
allowedRecordSeparatorList
- 許容されるレコード終端文字列のリスト- Returns:
- このオブジェクト自体
-
setDefaultReplacementType
データタイプ名に対応するデフォルトの寄せ字変換タイプ名のMapを設定する。- Parameters:
defaultReplacementType
- データタイプ名に対応するデフォルトの寄せ字変換タイプ名のMap- Returns:
- このオブジェクト自体
-
setEncoding
フォーマット定義ファイルのファイルエンコーディングを設定する。- Parameters:
encoding
- フォーマット定義ファイルのファイルエンコーディング- Returns:
- このオブジェクト自体
-