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

/**
 * メールの添付ファイルをあらわすバリューオブジェクト。添付ファイル名や添付ファイルのデータそのものが格納されます。
 */
public class BlancoMailMessageAttachment {
    /**
     * フィールド [FILE_NAME]
     *
     * 項目の型 [java.lang.String]<br>
     * 添付ファイルのファイル名。 (send) ※送信時は、必ず指定してください。
     */
    private String fFileName;

    /**
     * フィールド [DATA]
     *
     * 項目の型 [byte[]]<br>
     * 添付ファイルのデータ。バイト配列で受け渡します。このため、JavaVMのメモリ総量に気をつかわなくてはならない点に注意してください。更に blancoMailCoreのセッションログの実装方法の特徴のため、添付ファイルのデータサイズ x 1.4程度に加えて、さらに添付ファイルデータサイズ x 1.4 程度のメモリが必要になります。
     */
    private byte[] fData;

    /**
     * フィールド [MIME_TYPE]
     *
     * 項目の型 [java.lang.String]<br>
     * 規定値   [application/octet-stream]<br>
     * 添付ファイルで利用するMIMEタイプ。
     */
    private String fMimeType = "application/octet-stream";

    /**
     * フィールド [SIZE]
     *
     * 項目の型 [int]<br>
     * 規定値   [-1]<br>
     * (receive) メールのサイズ。
     */
    private int fSize = -1;

    /**
     * フィールド [LINE_COUNT]
     *
     * 項目の型 [int]<br>
     * 規定値   [-1]<br>
     * (receive) メールの行数。
     */
    private int fLineCount = -1;

    /**
     * フィールド [CONTENT_TYPE]
     *
     * 項目の型 [java.lang.String]<br>
     * (receive) コンテントタイプ。
     */
    private String fContentType;

    /**
     * フィールド [DESCRIPTION]
     *
     * 項目の型 [java.lang.String]<br>
     * (receive) description。
     */
    private String fDescription;

    /**
     * フィールド [DISPOSITION]
     *
     * 項目の型 [java.lang.String]<br>
     * (receive) disposition。
     */
    private String fDisposition;

    /**
     * フィールド [FILE_NAME]のセッターメソッド
     *
     * 項目の型 [java.lang.String]<br>
     * 添付ファイルのファイル名。 (send) ※送信時は、必ず指定してください。
     *
     * @param argFileName フィールド[FILE_NAME]に格納したい値
     */
    public void setFileName(final String argFileName) {
        fFileName = argFileName;
    }

    /**
     * フィールド[FILE_NAME]のゲッターメソッド
     *
     * 項目の型 [java.lang.String]<br>
     * 添付ファイルのファイル名。 (send) ※送信時は、必ず指定してください。
     *
     * @return フィールド[FILE_NAME]に格納されている値
     */
    public String getFileName() {
        return fFileName;
    }

    /**
     * フィールド [DATA]のセッターメソッド
     *
     * 項目の型 [byte[]]<br>
     * 添付ファイルのデータ。バイト配列で受け渡します。このため、JavaVMのメモリ総量に気をつかわなくてはならない点に注意してください。更に blancoMailCoreのセッションログの実装方法の特徴のため、添付ファイルのデータサイズ x 1.4程度に加えて、さらに添付ファイルデータサイズ x 1.4 程度のメモリが必要になります。
     *
     * @param argData フィールド[DATA]に格納したい値
     */
    public void setData(final byte[] argData) {
        fData = argData;
    }

    /**
     * フィールド[DATA]のゲッターメソッド
     *
     * 項目の型 [byte[]]<br>
     * 添付ファイルのデータ。バイト配列で受け渡します。このため、JavaVMのメモリ総量に気をつかわなくてはならない点に注意してください。更に blancoMailCoreのセッションログの実装方法の特徴のため、添付ファイルのデータサイズ x 1.4程度に加えて、さらに添付ファイルデータサイズ x 1.4 程度のメモリが必要になります。
     *
     * @return フィールド[DATA]に格納されている値
     */
    public byte[] getData() {
        return fData;
    }

    /**
     * フィールド [MIME_TYPE]のセッターメソッド
     *
     * 項目の型 [java.lang.String]<br>
     * 添付ファイルで利用するMIMEタイプ。
     *
     * @param argMimeType フィールド[MIME_TYPE]に格納したい値
     */
    public void setMimeType(final String argMimeType) {
        fMimeType = argMimeType;
    }

