/*
 * このソースコードは blanco Frameworkにより自動生成されました。
 */
package blanco.cg.valueobject;

/**
 * 型を表現するためのバリューオブジェクト。既存のクラスを参照する場合に利用されます。<br>
 * このバリューオブジェクトでは、対象となる型がクラスなのかインタフェースなのかは表現しません。クラスかインタフェースなのかについては特定しないのです。<br>
 * このクラスの存在意義は genericsやarrayといったフィールドを持っている点です。これらを表現するために、型は単なるjava.lang.Stringではなくバリューオブジェクトである必要があり、また BlancoCgClassといったソースコードを生成するための型とは一線を画する必要が出てくるのです。
 */
public class BlancoCgType {
    /**
     * フィールド [name]
     *
     * 項目の型 [java.lang.String]<br>
     * この型の名前です。java.lang.Stringなどパッケージ名付きで指定します。[]は含むことは出来ません。配列を表す場合には arrayフィールドを利用します。
     */
    private String fName;

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

    /**
     * フィールド [generics]
     *
     * 項目の型 [java.lang.String]<br>
     * この型に追加されるジェネリクスを指定します。
     */
    private String fGenerics;

    /**
     * フィールド [array]
     *
     * 項目の型 [boolean]<br>
     * 規定値   [false]<br>
     * 型が配列なのかどうかを示します。
     */
    private boolean fArray = false;

    /**
     * フィールド [name]のセッターメソッド
     *
     * 項目の型 [java.lang.String]<br>
     * この型の名前です。java.lang.Stringなどパッケージ名付きで指定します。[]は含むことは出来ません。配列を表す場合には arrayフィールドを利用します。
     *
     * @param argName フィールド[name]に格納したい値
     */
    public void setName(final String argName) {
        fName = argName;
    }

    /**
     * フィールド[name]のゲッターメソッド
     *
     * 項目の型 [java.lang.String]<br>
     * この型の名前です。java.lang.Stringなどパッケージ名付きで指定します。[]は含むことは出来ません。配列を表す場合には arrayフィールドを利用します。
     *
     * @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;
    }

    /**
     * フィールド [generics]のセッターメソッド
     *
     * 項目の型 [java.lang.String]<br>
     * この型に追加されるジェネリクスを指定します。
     *
     * @param argGenerics フィールド[generics]に格納したい値
     */
    public void setGenerics(final String argGenerics) {
        fGenerics = argGenerics;
    }

    /**
     * フィールド[generics]のゲッターメソッド
     *
     * 項目の型 [java.lang.String]<br>
     * この型に追加されるジェネリクスを指定します。
     *
     * @return フィールド[generics]に格納されている値
     */
    public String getGenerics() {
        return fGenerics;
    }

    /**
     * フィールド [array]のセッターメソッド
     *
     * 項目の型 [boolean]<br>
     * 型が配列なのかどうかを示します。
     *
     * @param argArray フィールド[array]に格納したい値
     */
    public void setArray(final boolean argArray) {
        fArray = argArray;
    }

    /**
     * フィールド[array]のゲッターメソッド
     *
     * 項目の型 [boolean]<br>
     * 規定値   [false]<br>
     * 型が配列なのかどうかを示します。
     *
     * @return フィールド[array]に格納されている値
     */
    public boolean getArray() {
        return fArray;
    }

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