package jp.terasoluna.fw.file.dao.standard;
import java.util.Map;
import jp.terasoluna.fw.file.annotation.FileFormat;
import jp.terasoluna.fw.file.dao.standard.AbstractFileLineWriter;
import jp.terasoluna.fw.file.dao.standard.ColumnFormatter;
/**
* AbstractFileLineWriterのImplクラス。<br>
* 空実装<br>
* 「区切り文字」と「囲み文字」を設定できる。<br>
* コンストラクタでinit()を実行していないため、コンストラクタ以外の試験では<br>
* インスタンス生成後、必ずinit()を実行してから利用すること。
* @param <T> ファイル行オブジェクト
*/
public class AbstractFileLineWriterImpl01<T> extends AbstractFileLineWriter<T> {
/**
* 区切り文字
*/
private char delimiter = Character.MIN_VALUE;
/**
* 囲み文字
*/
private char encloseChar = Character.MIN_VALUE;
/**
* コンストラクタ。
* @param fileName ファイル名
* @param clazz パラメータクラス
* @param columnFormatterMap テキスト取得ルール
*/
public AbstractFileLineWriterImpl01(String fileName, Class<T> clazz,
Map<String, ColumnFormatter> columnFormatterMap) {
super(fileName, clazz, columnFormatterMap);
FileFormat fileFormat = clazz.getAnnotation(FileFormat.class);
this.delimiter = fileFormat.delimiter();
this.encloseChar = fileFormat.encloseChar();
}
/**
* ファイル行オブジェクトにアノテーションが設定されている事をチェックするかどうかを返す。
* @return チェックを行う場合はtrue。
*/
@Override
protected boolean isCheckColumnAnnotationCount() {
return false;
}
/**
* delimiterを取得する。
* @return delimiter
*/
public char getDelimiter() {
return delimiter;
}
/**
* delimiterを設定する。
* @param delimiter delimiter
*/
public void setDelimiter(char delimiter) {
this.delimiter = delimiter;
}
/**
* encloseCharを取得する。
* @return encloseChar
*/
public char getEncloseChar() {
return encloseChar;
}
/**
* encloseCharを設定する。
* @param encloseChar encloseChar
*/
public void setEncloseChar(char encloseChar) {
this.encloseChar = encloseChar;
}
}