@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 - フォーマット定義ファイルのファイルエンコーディング