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 - ファイル行オブジェクト。
すべての実装されたインタフェース:
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 オプション

※注意事項


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

コンストラクタの詳細

FixedFileLineIterator

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

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

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

separateColumns

protected String[] separateColumns(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

isCheckByte

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

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

isCheckEncloseChar

protected boolean isCheckEncloseChar()
囲み文字が設定されていない事をチェックするかを返す。
FixedFileLineIteratorは固定長のため、囲み文字は設定しない。
そのため囲み文字が設定されていない事をチェックする。

オーバーライド:
クラス AbstractFileLineIterator<T> 内の isCheckEncloseChar
戻り値:
チェックを行う場合はtrue。

getDelimiter

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

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

getEncloseChar

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

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


Copyright © 2011. All Rights Reserved.