|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjp.terasoluna.fw.file.dao.standard.AbstractFileLineWriter<T>
T
- ファイル行オブジェクト。public abstract class AbstractFileLineWriter<T>
ファイルアクセス(データ書込)用の共通クラス。
ファイルアクセス(データ書込)を行う3つのクラス(CSV、固定長、可変長) に共通する処理をまとめた抽象クラス。
ファイルの種類に対応するサブクラスが処理を行う。
使用例はFileLineWriter
を参照のこと。
ファイル取得処理は下記の手順で呼び出されるように実装すること。
FileLineWriter
,
CSVFileLineWriter
,
FixedFileLineWriter
,
VariableFileLineWriter
,
PlainFileLineWriter
フィールドの概要 | |
---|---|
private boolean |
calledInit
初期化処理実行フラグ。 |
private java.lang.Class<T> |
clazz
パラメータクラスのクラス。 |
private int[] |
columnBytes
各カラムごとのバイト数を格納する変数。 |
private java.lang.String[] |
columnFormats
各カラムごとのカラムのフォーマットを格納する変数。 |
private java.util.Map<java.lang.String,ColumnFormatter> |
columnFormatterMap
カラムフォーマット(ファイル書込)を格納するマップ。 |
private int[] |
columnIndexs
各カラムごとのカラムIndexを格納する変数。 |
private int |
currentLineCount
書き込み処理済みデータ部の行数。 |
private java.lang.reflect.Field[] |
fieldArray
ファイル行オブジェクトの属性のフィールドオブジェクトの配列を格納する変数。 |
private java.lang.reflect.Field[] |
fields
ファイル行オブジェクトのField情報(Annotation)を格納する変数。 |
private java.lang.String |
fileEncoding
ファイルエンコーディング。 |
private java.lang.String |
fileName
ファイルアクセスを行うファイル名。 |
private static int |
INITIAL_LINE_NO
初期化処理時の行番号。 |
private java.lang.String |
lineFeedChar
行区切り文字。 |
private java.lang.reflect.Method[] |
methods
メソッドオブジェクト |
private OutputFileColumn[] |
outputFileColumns
ファイル行オブジェクトの出力設定アノテーションを格納する変数。 |
private char[] |
paddingChars
各カラムごとのパディング文字を格納する変数。 |
private PaddingType[] |
paddingTypes
各カラムごとのパディング種別を格納する変数。 |
private static java.util.Map<java.lang.Class,StringConverter> |
stringConverterCacheMap
ファイル行オブジェクトのストリングコンバータを格納するマップ。 |
private StringConverter[] |
stringConverters
ファイル行オブジェクトのストリングコンバータを格納する変数。 |
private char[] |
trimChars
各カラムのトリム文字を格納する変数。 |
private TrimType[] |
trimTypes
各カラムごとのトリム種別を格納する変数。 |
private boolean |
writeData
データ部出力確認用フラグ。 |
private java.io.Writer |
writer
ファイルアクセス(出力)用の文字ストリーム。 |
private boolean |
writeTrailer
トレイラ部出力確認用フラグ。 |
コンストラクタの概要 | |
---|---|
AbstractFileLineWriter(java.lang.String fileName,
java.lang.Class<T> clazz,
java.util.Map<java.lang.String,ColumnFormatter> columnFormatterMap)
コンストラクタ。 |
メソッドの概要 | |
---|---|
private void |
buildFields()
ファイル行オブジェクトの属性のフィールドオブジェクトの配列を生成する。 |
private void |
buildMethods()
ファイル行オブジェクトの属性のgetterメソッドのメソッドオブジェクトの配列を生成する。 |
private void |
buildStringConverters()
ファイル行オブジェクトの属性の文字変換種別オブジェクトの配列を生成する。 |
protected void |
checkWriteTrailer()
トレイラ部の処理が終わっているかどうかを判定する。 |
void |
closeFile()
ファイルクローズ処理。 |
protected java.lang.String |
getColumn(T t,
int index)
ファイル行オブジェクトからカラムインデックスと一致する属性の値を取得する。 |
abstract char |
getDelimiter()
区切り文字を取得する。 |
abstract char |
getEncloseChar()
囲み文字を取得する。 |
protected java.lang.reflect.Field[] |
getFieldArray()
ファイル行オブジェクトのカラムインデックスの定義順のField情報(Annotation)を格納する変数を取得する。 |
protected java.lang.reflect.Field[] |
getFields()
ファイル行オブジェクトのField情報(Annotation)を格納する変数を取得する。 |
java.lang.String |
getFileName()
ファイル名を取得する。 |
protected java.lang.String |
getLineFeedChar()
行区切り文字を設定する。 |
protected java.lang.reflect.Method[] |
getMethods()
ファイル行オブジェクトのField情報に対応するgetterメソッドを格納する変数を取得する。 |
protected java.io.Writer |
getWriter()
ファイルアクセス(出力)用の文字ストリームを取得する。 |
protected void |
init()
初期化処理を行う。 |
protected boolean |
isCheckByte(int columnByte)
対象カラムに対するバイト数チェックを行うかを返す。 |
protected boolean |
isCheckByte(OutputFileColumn outputFileColumn)
対象カラムに対するバイト数チェックを行うかを返す。 |
void |
printDataLine(T t)
データ部への書き込み処理。 |
void |
printHeaderLine(java.util.List<java.lang.String> headerLine)
ヘッダ部への書込み処理。 |
private void |
printList(java.util.List<java.lang.String> stringList)
ヘッダ部、トレイラ部の書き込み用の共通メソッド。 |
void |
printTrailerLine(java.util.List<java.lang.String> trailerLine)
トレイラ部への書込み処理。 |
void |
setColumnFormatterMap(java.util.Map<java.lang.String,ColumnFormatter> columnFormatterMap)
カラムフォーマット(ファイル書込)処理を格納するマップを取得する。 |
protected void |
setWriteData(boolean writeData)
データ部の出力が開始されているかどうかを判定するフラグ。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
private static final int INITIAL_LINE_NO
private java.io.Writer writer
private java.lang.String fileName
private java.lang.String fileEncoding
private java.lang.Class<T> clazz
private java.lang.String lineFeedChar
private java.lang.reflect.Field[] fields
private OutputFileColumn[] outputFileColumns
private int[] columnIndexs
private java.lang.String[] columnFormats
private int[] columnBytes
private PaddingType[] paddingTypes
private char[] paddingChars
private TrimType[] trimTypes
private char[] trimChars
private StringConverter[] stringConverters
private static java.util.Map<java.lang.Class,StringConverter> stringConverterCacheMap
private java.lang.reflect.Field[] fieldArray
private java.lang.reflect.Method[] methods
private java.util.Map<java.lang.String,ColumnFormatter> columnFormatterMap
private boolean writeData
private boolean writeTrailer
private int currentLineCount
private boolean calledInit
コンストラクタの詳細 |
---|
public AbstractFileLineWriter(java.lang.String fileName, java.lang.Class<T> clazz, java.util.Map<java.lang.String,ColumnFormatter> columnFormatterMap)
@FileFormat
アノテーションの設定チェックする。
@FileFormat
アノテーションが設定されていない場合は非検査例外をスローする。
fileName
- ファイル名clazz
- パラメータクラスcolumnFormatterMap
- テキスト取得ルールメソッドの詳細 |
---|
protected void init()
private void buildFields()
private void buildStringConverters()
private void buildMethods()
FileException
- getterメソッドが見つからなかった場合。public void printHeaderLine(java.util.List<java.lang.String> headerLine)
FileLineWriter<T>
内の printHeaderLine
headerLine
- ヘッダ部へ書き込む文字列のリストpublic void printDataLine(T t)
FileLineWriter<T>
内の printDataLine
t
- データ部へ書き込むファイル行オブジェクトpublic void printTrailerLine(java.util.List<java.lang.String> trailerLine)
FileLineWriter<T>
内の printTrailerLine
trailerLine
- トレイラ部へ書き込む文字列のリストprivate void printList(java.util.List<java.lang.String> stringList)
stringList
- 文字列のリストpublic void closeFile()
FileLineWriter<T>
内の closeFile
protected java.lang.String getColumn(T t, int index)
ファイル行オブジェクトからカラムインデックスと一致する属性の値を取得する。
属性を取得する際、ファイル行オブジェクトのアノテーションの記述により
以下の処理を行う。
t
- ファイル行オブジェクトindex
- カラムのインデックス
public java.lang.String getFileName()
protected java.lang.String getLineFeedChar()
public void setColumnFormatterMap(java.util.Map<java.lang.String,ColumnFormatter> columnFormatterMap)
columnFormatterMap
- カラムフォーマット(ファイル書込)を格納するマップprotected java.io.Writer getWriter()
protected java.lang.reflect.Field[] getFields()
protected java.lang.reflect.Method[] getMethods()
protected java.lang.reflect.Field[] getFieldArray()
protected void setWriteData(boolean writeData)
writeData
- フラグprotected void checkWriteTrailer()
public abstract char getDelimiter()
public abstract char getEncloseChar()
protected boolean isCheckByte(OutputFileColumn outputFileColumn)
固定長ファイル形式の場合は常にtrue
を返却してバイト数チェックを行う。
可変長、CSV形式でbytes
が指定されているときには
trueを返却しバイト数チェックを行う。
outputFileColumn
- 対象カラムのOutputFileColumn情報
protected boolean isCheckByte(int columnByte)
columnByte
- 対象カラムのバイト数
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |