@Published(tag="architect") public class FormatterFactory extends java.lang.Object
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>
コンストラクタと説明 |
---|
FormatterFactory() |
修飾子とタイプ | メソッドと説明 |
---|---|
protected LayoutDefinition |
createDefinition(java.io.File layoutFile)
フォーマット定義ファイルを読み込み、フォーマット定義情報保持クラスを生成する。
|
DataRecordFormatter |
createFormatter(java.io.File layoutFile)
データレコードフォーマッタのインスタンスを生成する。
|
DataRecordFormatter |
createFormatter(LayoutDefinition definition)
フォーマット定義情報保持クラスをもとに、データレコードフォーマッタのインスタンスを生成する。
|
protected DataRecordFormatter |
createFormatter(java.lang.String fileType,
java.lang.String formatFilePath)
データレコードフォーマッタを生成する。
|
protected LayoutFileParser |
createLayoutFileParser(java.lang.String layoutFilePath)
フォーマット定義ファイルのパーサを生成する。
|
protected LayoutDefinition |
getDefinitionFromCache(java.io.File layoutFile)
キャッシュからフォーマット定義情報保持クラスを取得する。
|
static FormatterFactory |
getInstance()
FormatterFactoryクラスのインスタンスをリポジトリより取得する。
|
FormatterFactory |
setAllowedRecordSeparatorList(java.util.List<java.lang.String> allowedRecordSeparatorList)
許容するレコード終端文字列のリストを設定する。
|
FormatterFactory |
setCacheLayoutFileDefinition(boolean cacheLayoutFileDefinition)
フォーマット定義ファイルのパース結果のキャッシュ要否を設定する。
|
FormatterFactory |
setDefaultReplacementType(java.util.Map<java.lang.String,java.lang.String> defaultReplacementType)
データタイプ名に対応するデフォルトの寄せ字変換タイプ名のMapを設定する。
|
FormatterFactory |
setEncoding(java.lang.String encoding)
フォーマット定義ファイルのファイルエンコーディングを設定する。
|
protected void |
setFormatterProperty(DataRecordFormatter formatter)
データレコードフォーマッタにプロパティを設定する。
|
public static FormatterFactory getInstance()
public FormatterFactory setCacheLayoutFileDefinition(boolean cacheLayoutFileDefinition)
cacheLayoutFileDefinition
- フォーマット定義ファイルのパース結果のキャッシュ要否public DataRecordFormatter createFormatter(java.io.File layoutFile)
layoutFile
- フォーマット定義ファイルpublic DataRecordFormatter createFormatter(LayoutDefinition definition)
definition
- フォーマット定義情報保持クラスprotected LayoutDefinition getDefinitionFromCache(java.io.File layoutFile)
layoutFile
- フォーマット定義ファイルprotected DataRecordFormatter createFormatter(java.lang.String fileType, java.lang.String formatFilePath)
ファイルタイプ | フォーマッタクラス |
---|---|
Variable | VariableLengthDataRecordFormatter |
Fixed | FixedLengthDataRecordFormatter |
JSON | JsonDataRecordFormatter |
XML | XmlDataRecordFormatter |
fileType
- ファイルタイプformatFilePath
- フォーマット定義ファイルのパス(例外発生時に使用する)protected void setFormatterProperty(DataRecordFormatter formatter)
具体的には、データレコードフォーマッタの型がDataRecordFormatterSupportの場合に、 本クラスに設定された以下のプロパティを、データレコードフォーマッタのプロパティに設定する。
formatter
- データレコードフォーマッタprotected LayoutDefinition createDefinition(java.io.File layoutFile)
layoutFile
- フォーマット定義ファイルprotected LayoutFileParser createLayoutFileParser(java.lang.String layoutFilePath)
layoutFilePath
- フォーマット定義ファイルのパスpublic FormatterFactory setAllowedRecordSeparatorList(java.util.List<java.lang.String> allowedRecordSeparatorList)
allowedRecordSeparatorList
- 許容されるレコード終端文字列のリストpublic FormatterFactory setDefaultReplacementType(java.util.Map<java.lang.String,java.lang.String> defaultReplacementType)
defaultReplacementType
- データタイプ名に対応するデフォルトの寄せ字変換タイプ名のMappublic FormatterFactory setEncoding(java.lang.String encoding)
encoding
- フォーマット定義ファイルのファイルエンコーディング