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

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

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

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

	/** ファイルオープンモード */
	private String append = null;

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

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

	/** 改行コード */
	private String lineSeparator = null;

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

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

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

	/**
	 * ファイルオープンモードを返します。
	 * @return ファイルオープンモード
	 */
	public String getAppend() {
		return append;
	}

	/**
	 * ファイルオープンモードを設定します。
	 * @param append ファイルオープンモード
	 */
	public void setAppend(String append) {
		this.append = append;
	}

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

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

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

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

	/**
	 * 改行コードを返します。
	 * @return 改行コード
	 */
	public String getLineSeparator() {
		return lineSeparator;
	}

	/**
	 * 改行コードを設定します。
	 * @param lineSeparator 改行コード
	 */
	public void setLineSeparator(String lineSeparator) {
		this.lineSeparator = lineSeparator;
	}
}