public abstract class StructuredDataRecordFormatterSupport extends DataRecordFormatterSupport
本クラスはスレッドセーフを考慮した実装にはなっていないので、呼び出し元で同期化の制御を行うこと。
ディレクティブの設定XMLデータを読み込む際は、以下のディレクティブの設定が必須となる。
Modifier and Type | Class and Description |
---|---|
static class |
StructuredDataRecordFormatterSupport.StructuredDataDirective
XMLデータフォーマッタが使用するディレクティブの名前と値の型。
以下に一覧を示す。
root-element:String |
DataRecordFormatterSupport.Directive
Constructor and Description |
---|
StructuredDataRecordFormatterSupport() |
Modifier and Type | Method and Description |
---|---|
void |
close()
内部的に保持している各種リソースを開放する。
|
ConvertorSetting |
getConvertorSetting()
構造化データのコンバータの設定情報保持クラスを取得する。
|
protected StructuredDataBuilder |
getDataBuilder()
構造化データビルダーを返却する
|
protected StructuredDataParser |
getDataParser()
構造化データパーサーを返却する
|
boolean |
hasNext()
次に読み込む行の有無を判定する。
|
DataRecordFormatter |
initialize()
フォーマット定義情報保持クラスの初期化を行う。
初期化は本メソッドの1回目の実行時のみ行われ、2回目以降の実行時に初期化は行われない。
|
DataRecord |
readRecord()
入力ストリームから1レコード分のデータを読み込み、データレコードを返却する。
入力ストリームが既に終端に達していた場合は
null を返却する。 |
protected void |
setConvertorSetting(ConvertorSetting convertorSetting)
構造化データのコンバータの設定情報保持クラスを取得する。
|
void |
setDataBuilder(StructuredDataBuilder dataBuilder)
構造化データビルダーを設定する
|
void |
setDataParser(StructuredDataParser dataParser)
構造化データパーサーを設定する
|
DataRecordFormatter |
setInputStream(java.io.InputStream stream)
入力ストリームを設定する。
|
DataRecordFormatter |
setOutputStream(java.io.OutputStream stream)
出力ストリームを設定する。
|
void |
writeRecord(java.util.Map<java.lang.String,?> record)
出力ストリームに1レコード分の内容を書き込む。
出力時に使用するデータレイアウト(レコードタイプ)は、
Map の内容をもとに自動的に判定される。
引数がDataRecord 型かつレコードタイプが指定されている場合、
フォーマット定義ファイルのレコードタイプ識別フィールド定義よりも、指定されたレコードタイプを優先して書き込みを行う。 |
void |
writeRecord(java.lang.String recordType,
java.util.Map<java.lang.String,?> record)
指定したデータレイアウト(レコードタイプ)で、出力ストリームに1レコード分の内容を書き込む。
|
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
public StructuredDataRecordFormatterSupport()
public void setDataParser(StructuredDataParser dataParser)
dataParser
- 構造化データパーサーprotected StructuredDataParser getDataParser()
public void setDataBuilder(StructuredDataBuilder dataBuilder)
dataBuilder
- 構造化データビルダーprotected StructuredDataBuilder getDataBuilder()
public ConvertorSetting getConvertorSetting()
getConvertorSetting
in class DataRecordFormatterSupport
protected void setConvertorSetting(ConvertorSetting convertorSetting)
convertorSetting
- 構造化データのコンバータの設定情報保持クラスpublic DataRecordFormatter initialize()
initialize
in interface DataRecordFormatter
initialize
in class DataRecordFormatterSupport
public DataRecordFormatter setInputStream(java.io.InputStream stream)
stream
- 入力ストリームpublic DataRecordFormatter setOutputStream(java.io.OutputStream stream)
stream
- 出力ストリームpublic DataRecord readRecord() throws java.io.IOException, InvalidDataFormatException
null
を返却する。java.io.IOException
- 入力ストリームの読み込みに失敗した場合InvalidDataFormatException
- 読み込んだデータがフォーマット定義に違反している場合public void writeRecord(java.util.Map<java.lang.String,?> record) throws java.io.IOException, InvalidDataFormatException
Map
の内容をもとに自動的に判定される。
引数がDataRecord
型かつレコードタイプが指定されている場合、
フォーマット定義ファイルのレコードタイプ識別フィールド定義よりも、指定されたレコードタイプを優先して書き込みを行う。record
- 出力するレコードの内容を格納したMapjava.io.IOException
- 出力ストリームの書き込みに失敗した場合InvalidDataFormatException
- 書き込むデータの内容がフォーマット定義に違反している場合public void writeRecord(java.lang.String recordType, java.util.Map<java.lang.String,?> record) throws java.io.IOException
recordType
- レコードタイプrecord
- 出力するレコードの内容を格納したMapjava.io.IOException
- 出力ストリームの書き込みに失敗した場合public void close()
setInputStream(java.io.InputStream)
メソッドおよびsetOutputStream(java.io.OutputStream)
メソッドで渡されたストリームをクローズする。public boolean hasNext() throws java.io.IOException
true
java.io.IOException
- 入力ストリームの読み込みに失敗した場合