/*
 * blanco Framework
 * Copyright (C) 2004-2009 IGA Tosiki
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 */
package blanco.jsf.valueobject;

import java.util.List;

/**
 * blancoJsf が自動生成するバッチ処理クラスの各種情報をあらわします。
 */
public class BlancoJsfStructure {
    /**
     * JSFの基底IDを指定します。必須項目です。通常は画面IDとなります。
     *
     * フィールド: [name]。
     */
    private String fName;

    /**
     * パッケージ名を指定します。必須項目です。
     *
     * フィールド: [package]。
     */
    private String fPackage;

    /**
     * Bean名。
     *
     * フィールド: [bean]。
     */
    private String fBean;

    /**
     * メッセージ定義の説明を記載します。
     *
     * フィールド: [description]。
     */
    private String fDescription;

    /**
     * クラス名の後方に付与されるサフィックス。
     *
     * フィールド: [suffix]。
     */
    private String fSuffix;

    /**
     * JSF処理定義のリスト。
     *
     * フィールド: [processList]。
     * デフォルト: [new java.util.ArrayList<blanco.jsf.valueobject.BlancoJsfProcessStructure>();]。
     */
    private List<blanco.jsf.valueobject.BlancoJsfProcessStructure> fProcessList = new java.util.ArrayList<blanco.jsf.valueobject.BlancoJsfProcessStructure>();;

    /**
     * フィールド [name] の値を設定します。
     *
     * フィールドの説明: [JSFの基底IDを指定します。必須項目です。通常は画面IDとなります。]。
     *
     * @param argName フィールド[name]に設定する値。
     */
    public void setName(final String argName) {
        fName = argName;
    }

    /**
     * フィールド [name] の値を取得します。
     *
     * フィールドの説明: [JSFの基底IDを指定します。必須項目です。通常は画面IDとなります。]。
     *
     * @return フィールド[name]から取得した値。
     */
    public String getName() {
        return fName;
    }

    /**
     * フィールド [package] の値を設定します。
     *
     * フィールドの説明: [パッケージ名を指定します。必須項目です。]。
     *
     * @param argPackage フィールド[package]に設定する値。
     */
    public void setPackage(final String argPackage) {
        fPackage = argPackage;
    }

    /**
     * フィールド [package] の値を取得します。
     *
     * フィールドの説明: [パッケージ名を指定します。必須項目です。]。
     *
     * @return フィールド[package]から取得した値。
     */
    public String getPackage() {
        return fPackage;
    }

    /**
     * フィールド [bean] の値を設定します。
     *
     * フィールドの説明: [Bean名。]。
     *
     * @param argBean フィールド[bean]に設定する値。
     */
    public void setBean(final String argBean) {
        fBean = argBean;
    }

    /**
     * フィールド [bean] の値を取得します。
     *
     * フィールドの説明: [Bean名。]。
     *
     * @return フィールド[bean]から取得した値。
     */
    public String getBean() {
        return fBean;
    }

    /**
     * フィールド [description] の値を設定します。
     *
     * フィールドの説明: [メッセージ定義の説明を記載します。]。
     *
     * @param argDescription フィールド[description]に設定する値。
     */
    public void setDescription(final String argDescription) {
        fDescription = argDescription;
    }

    /**
     * フィールド [description] の値を取得します。
     *
     * フィールドの説明: [メッセージ定義の説明を記載します。]。
     *
     * @return フィールド[description]から取得した値。
     */
    public String getDescription() {
        return fDescription;
    }

    /**
     * フィールド [suffix] の値を設定します。
     *
     * フィールドの説明: [クラス名の後方に付与されるサフィックス。]。
     *
     * @param argSuffix フィールド[suffix]に設定する値。
     */
    public void setSuffix(final String argSuffix) {
        fSuffix = argSuffix;
    }

    /**
     * フィールド [suffix] の値を取得します。
     *
     * フィールドの説明: [クラス名の後方に付与されるサフィックス。]。
     *
     * @return フィールド[suffix]から取得した値。
     */
    public String getSuffix() {
        return fSuffix;
    }

    /**
     * フィールド [processList] の値を設定します。
     *
     * フィールドの説明: [JSF処理定義のリスト。]。
     *
     * @param argProcessList フィールド[processList]に設定する値。
     */
    public void setProcessList(final List<blanco.jsf.valueobject.BlancoJsfProcessStructure> argProcessList) {
        fProcessList = argProcessList;
    }

    /**
     * フィールド [processList] の値を取得します。
     *
     * フィールドの説明: [JSF処理定義のリスト。]。
     * デフォルト: [new java.util.ArrayList<blanco.jsf.valueobject.BlancoJsfProcessStructure>();]。
     *
     * @return フィールド[processList]から取得した値。
     */
    public List<blanco.jsf.valueobject.BlancoJsfProcessStructure> getProcessList() {
        return fProcessList;
    }

    /**
     * このバリューオブジェクトの文字列表現を取得します。
     *
     * <P>使用上の注意</P>
     * <UL>
     * <LI>オブジェクトのシャロー範囲のみ文字列化の処理対象となります。
     * <LI>オブジェクトが循環参照している場合には、このメソッドは使わないでください。
     * </UL>
     *
     * @return バリューオブジェクトの文字列表現。
     */
    @Override
    public String toString() {
        final StringBuffer buf = new StringBuffer();
        buf.append("blanco.jsf.valueobject.BlancoJsfStructure[");
        buf.append("name=" + fName);
        buf.append(",package=" + fPackage);
        buf.append(",bean=" + fBean);
        buf.append(",description=" + fDescription);
        buf.append(",suffix=" + fSuffix);
        buf.append(",processList=" + fProcessList);
        buf.append("]");
        return buf.toString();
    }
}
