@Published(tag="architect") public abstract class DataFile extends java.lang.Object
ファイルへ書き出す機能(準備データ作成用)と ファイルから読み込む機能(結果ファイル確認用)を持つ。
本インスタンスは複数のDataFileFragmentにより構成される。 ファイル全体に関わる情報(ディレクティブなど)は本クラスが保持し、 レコードレイアウト毎の情報(レコード長など)はDataFileFragmentが保持する。
ほとんどの機能は本クラスで実装されているが、ファイルタイプにより処理が異なる部分は サブクラスで定義される。Modifier and Type | Field and Description |
---|---|
protected java.util.List<DataFileFragment> |
all
この固定長ファイルを構成する断片
|
protected java.util.Map<java.lang.String,java.lang.Object> |
directives
ディレクティブ一覧
|
Modifier | Constructor and Description |
---|---|
protected |
DataFile(java.lang.String path)
コンストラクタ。
|
Modifier and Type | Method and Description |
---|---|
protected java.lang.Object |
convertDirectiveValue(DataRecordFormatterSupport.Directive directive,
java.lang.String stringValue)
ディレクティブの値を、文字列から各ディレクティブが許容する型に変換する。
|
LayoutDefinition |
createLayout()
フォーマット定義を作成する。
本インスタンスおよび所有するDataFileFragmentのレイアウト情報を元に フォーマット定義を生成する。 書き込み時に使用する。 (書き込み時はレイアウト種別を明示的に指定できるため、1つのレイアウトでまかなえる) |
LayoutDefinition |
createLayout(DataFileFragment... fragments)
フォーマット定義を作成する。
本インスタンスおよび所有するDataFileFragmentのレイアウト情報を元に フォーマット定義を生成する。 |
protected abstract DataFileFragment |
createNewFragment()
新しいファイルの断片を生成する。
生成された断片はこのファイルの管理下に置かれる。 |
protected java.nio.charset.Charset |
getEncodingFromDirectives()
ディレクティブからエンコーディングを取得する。
|
protected abstract java.lang.String |
getFileType()
ファイルタイプを取得する。
|
DataFileFragment |
getNewFragment()
この固定長ファイルを構成する、新しい断片を取得する。
|
java.lang.String |
getPath()
ファイルパスを取得する。
|
protected void |
prepareDefaultDirectives(java.lang.String key)
デフォルトのディレクティブを取得する。
デフォルト値が設定されていない場合は空のMapを返却する(デフォルト値なし)。 |
java.util.List<DataRecord> |
read()
ファイルから読み込む。
|
void |
setDirective(java.lang.String directiveName,
java.lang.String stringValue)
ディレクティブを設定する。
|
java.util.List<DataRecord> |
toDataRecords()
|
protected abstract DataRecordFormatterSupport.Directive |
valueOf(java.lang.String directiveName)
ディレクティブ名称からディレクティブを取得する。
|
void |
write()
ファイルへ出力する。
出力先はコンストラクタで設定したパスとなる。 |
protected final java.util.List<DataFileFragment> all
protected final java.util.Map<java.lang.String,java.lang.Object> directives
protected DataFile(java.lang.String path)
path
- ファイルパスprotected final void prepareDefaultDirectives(java.lang.String key)
key
- コンポーネント設定ファイルのキーprotected abstract java.lang.String getFileType()
public void write()
public DataFileFragment getNewFragment()
protected abstract DataFileFragment createNewFragment()
public java.util.List<DataRecord> toDataRecords()
public java.util.List<DataRecord> read()
読み込み先はコンストラクタで指定したファイルパスとなる。 読み込み時に使用されるファイルフォーマットは、 本インスタンスが持つDataFileFragmentを使用する。
本インスタンスに対応するデータを読み終えたあとで、 入力ストリームが終端に達していない場合、最末尾のレコードレイアウトで残りのストリームを読み切る。
public LayoutDefinition createLayout()
public LayoutDefinition createLayout(DataFileFragment... fragments)
fragments
- 元となる断片public void setDirective(java.lang.String directiveName, java.lang.String stringValue) throws java.lang.IllegalArgumentException
directiveName
- ディレクティブ名称stringValue
- 値java.lang.IllegalArgumentException
- 許容されないディレクティブが設定された場合public java.lang.String getPath()
protected java.lang.Object convertDirectiveValue(DataRecordFormatterSupport.Directive directive, java.lang.String stringValue)
directive
- ディレクティブstringValue
- 値protected abstract DataRecordFormatterSupport.Directive valueOf(java.lang.String directiveName)
directiveName
- ディレクティブ名称protected final java.nio.charset.Charset getEncodingFromDirectives()