    /**
     * フィールド[MIME_TYPE]のゲッターメソッド
     *
     * 項目の型 [java.lang.String]<br>
     * 規定値   [application/octet-stream]<br>
     * 添付ファイルで利用するMIMEタイプ。
     *
     * @return フィールド[MIME_TYPE]に格納されている値
     */
    public String getMimeType() {
        return fMimeType;
    }

    /**
     * フィールド [SIZE]のセッターメソッド
     *
     * 項目の型 [int]<br>
     * (receive) メールのサイズ。
     *
     * @param argSize フィールド[SIZE]に格納したい値
     */
    public void setSize(final int argSize) {
        fSize = argSize;
    }

    /**
     * フィールド[SIZE]のゲッターメソッド
     *
     * 項目の型 [int]<br>
     * 規定値   [-1]<br>
     * (receive) メールのサイズ。
     *
     * @return フィールド[SIZE]に格納されている値
     */
    public int getSize() {
        return fSize;
    }

    /**
     * フィールド [LINE_COUNT]のセッターメソッド
     *
     * 項目の型 [int]<br>
     * (receive) メールの行数。
     *
     * @param argLineCount フィールド[LINE_COUNT]に格納したい値
     */
    public void setLineCount(final int argLineCount) {
        fLineCount = argLineCount;
    }

    /**
     * フィールド[LINE_COUNT]のゲッターメソッド
     *
     * 項目の型 [int]<br>
     * 規定値   [-1]<br>
     * (receive) メールの行数。
     *
     * @return フィールド[LINE_COUNT]に格納されている値
     */
    public int getLineCount() {
        return fLineCount;
    }

    /**
     * フィールド [CONTENT_TYPE]のセッターメソッド
     *
     * 項目の型 [java.lang.String]<br>
     * (receive) コンテントタイプ。
     *
     * @param argContentType フィールド[CONTENT_TYPE]に格納したい値
     */
    public void setContentType(final String argContentType) {
        fContentType = argContentType;
    }

    /**
     * フィールド[CONTENT_TYPE]のゲッターメソッド
     *
     * 項目の型 [java.lang.String]<br>
     * (receive) コンテントタイプ。
     *
     * @return フィールド[CONTENT_TYPE]に格納されている値
     */
    public String getContentType() {
        return fContentType;
    }

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

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

    /**
     * フィールド [DISPOSITION]のセッターメソッド
     *
     * 項目の型 [java.lang.String]<br>
     * (receive) disposition。
     *
     * @param argDisposition フィールド[DISPOSITION]に格納したい値
     */
    public void setDisposition(final String argDisposition) {
        fDisposition = argDisposition;
    }

    /**
     * フィールド[DISPOSITION]のゲッターメソッド
     *
     * 項目の型 [java.lang.String]<br>
     * (receive) disposition。
     *
     * @return フィールド[DISPOSITION]に格納されている値
     */
    public String getDisposition() {
        return fDisposition;
    }

    /**
     * このバリューオブジェクトの文字列表現を取得します。
     *
     * オブジェクトのシャロー範囲でしかtoStringされない点に注意して利用してください。
     *
     * @return バリューオブジェクトの文字列表現。
     */
    public String toString() {
        final StringBuffer buf = new StringBuffer();
        buf.append("blanco.mail.core.valueobject.BlancoMailMessageAttachment[");
        buf.append("FILE_NAME=" + fFileName);
        if (fData == null) {
            buf.append(",DATA=null");
        } else {
            buf.append(",DATA=[");
            for (int index = 0; index < fData.length; index++) {
                buf.append((index == 0 ? "" : ", ") + fData[index]);
            }
            buf.append("]");
        }
        buf.append(",MIME_TYPE=" + fMimeType);
        buf.append(",SIZE=" + fSize);
        buf.append(",LINE_COUNT=" + fLineCount);
        buf.append(",CONTENT_TYPE=" + fContentType);
        buf.append(",DESCRIPTION=" + fDescription);
        buf.append(",DISPOSITION=" + fDisposition);
        buf.append("]");
        return buf.toString();
    }
}
