@Published(tag="architect") public abstract class DataRecordFormatterSupport extends java.lang.Object implements DataRecordFormatter
本クラスでは、フォーマット定義情報保持クラス(LayoutDefinition)の初期化および内容の妥当性検証を行い、 実際のファイルデータの読み書きはサブクラスにて行う。
本クラスを継承するクラスでは、以下のディレクティブを指定することができる。
修飾子とタイプ | クラスと説明 |
---|---|
static class |
DataRecordFormatterSupport.Directive
ファイルフォーマッタが共通的に使用するディレクティブの名前と値の型。
|
コンストラクタと説明 |
---|
DataRecordFormatterSupport()
コンストラクタ。
|
修飾子とタイプ | メソッドと説明 |
---|---|
protected void |
addConvertorToField(FieldDefinition field,
RecordDefinition recordDefinition)
フィールドのフォーマット定義を保持するクラスに関連するコンバータを生成し、フィールド定義クラスに設定する。
|
protected InvalidDataFormatException |
addFormatAndRecordNumberTo(InvalidDataFormatException e)
InvalidDataFormatException に
フォーマットファイルのパスと例外発生時の行番号を設定する。 |
protected CharacterReplacer |
createCharacterReplacer(FieldDefinition field,
java.lang.String replacementType)
デフォルトの寄せ字コンバータを生成する。
|
protected java.util.Map<java.lang.String,DataRecordFormatterSupport.Directive> |
createDirectiveMap()
使用するディレクティブの名前とDirectiveのMapを生成する。
|
protected abstract ConvertorSetting |
getConvertorSetting()
コンバータの設定情報を取得する。
|
java.nio.charset.Charset |
getDefaultEncoding()
デフォルトの文字エンコーディングを取得する。
|
protected LayoutDefinition |
getDefinition()
フォーマット定義ファイルの情報を保持するクラスを取得する。
|
java.lang.String |
getFileType()
このフォーマッタが取り扱うファイル種別を返却する。
|
java.lang.String |
getMimeType()
このフォーマッタが取り扱うファイルのmime-typeを返却する。
|
int |
getRecordNumber()
読み込みまたは書き込み中のレコードのレコード番号を取得する。
|
protected java.lang.String |
getRecordSeparator()
レコード終端文字列を取得する。
|
protected void |
incrementRecordNumber()
読み込みまたは書き込み中のレコードのレコード番号をインクリメントする。
|
DataRecordFormatter |
initialize()
フォーマット定義情報保持クラスの初期化を行う。
|
protected void |
initializeClassifier()
レコード識別情報が存在する場合(マルチレイアウトファイルの場合)、
レコード識別情報に関連するフィールド定義クラスの初期化(コンバータ設定およびエンコーディング設定)を行う。
|
protected void |
initializeDefinition()
フォーマット定義情報保持クラス(
LayoutDefinition )の初期化および内容の妥当性を検証し、
フォーマット定義情報保持クラスから必要な情報を本クラスのプロパティに設定する。 |
protected void |
initializeField(java.util.Map<java.lang.String,java.lang.Object> directive)
フィールドを初期化する。
|
protected void |
initializeFieldDefinition()
フィールド定義クラスについて、以下の初期化処理を行う。
|
protected InvalidDataFormatException |
newInvalidDataFormatException(java.lang.Object... msgElements)
引数を連結したものをメッセージとして、
InvalidDataFormatException を生成する。 |
DataRecordFormatterSupport |
setAllowedRecordSeparatorList(java.util.List<java.lang.String> allowedRecordSeparatorList)
許容するレコード終端文字列のリストを設定する。
|
protected DataRecordFormatterSupport |
setDataTypeProperty(DataType<?,?> dataType)
データタイプの設定を行う。
|
DataRecordFormatterSupport |
setDefaultReplacementType(java.util.Map<java.lang.String,java.lang.String> defaultReplacementType)
データタイプ名に対応するデフォルトの寄せ字変換タイプ名を設定する。
|
DataRecordFormatter |
setDefinition(LayoutDefinition definition)
フォーマット定義ファイルの情報を保持するクラスを設定する。
|
protected void |
setFieldProperty(FieldDefinition field,
RecordDefinition recordDef)
フィールド定義情報保持クラスのプロパティを設定する。
|
protected void |
setRecordNumber(int recordNumber)
読み込みまたは書き込み中のレコードのレコード番号を設定する。
|
protected void |
setValueConvertorProperty(ValueConvertor<?,?> valueConvertor)
コンバータの設定を行う。
|
protected void |
validateDirectives(java.util.Map<java.lang.String,java.lang.Object> directive)
ディレクティブの内容の妥当性を検証する。
|
protected void |
validateDirectivesDataType(java.util.Map<java.lang.String,java.lang.Object> directive)
定義されたすべてのディレクティブの値のデータ型が正しいことを検証する。
|
protected void |
validatePosition(int head,
FieldDefinition field)
開始位置と、現在位置の妥当性を検証する。
|
protected void |
validateRecordLength(int head,
RecordDefinition record)
レコード長の妥当性を検証する。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
close, hasNext, readRecord, setInputStream, setOutputStream, writeRecord, writeRecord
protected java.util.Map<java.lang.String,DataRecordFormatterSupport.Directive> createDirectiveMap()
protected abstract ConvertorSetting getConvertorSetting()
public DataRecordFormatter initialize()
initialize
インタフェース内 DataRecordFormatter
protected void initializeDefinition()
LayoutDefinition
)の初期化および内容の妥当性を検証し、
フォーマット定義情報保持クラスから必要な情報を本クラスのプロパティに設定する。
フォーマット定義情報保持クラスがすでに初期化されている場合、初期化は行わない。protected void validateDirectives(java.util.Map<java.lang.String,java.lang.Object> directive)
サブクラスで独自のディレクティブを使用する場合は、このメソッドをオーバーライドし、独自のディレクティブに対して妥当性検証を行うこと。
DataRecordFormatter
では以下の仕様を満たしているかどうかの検証を行う。
妥当性検証に失敗した場合は、SyntaxErrorException
がスローされる。
directive
- ディレクティブprotected void initializeField(java.util.Map<java.lang.String,java.lang.Object> directive)
DataRecordFormatterSupport
では、ディレクティブに設定された以下の値をフィールドに設定する。
directive
- ディレクティブprotected void validateDirectivesDataType(java.util.Map<java.lang.String,java.lang.Object> directive)
directive
- ディレクティブprotected void initializeClassifier()
protected void initializeFieldDefinition()
protected void setFieldProperty(FieldDefinition field, RecordDefinition recordDef)
field
- フィールド定義情報保持クラスrecordDef
- レコード定義情報保持クラスprotected void validateRecordLength(int head, RecordDefinition record)
head
- 位置record
- レコード定義情報保持クラスprotected void validatePosition(int head, FieldDefinition field)
head
- 位置field
- フィールド定義情報保持クラスprotected void addConvertorToField(FieldDefinition field, RecordDefinition recordDefinition)
getConvertorSetting()
field
- フォーマット定義を保持するクラスrecordDefinition
- レコード定義情報保持クラスprotected CharacterReplacer createCharacterReplacer(FieldDefinition field, java.lang.String replacementType)
field
- フィールドreplacementType
- 寄せ字変換タイプprotected DataRecordFormatterSupport setDataTypeProperty(DataType<?,?> dataType)
dataType
- データタイプprotected void setValueConvertorProperty(ValueConvertor<?,?> valueConvertor)
valueConvertor
- コンバータpublic DataRecordFormatter setDefinition(LayoutDefinition definition)
setDefinition
インタフェース内 DataRecordFormatter
definition
- フォーマット定義ファイルの定義情報protected LayoutDefinition getDefinition()
public DataRecordFormatterSupport setAllowedRecordSeparatorList(java.util.List<java.lang.String> allowedRecordSeparatorList)
allowedRecordSeparatorList
- 許容されるレコード終端文字列のリストpublic int getRecordNumber()
getRecordNumber
インタフェース内 DataRecordFormatter
protected void incrementRecordNumber()
protected void setRecordNumber(int recordNumber)
recordNumber
- 読み込みまたは書き込み中のレコードのレコード番号public java.nio.charset.Charset getDefaultEncoding()
protected java.lang.String getRecordSeparator()
public DataRecordFormatterSupport setDefaultReplacementType(java.util.Map<java.lang.String,java.lang.String> defaultReplacementType)
defaultReplacementType
- データタイプ名に対応するデフォルトの寄せ字変換タイプ名protected final InvalidDataFormatException newInvalidDataFormatException(java.lang.Object... msgElements)
InvalidDataFormatException
を生成する。msgElements
- メッセージ要素InvalidDataFormatException
インスタンスprotected final InvalidDataFormatException addFormatAndRecordNumberTo(InvalidDataFormatException e)
InvalidDataFormatException
に
フォーマットファイルのパスと例外発生時の行番号を設定する。e
- 設定対象の例外インスタンスpublic java.lang.String getFileType()
public java.lang.String getMimeType()