/*
 * Copyright (c) 2007 NTT DATA Corporation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package jp.terasoluna.batch.tutorial.uc0001;

import java.util.Date;

import jp.terasoluna.fw.file.annotation.FileFormat;
import jp.terasoluna.fw.file.annotation.InputFileColumn;
import jp.terasoluna.fw.file.annotation.OutputFileColumn;

/**
 * “入金データファイル”用ファイル行オブジェクト。
 */
@FileFormat(overWriteFlg = true, encloseChar = '\"')
public class JB0002Data {

    /**
     * 取引ID
     */
    @InputFileColumn(columnIndex = 0)
    private int id = 0;

    /**
     * 支店
     */
    @InputFileColumn(columnIndex = 1)
    private String siten = null;

    /**
     * 顧客ID
     */
    @InputFileColumn(columnIndex = 2, bytes = 3)
    @OutputFileColumn(columnIndex = 0)
    private String kokyakuid = null;

    /**
     * 入金金額
     */
    @InputFileColumn(columnIndex = 3)
    @OutputFileColumn(columnIndex = 1)
    private int nyukin = 0;

    /**
     * 取引日
     */
    @InputFileColumn(columnIndex = 4, bytes = 10, columnFormat = "yyyy-MM-dd")
    @OutputFileColumn(columnIndex = 2, columnFormat = "yyyy/MM/dd")
    private Date torihikibi = null;

    /**
     * 取引IDを返却する。
     * @return 取引ID
     */
    public int getId() {
        return id;
    }

    /**
     * 取引IDを設定する。
     * @param id 取引ID
     */
    public void setId(int id) {
        this.id = id;
    }

    /**
     * 支店を返却する。
     * @return 支店
     */
    public String getSiten() {
        return siten;
    }

    /**
     * 支店を設定する。
     * @param siten 支店
     */
    public void setSiten(String siten) {
        this.siten = siten;
    }
    
    /**
     * 顧客IDを返却する。
     * @return 顧客ID
     */
    public String getKokyakuid() {
        return kokyakuid;
    }

    /**
     * 顧客IDを設定する。
     * @param kokyakuid 顧客ID
     */
    public void setKokyakuid(String kokyakuid) {
        this.kokyakuid = kokyakuid;
    }

    /**
     * 入金金額を返却する。
     * @return 入金金額
     */
    public int getNyukin() {
        return nyukin;
    }

    /**
     * 入金金額を設定する。
     * @param nyukin 入金金額
     */
    public void setNyukin(int nyukin) {
        this.nyukin = nyukin;
    }

    /**
     * 取引日を返却する。
     * @return 取引日
     */
    public Date getTorihikibi() {
        return torihikibi;
    }

    /**
     * 取引日を設定する。
     * @param torihikibi 取引日
     */
    public void setTorihikibi(Date torihikibi) {
        this.torihikibi = torihikibi;
    }

    /**
     * “入金データファイル”用ファイル行オブジェクトの内容を出力する。
     * @return “入金データファイル”用ファイル行オブジェクトの内容
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(" 取引ID:");
        sb.append(id);
        sb.append(", 支店:");
        sb.append(siten);
        sb.append(", 顧客ID:");
        sb.append(kokyakuid);
        sb.append(", 入金金額:");
        sb.append(nyukin);
        sb.append(", 取引日:");
        sb.append(torihikibi);
        return sb.toString();
    }
}
