/*
 * このソースコードは blanco Frameworkによって自動生成されています。
 * ソースコード自動生成ライブラリ blancoCg のPOJOクラスです。
 */
package blanco.cg.valueobject;

import java.util.ArrayList;

/**
 * パラメータを表現するためのバリューオブジェクト。言語によっては引数と呼ばれるものです。
 */
public class BlancoCgParameter {
    /**
     * フィールド [name]
     *
     * 項目の型 [java.lang.String]<br>
     * このパラメータの名前です。argOrigialStringなどが指定されます。
     */
    private String fName;

    /**
     * フィールド [description]
     *
     * 項目の型 [java.lang.String]<br>
     * このパラメータの説明です。
     */
    private String fDescription;

    /**
     * フィールド [type]
     *
     * 項目の型 [blanco.cg.valueobject.BlancoCgType]<br>
     * このパラメータの型です。java.lang.Stringなどを指定します。
     */
    private BlancoCgType fType;

    /**
     * フィールド [final]
     *
     * 項目の型 [boolean]<br>
     * 規定値   [true]<br>
     * このフィールドがfinalかどうかです。
     */
    private boolean fFinal = true;

    /**
     * フィールド [notnull]
     *
     * 項目の型 [boolean]<br>
     * 規定値   [false]<br>
     * このフィールドにnullを与えられた際に引数例外を発生させるかどうか。
     */
    private boolean fNotnull = false;

    /**
     * フィールド [annotationList]
     *
     * 項目の型 [java.util.ArrayList]<br>
     * 規定値   [new ArrayList()]<br>
     * このクラスに付与されているアノテーションのリストです。(java.lang.String)。<br>
     * .NET Framework版の自動生成のみ対応しています。
     */
    private ArrayList fAnnotationList = new ArrayList();

    /**
     * フィールド [name]のセッターメソッド
     *
     * 項目の型 [java.lang.String]<br>
     * このパラメータの名前です。argOrigialStringなどが指定されます。
     *
     * @param argName フィールド[name]に格納したい値
     */
    public void setName(final String argName) {
        fName = argName;
    }

    /**
     * フィールド[name]のゲッターメソッド
     *
     * 項目の型 [java.lang.String]<br>
     * このパラメータの名前です。argOrigialStringなどが指定されます。
     *
     * @return フィールド[name]に格納されている値
     */
    public String getName() {
        return fName;
    }

    /**
     * フィールド [description]のセッターメソッド
     *
     * 項目の型 [java.lang.String]<br>
     * このパラメータの説明です。
     *
     * @param argDescription フィールド[description]に格納したい値
     */
    public void setDescription(final String argDescription) {
        fDescription = argDescription;
    }

    /**
     * フィールド[description]のゲッターメソッド
     *
     * 項目の型 [java.lang.String]<br>
     * このパラメータの説明です。
     *
     * @return フィールド[description]に格納されている値
     */
    public String getDescription() {
        return fDescription;
    }

    /**
     * フィールド [type]のセッターメソッド
     *
     * 項目の型 [blanco.cg.valueobject.BlancoCgType]<br>
     * このパラメータの型です。java.lang.Stringなどを指定します。
     *
     * @param argType フィールド[type]に格納したい値
     */
    public void setType(final BlancoCgType argType) {
        fType = argType;
    }

    /**
     * フィールド[type]のゲッターメソッド
     *
     * 項目の型 [blanco.cg.valueobject.BlancoCgType]<br>
     * このパラメータの型です。java.lang.Stringなどを指定します。
     *
     * @return フィールド[type]に格納されている値
     */
    public BlancoCgType getType() {
        return fType;
    }

    /**
     * フィールド [final]のセッターメソッド
     *
     * 項目の型 [boolean]<br>
     * このフィールドがfinalかどうかです。
     *
     * @param argFinal フィールド[final]に格納したい値
     */
    public void setFinal(final boolean argFinal) {
        fFinal = argFinal;
    }

    /**
     * フィールド[final]のゲッターメソッド
     *
     * 項目の型 [boolean]<br>
     * 規定値   [true]<br>
     * このフィールドがfinalかどうかです。
     *
     * @return フィールド[final]に格納されている値
     */
    public boolean getFinal() {
        return fFinal;
    }

    /**
     * フィールド [notnull]のセッターメソッド
     *
     * 項目の型 [boolean]<br>
     * このフィールドにnullを与えられた際に引数例外を発生させるかどうか。
     *
     * @param argNotnull フィールド[notnull]に格納したい値
     */
    public void setNotnull(final boolean argNotnull) {
        fNotnull = argNotnull;
    }

    /**
     * フィールド[notnull]のゲッターメソッド
     *
     * 項目の型 [boolean]<br>
     * 規定値   [false]<br>
     * このフィールドにnullを与えられた際に引数例外を発生させるかどうか。
     *
     * @return フィールド[notnull]に格納されている値
     */
    public boolean getNotnull() {
        return fNotnull;
    }

    /**
     * フィールド [annotationList]のセッターメソッド
     *
     * 項目の型 [java.util.ArrayList]<br>
     * このクラスに付与されているアノテーションのリストです。(java.lang.String)。<br>
     * .NET Framework版の自動生成のみ対応しています。
     *
     * @param argAnnotationList フィールド[annotationList]に格納したい値
     */
    public void setAnnotationList(final ArrayList argAnnotationList) {
        fAnnotationList = argAnnotationList;
    }

    /**
     * フィールド[annotationList]のゲッターメソッド
     *
     * 項目の型 [java.util.ArrayList]<br>
     * 規定値   [new ArrayList()]<br>
     * このクラスに付与されているアノテーションのリストです。(java.lang.String)。<br>
     * .NET Framework版の自動生成のみ対応しています。
     *
     * @return フィールド[annotationList]に格納されている値
     */
    public ArrayList getAnnotationList() {
        return fAnnotationList;
    }

    /**
     * このバリューオブジェクトの文字列表現を取得します。
     *
     * オブジェクトのシャロー範囲でしかtoStringされない点に注意して利用してください。
     *
     * @return バリューオブジェクトの文字列表現。
     */
    public String toString() {
        final StringBuffer buf = new StringBuffer();
        buf.append("blanco.cg.valueobject.BlancoCgParameter[");
        buf.append("name=" + fName);
        buf.append(",description=" + fDescription);
        buf.append(",type=" + fType);
        buf.append(",final=" + fFinal);
        buf.append(",notnull=" + fNotnull);
        buf.append(",annotationList=" + fAnnotationList);
        buf.append("]");
        return buf.toString();
    }
}
