Package nablarch.core.dataformat
Class StructuredDataRecordFormatterSupport
java.lang.Object
nablarch.core.dataformat.DataRecordFormatterSupport
nablarch.core.dataformat.StructuredDataRecordFormatterSupport
- All Implemented Interfaces:
Closeable
,AutoCloseable
,DataRecordFormatter
- Direct Known Subclasses:
JsonDataRecordFormatter
,XmlDataRecordFormatter
フォーマット定義ファイルの内容に従い、構造化データの読み書きを行うクラス。
本クラスはスレッドセーフを考慮した実装にはなっていないので、呼び出し元で同期化の制御を行うこと。
ディレクティブの設定XMLデータを読み込む際は、以下のディレクティブの設定が必須となる。
- ファイルの文字エンコーディング
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
XMLデータフォーマッタが使用するディレクティブの名前と値の型。 以下に一覧を示す。
root-element:StringNested classes/interfaces inherited from class nablarch.core.dataformat.DataRecordFormatterSupport
DataRecordFormatterSupport.Directive
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
内部的に保持している各種リソースを開放する。構造化データのコンバータの設定情報保持クラスを取得する。protected StructuredDataBuilder
構造化データビルダーを返却するprotected StructuredDataParser
構造化データパーサーを返却するboolean
hasNext()
次に読み込む行の有無を判定する。フォーマット定義情報保持クラスの初期化を行う。 初期化は本メソッドの1回目の実行時のみ行われ、2回目以降の実行時に初期化は行われない。入力ストリームから1レコード分のデータを読み込み、データレコードを返却する。 入力ストリームが既に終端に達していた場合はnull
を返却する。protected void
setConvertorSetting
(ConvertorSetting convertorSetting) 構造化データのコンバータの設定情報保持クラスを取得する。void
setDataBuilder
(StructuredDataBuilder dataBuilder) 構造化データビルダーを設定するvoid
setDataParser
(StructuredDataParser dataParser) 構造化データパーサーを設定するsetInputStream
(InputStream stream) 入力ストリームを設定する。setOutputStream
(OutputStream stream) 出力ストリームを設定する。void
writeRecord
(String recordType, Map<String, ?> record) 指定したデータレイアウト(レコードタイプ)で、出力ストリームに1レコード分の内容を書き込む。void
writeRecord
(Map<String, ?> record) 出力ストリームに1レコード分の内容を書き込む。Methods inherited from class nablarch.core.dataformat.DataRecordFormatterSupport
addConvertorToField, addFormatAndRecordNumberTo, createCharacterReplacer, createDirectiveMap, getDefaultEncoding, getDefinition, getFileType, getMimeType, getRecordNumber, getRecordSeparator, incrementRecordNumber, initializeClassifier, initializeDefinition, initializeField, initializeFieldDefinition, newInvalidDataFormatException, setAllowedRecordSeparatorList, setDataTypeProperty, setDefaultReplacementType, setDefinition, setFieldProperty, setRecordNumber, setValueConvertorProperty, validateDirectives, validateDirectivesDataType, validatePosition, validateRecordLength
-
Constructor Details
-
StructuredDataRecordFormatterSupport
public StructuredDataRecordFormatterSupport()
-
-
Method Details
-
setDataParser
構造化データパーサーを設定する- Parameters:
dataParser
- 構造化データパーサー
-
getDataParser
構造化データパーサーを返却する- Returns:
- 構造化データパーサー
-
setDataBuilder
構造化データビルダーを設定する- Parameters:
dataBuilder
- 構造化データビルダー
-
getDataBuilder
構造化データビルダーを返却する- Returns:
- 構造化データビルダー
-
getConvertorSetting
構造化データのコンバータの設定情報保持クラスを取得する。- Specified by:
getConvertorSetting
in classDataRecordFormatterSupport
- Returns:
- 構造化データのコンバータの設定情報保持クラス
-
setConvertorSetting
構造化データのコンバータの設定情報保持クラスを取得する。- Parameters:
convertorSetting
- 構造化データのコンバータの設定情報保持クラス
-
initialize
フォーマット定義情報保持クラスの初期化を行う。 初期化は本メソッドの1回目の実行時のみ行われ、2回目以降の実行時に初期化は行われない。- Specified by:
initialize
in interfaceDataRecordFormatter
- Overrides:
initialize
in classDataRecordFormatterSupport
- Returns:
- このオブジェクト自体
-
setInputStream
入力ストリームを設定する。- Parameters:
stream
- 入力ストリーム- Returns:
- 本クラスのインスタンス
-
setOutputStream
出力ストリームを設定する。- Parameters:
stream
- 出力ストリーム- Returns:
- 本クラスのインスタンス
-
readRecord
入力ストリームから1レコード分のデータを読み込み、データレコードを返却する。 入力ストリームが既に終端に達していた場合はnull
を返却する。- Returns:
- データレコード
- Throws:
IOException
- 入力ストリームの読み込みに失敗した場合InvalidDataFormatException
- 読み込んだデータがフォーマット定義に違反している場合
-
writeRecord
出力ストリームに1レコード分の内容を書き込む。 出力時に使用するデータレイアウト(レコードタイプ)は、Map
の内容をもとに自動的に判定される。 引数がDataRecord
型かつレコードタイプが指定されている場合、 フォーマット定義ファイルのレコードタイプ識別フィールド定義よりも、指定されたレコードタイプを優先して書き込みを行う。- Parameters:
record
- 出力するレコードの内容を格納したMap- Throws:
IOException
- 出力ストリームの書き込みに失敗した場合InvalidDataFormatException
- 書き込むデータの内容がフォーマット定義に違反している場合
-
writeRecord
指定したデータレイアウト(レコードタイプ)で、出力ストリームに1レコード分の内容を書き込む。- Parameters:
recordType
- レコードタイプrecord
- 出力するレコードの内容を格納したMap- Throws:
IOException
- 出力ストリームの書き込みに失敗した場合
-
close
public void close()内部的に保持している各種リソースを開放する。 この実装では、setInputStream(java.io.InputStream)
メソッドおよびsetOutputStream(java.io.OutputStream)
メソッドで渡されたストリームをクローズする。 -
hasNext
次に読み込む行の有無を判定する。- Returns:
- 次に読み込む行がある場合
true
- Throws:
IOException
- 入力ストリームの読み込みに失敗した場合
-