/*
 * DelimitedLineRecordReaderConfig.java
 * Copyright (C) 2008 Cyber Beans Corporation. All rights reserved.
 */
package jp.co.cybec.cb3.accessor.fileaccess.flat.delimited;

import java.util.ArrayList;
import java.util.List;

/**
 * 可変長ファイルの設定ファイル情報を保持するクラス。
 * @author Jianming Guo
 */
public class DelimitedLineRecordReaderConfig {

	/** ファイルパス */
	private String filepath = null;

	/** フィールド情報リスト */
	private List<DelimitedLineRecordFieldConfig> fieldList = null;

	/** セパレータ */
	private String separator = ",";

	/** クォート文字 */
	private String quotechar = null;

	/** スキップ行数 */
	private int skipLines = 0;

	/** エンコード */
	private String encode = null;

	/**
	 * コンストラクタ
	 */
	public DelimitedLineRecordReaderConfig() {
		// 初期化
		fieldList = new ArrayList<DelimitedLineRecordFieldConfig>();
	}

	/**
	 * ファイルパスを返します。
	 * @return ファイルパス
	 */
	public String getFilepath() {
		return filepath;
	}

	/**
	 * ファイルパスを設定します。
	 * @param filepath ファイルパス
	 */
	public void setFilepath(String filepath) {
		this.filepath = filepath;
	}

	/**
	 * フィールド情報リストを返します。
	 * @return フィールド情報リスト
	 */
	public List<DelimitedLineRecordFieldConfig> getFieldList() {
		return fieldList;
	}

	/**
	 * フィールド情報リストに追加します。
	 * @param field フィールド情報
	 */
	public void addField(DelimitedLineRecordFieldConfig field) {
		this.fieldList.add(field);
	}

	/**
	 * セパレータを返します。
	 * @return セパレータ
	 */
	public String getSeparator() {
		return separator;
	}

	/**
	 * セパレータを設定します。
	 * @param separator セパレータ
	 */
	public void setSeparator(String separator) {
		this.separator = separator;
	}

	/**
	 * クォート文字を返します。
	 * @return クォート文字
	 */
	public String getQuotechar() {
		return quotechar;
	}

	/**
	 * クォート文字を設定します。
	 * @param quotechar クォート文字
	 */
	public void setQuotechar(String quotechar) {
		this.quotechar = quotechar;
	}

	/**
	 * スキップ行数を返します。
	 * @return スキップ行数
	 */
	public int getSkipLines() {
		return skipLines;
	}

	/**
	 * スキップ行数を設定します。
	 * @param skipLines スキップ行数
	 */
	public void setSkipLines(int skipLines) {
		this.skipLines = skipLines;
	}

	/**
	 * エンコードを返します。
	 * @return エンコード
	 */
	public String getEncode() {
		return encode;
	}

	/**
	 * エンコードを設定します。
	 * @param encode エンコード
	 */
	public void setEncode(String encode) {
		this.encode = encode;
	}
}