jp.terasoluna.fw.file.dao.standard
クラス FixedFileLineIterator<T>

java.lang.Object
  上位を拡張 jp.terasoluna.fw.file.dao.standard.AbstractFileLineIterator<T>
      上位を拡張 jp.terasoluna.fw.file.dao.standard.FixedFileLineIterator<T>
型パラメータ:
T - ファイル行オブジェクト。
すべての実装されたインタフェース:
java.util.Iterator, FileLineIterator<T>

public class FixedFileLineIterator<T>
extends AbstractFileLineIterator<T>

固定長ファイル用のファイルアクセス(データ取得)クラス。

固定長ファイルからデータを読み込み、 1行分のデータをファイル行オブジェクトに格納する。

※利用するファイル行オブジェクトのアノテーション項目
@.@FileFormatの設定項目
論理項目名 物理項目名 デフォルト値 必須性
行区切り文字 lineFeedChar システムの行区切り文字 オプション
ファイルエンコーディング fileEncodeing システムのファイルエンコーディング オプション
ヘッダ行数 headerLineCount 0 オプション
トレイラ行数 trailerLineCount 0 オプション

A.@InputFileColumn、@OutputFileColumnの設定項目
論理項目名 物理項目名 デフォルト値 必須性
カラムインデックス columnIndex - 必須
フォーマット columnFormat "" オプション
バイト長 bytes -1 オプション
パディング種別 paddingType パディングなし オプション
パディング文字 paddingChar ' ' オプション
トリム種別 trimType トリムなし オプション
トリム文字 trimChar ' ' オプション
文字変換種別 stringConverter NullStringConverter.class オプション

※注意事項


フィールドの概要
private static char DELIMITER
          区切り文字。
private static char ENCLOSE_CHAR
          囲み文字。
private  int totalDefineBytes
          InputFileColumnで定義された総バイト数。
 
コンストラクタの概要
FixedFileLineIterator(java.lang.String fileName, java.lang.Class<T> clazz, java.util.Map<java.lang.String,ColumnParser> columnParserMap)
          コンストラクタ。
 
メソッドの概要
 char getDelimiter()
          区切り文字を取得する。
 char getEncloseChar()
          囲み文字を取得する。
protected  boolean isCheckByte(InputFileColumn inputFileColumn)
          対象カラムに対するバイト数チェックを行うかを返す。
protected  java.lang.String[] separateColumns(java.lang.String fileLineString)
          読み込んだ固定長のレコードをアノテーションのbyte数、 columnIndexに従って分解する。
 
クラス jp.terasoluna.fw.file.dao.standard.AbstractFileLineIterator から継承されたメソッド
closeFile, getCurrentLineCount, getFields, getFileEncoding, getFileName, getHeader, getHeaderLineCount, getLineFeedChar, getTrailer, getTrailerLineCount, hasNext, init, next, readLine, remove, skip
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

DELIMITER

private static final char DELIMITER
区切り文字。固定長ファイルは「,(カンマ)」で固定。

関連項目:
定数フィールド値

ENCLOSE_CHAR

private static final char ENCLOSE_CHAR
囲み文字。固定長ファイルは「''」で固定。

関連項目:
定数フィールド値

totalDefineBytes

private int totalDefineBytes
InputFileColumnで定義された総バイト数。
1行に当たるデータの総バイト数です。

コンストラクタの詳細

FixedFileLineIterator

public FixedFileLineIterator(java.lang.String fileName,
                             java.lang.Class<T> clazz,
                             java.util.Map<java.lang.String,ColumnParser> columnParserMap)
コンストラクタ。

区切り文字が初期値以外の場合、 囲み文字が初期値以外の場合はFileExceptionがスローされる。

パラメータ:
fileName - ファイル名
clazz - 結果クラス
columnParserMap - フォーマット処理リスト
メソッドの詳細

separateColumns

protected java.lang.String[] separateColumns(java.lang.String fileLineString)
読み込んだ固定長のレコードをアノテーションのbyte数、 columnIndexに従って分解する。
引数fileLineStringnullもしくは 空文字の場合は、要素を持たないString配列を返します。

処理の順序は、

定義:
クラス AbstractFileLineIterator<T> 内の separateColumns
パラメータ:
fileLineString - 固定長ファイルの1レコード分の文字列
戻り値:
データ部1行の文字列を分解した文字配列

isCheckByte

protected boolean isCheckByte(InputFileColumn inputFileColumn)
対象カラムに対するバイト数チェックを行うかを返す。
FixedFileLineIteratorは固定長のため、行単位でバイト数チェックを行う。
そのためカラムに対するバイト数チェックは行わない。

オーバーライド:
クラス AbstractFileLineIterator<T> 内の isCheckByte
パラメータ:
inputFileColumn - 対象カラムのInputFileColumn情報
戻り値:
false

getDelimiter

public char getDelimiter()
区切り文字を取得する。
固定長ファイルは「,(カンマ)」で固定。

定義:
クラス AbstractFileLineIterator<T> 内の getDelimiter
戻り値:
行区切り文字

getEncloseChar

public char getEncloseChar()
囲み文字を取得する。
固定長ファイルは「''」で固定。

定義:
クラス AbstractFileLineIterator<T> 内の getEncloseChar
戻り値:
囲み文字