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

import java.util.ArrayList;
import java.util.Date;

/**
 * メール本体をあらわすバリューオブジェクト。このバリューオブジェクトを通じてメールの送受信をおこないます。ここにはメールの本文や宛先などの情報が入ります。
 */
public class BlancoMailMessage {
    /**
     * フィールド [FROM]
     *
     * 項目の型 [blanco.mail.core.valueobject.BlancoMailAddress]<br>
     * Fromアドレス。「差出人」や「送信者」と呼ばれることがあります。Fromは1個に限定されています。 (send) 設定された値は Message-IDの一部に利用されます。 ※送信時は、必ず指定してください。
     */
    private BlancoMailAddress fFrom;

    /**
     * フィールド [TO]
     *
     * 項目の型 [java.util.ArrayList]<br>
     * 規定値   [new java.util.ArrayList()]<br>
     * Toアドレスのリスト。Toアドレスは「宛先」と呼ばれることがあります。アドレスは  BlancoMailAddress クラスのオブジェクトです。 (send) ※送信時は、少なくとも1宛先は必ず指定してください。
     */
    private ArrayList fTo = new java.util.ArrayList();

    /**
     * フィールド [CC]
     *
     * 項目の型 [java.util.ArrayList]<br>
     * 規定値   [new java.util.ArrayList()]<br>
     * Ccアドレスのリスト。Ccアドレスは「CC」と呼ばれることがあります。アドレスは  BlancoMailAddress クラスのオブジェクトです。
     */
    private ArrayList fCc = new java.util.ArrayList();

    /**
     * フィールド [BCC]
     *
     * 項目の型 [java.util.ArrayList]<br>
     * 規定値   [new java.util.ArrayList()]<br>
     * Bccアドレスのリスト。アドレスは  BlancoMailAddress クラスのオブジェクトです。
     */
    private ArrayList fBcc = new java.util.ArrayList();

    /**
     * フィールド [REPLY_TO]
     *
     * 項目の型 [blanco.mail.core.valueobject.BlancoMailAddress]<br>
     * replyToアドレス。「返信アドレス」と呼ばれることがあります。replyToは1個に限定されています。
     */
    private BlancoMailAddress fReplyTo;

    /**
     * フィールド [SUBJECT]
     *
     * 項目の型 [java.lang.String]<br>
     * メールの題名。「件名」や「Subject」と呼ばれることがあります。 (send) ※送信時は、必ず指定してください。
     */
    private String fSubject;

    /**
     * フィールド [TEXT]
     *
     * 項目の型 [java.lang.String]<br>
     * メールの本文。 (send) ※送信時は、必ず指定してください。
     */
    private String fText;

    /**
     * フィールド [SENT_DATE]
     *
     * 項目の型 [java.util.Date]<br>
     * メールの送信日付。送信／受信のいずれの場合において利用されます。(send) 送信時に nullが設定されている場合は、システム日時が自動設定されます。
     */
    private Date fSentDate;

    /**
     * フィールド [HEADER_LIST]
     *
     * 項目の型 [java.util.ArrayList]<br>
     * 規定値   [new java.util.ArrayList()]<br>
     * ヘッダーのリスト。ヘッダーは BlancoMailMessageHeader クラスのオブジェクトです。
     */
    private ArrayList fHeaderList = new java.util.ArrayList();

    /**
     * フィールド [RECEIVED_DATE]
     *
     * 項目の型 [java.util.Date]<br>
     * (receive) メールの受信日付。
     */
    private Date fReceivedDate;

    /**
     * フィールド [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;

    /**
     * フィールド [ATTACHMENT_LIST]
     *
     * 項目の型 [java.util.ArrayList]<br>
     * 規定値   [new java.util.ArrayList()]<br>
     * 添付ファイルのリスト。添付ファイルは BlancoMailMessageAttachment クラスのオブジェクトです。
     */
    private ArrayList fAttachmentList = new java.util.ArrayList();

    /**
     * フィールド [FROM]のセッターメソッド
     *
     * 項目の型 [blanco.mail.core.valueobject.BlancoMailAddress]<br>
     * Fromアドレス。「差出人」や「送信者」と呼ばれることがあります。Fromは1個に限定されています。 (send) 設定された値は Message-IDの一部に利用されます。 ※送信時は、必ず指定してください。
     *
     * @param argFrom フィールド[FROM]に格納したい値
     */
    public void setFrom(final BlancoMailAddress argFrom) {
        fFrom = argFrom;
    }

    /**
     * フィールド[FROM]のゲッターメソッド
     *
     * 項目の型 [blanco.mail.core.valueobject.BlancoMailAddress]<br>
     * Fromアドレス。「差出人」や「送信者」と呼ばれることがあります。Fromは1個に限定されています。 (send) 設定された値は Message-IDの一部に利用されます。 ※送信時は、必ず指定してください。
     *
     * @return フィールド[FROM]に格納されている値
     */
    public BlancoMailAddress getFrom() {
        return fFrom;
    }

    /**
     * フィールド [TO]のセッターメソッド
     *
     * 項目の型 [java.util.ArrayList]<br>
     * Toアドレスのリスト。Toアドレスは「宛先」と呼ばれることがあります。アドレスは  BlancoMailAddress クラスのオブジェクトです。 (send) ※送信時は、少なくとも1宛先は必ず指定してください。
     *
     * @param argTo フィールド[TO]に格納したい値
     */
    public void setTo(final ArrayList argTo) {
        fTo = argTo;
    }

    /**
     * フィールド[TO]のゲッターメソッド
     *
     * 項目の型 [java.util.ArrayList]<br>
     * 規定値   [new java.util.ArrayList()]<br>
     * Toアドレスのリスト。Toアドレスは「宛先」と呼ばれることがあります。アドレスは  BlancoMailAddress クラスのオブジェクトです。 (send) ※送信時は、少なくとも1宛先は必ず指定してください。
     *
     * @return フィールド[TO]に格納されている値
     */
    public ArrayList getTo() {
        return fTo;
    }

    /**
     * フィールド [CC]のセッターメソッド
     *
     * 項目の型 [java.util.ArrayList]<br>
     * Ccアドレスのリスト。Ccアドレスは「CC」と呼ばれることがあります。アドレスは  BlancoMailAddress クラスのオブジェクトです。
     *
     * @param argCc フィールド[CC]に格納したい値
     */
    public void setCc(final ArrayList argCc) {
        fCc = argCc;
    }

    /**
     * フィールド[CC]のゲッターメソッド
     *
     * 項目の型 [java.util.ArrayList]<br>
     * 規定値   [new java.util.ArrayList()]<br>
     * Ccアドレスのリスト。Ccアドレスは「CC」と呼ばれることがあります。アドレスは  BlancoMailAddress クラスのオブジェクトです。
     *
     * @return フィールド[CC]に格納されている値
     */
    public ArrayList getCc() {
        return fCc;
    }

    /**
     * フィールド [BCC]のセッターメソッド
     *
     * 項目の型 [java.util.ArrayList]<br>
     * Bccアドレスのリスト。アドレスは  BlancoMailAddress クラスのオブジェクトです。
     *
     * @param argBcc フィールド[BCC]に格納したい値
     */
    public void setBcc(final ArrayList argBcc) {
        fBcc = argBcc;
    }

    /**
     * フィールド[BCC]のゲッターメソッド
     *
     * 項目の型 [java.util.ArrayList]<br>
     * 規定値   [new java.util.ArrayList()]<br>
     * Bccアドレスのリスト。アドレスは  BlancoMailAddress クラスのオブジェクトです。
     *
     * @return フィールド[BCC]に格納されている値
     */
    public ArrayList getBcc() {
        return fBcc;
    }

    /**
     * フィールド [REPLY_TO]のセッターメソッド
     *
     * 項目の型 [blanco.mail.core.valueobject.BlancoMailAddress]<br>
     * replyToアドレス。「返信アドレス」と呼ばれることがあります。replyToは1個に限定されています。
     *
     * @param argReplyTo フィールド[REPLY_TO]に格納したい値
     */
    public void setReplyTo(final BlancoMailAddress argReplyTo) {
        fReplyTo = argReplyTo;
    }

    /**
     * フィールド[REPLY_TO]のゲッターメソッド
     *
     * 項目の型 [blanco.mail.core.valueobject.BlancoMailAddress]<br>
     * replyToアドレス。「返信アドレス」と呼ばれることがあります。replyToは1個に限定されています。
     *
     * @return フィールド[REPLY_TO]に格納されている値
     */
    public BlancoMailAddress getReplyTo() {
        return fReplyTo;
    }

    /**
     * フィールド [SUBJECT]のセッターメソッド
     *
     * 項目の型 [java.lang.String]<br>
     * メールの題名。「件名」や「Subject」と呼ばれることがあります。 (send) ※送信時は、必ず指定してください。
     *
     * @param argSubject フィールド[SUBJECT]に格納したい値
     */
    public void setSubject(final String argSubject) {
        fSubject = argSubject;
    }

    /**
     * フィールド[SUBJECT]のゲッターメソッド
     *
     * 項目の型 [java.lang.String]<br>
     * メールの題名。「件名」や「Subject」と呼ばれることがあります。 (send) ※送信時は、必ず指定してください。
     *
     * @return フィールド[SUBJECT]に格納されている値
     */
    public String getSubject() {
        return fSubject;
    }

    /**
     * フィールド [TEXT]のセッターメソッド
     *
     * 項目の型 [java.lang.String]<br>
     * メールの本文。 (send) ※送信時は、必ず指定してください。
     *
     * @param argText フィールド[TEXT]に格納したい値
     */
    public void setText(final String argText) {
        fText = argText;
    }

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

    /**
     * フィールド [SENT_DATE]のセッターメソッド
     *
     * 項目の型 [java.util.Date]<br>
     * メールの送信日付。送信／受信のいずれの場合において利用されます。(send) 送信時に nullが設定されている場合は、システム日時が自動設定されます。
     *
     * @param argSentDate フィールド[SENT_DATE]に格納したい値
     */
    public void setSentDate(final Date argSentDate) {
        fSentDate = argSentDate;
    }

    /**
     * フィールド[SENT_DATE]のゲッターメソッド
     *
     * 項目の型 [java.util.Date]<br>
     * メールの送信日付。送信／受信のいずれの場合において利用されます。(send) 送信時に nullが設定されている場合は、システム日時が自動設定されます。
     *
     * @return フィールド[SENT_DATE]に格納されている値
     */
    public Date getSentDate() {
        return fSentDate;
    }

    /**
     * フィールド [HEADER_LIST]のセッターメソッド
     *
     * 項目の型 [java.util.ArrayList]<br>
     * ヘッダーのリスト。ヘッダーは BlancoMailMessageHeader クラスのオブジェクトです。
     *
     * @param argHeaderList フィールド[HEADER_LIST]に格納したい値
     */
    public void setHeaderList(final ArrayList argHeaderList) {
        fHeaderList = argHeaderList;
    }

    /**
     * フィールド[HEADER_LIST]のゲッターメソッド
     *
     * 項目の型 [java.util.ArrayList]<br>
     * 規定値   [new java.util.ArrayList()]<br>
     * ヘッダーのリスト。ヘッダーは BlancoMailMessageHeader クラスのオブジェクトです。
     *
     * @return フィールド[HEADER_LIST]に格納されている値
     */
    public ArrayList getHeaderList() {
        return fHeaderList;
    }

    /**
     * フィールド [RECEIVED_DATE]のセッターメソッド
     *
     * 項目の型 [java.util.Date]<br>
     * (receive) メールの受信日付。
     *
     * @param argReceivedDate フィールド[RECEIVED_DATE]に格納したい値
     */
    public void setReceivedDate(final Date argReceivedDate) {
        fReceivedDate = argReceivedDate;
    }

    /**
     * フィールド[RECEIVED_DATE]のゲッターメソッド
     *
     * 項目の型 [java.util.Date]<br>
     * (receive) メールの受信日付。
     *
     * @return フィールド[RECEIVED_DATE]に格納されている値
     */
    public Date getReceivedDate() {
        return fReceivedDate;
    }

    /**
     * フィールド [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;
    }

    /**
     * フィールド [ATTACHMENT_LIST]のセッターメソッド
     *
     * 項目の型 [java.util.ArrayList]<br>
     * 添付ファイルのリスト。添付ファイルは BlancoMailMessageAttachment クラスのオブジェクトです。
     *
     * @param argAttachmentList フィールド[ATTACHMENT_LIST]に格納したい値
     */
    public void setAttachmentList(final ArrayList argAttachmentList) {
        fAttachmentList = argAttachmentList;
    }

    /**
     * フィールド[ATTACHMENT_LIST]のゲッターメソッド
     *
     * 項目の型 [java.util.ArrayList]<br>
     * 規定値   [new java.util.ArrayList()]<br>
     * 添付ファイルのリスト。添付ファイルは BlancoMailMessageAttachment クラスのオブジェクトです。
     *
     * @return フィールド[ATTACHMENT_LIST]に格納されている値
     */
    public ArrayList getAttachmentList() {
        return fAttachmentList;
    }

    /**
     * このバリューオブジェクトの文字列表現を取得します。
     *
     * オブジェクトのシャロー範囲でしかtoStringされない点に注意して利用してください。
     *
     * @return バリューオブジェクトの文字列表現。
     */
    public String toString() {
        final StringBuffer buf = new StringBuffer();
        buf.append("blanco.mail.core.valueobject.BlancoMailMessage[");
        buf.append("FROM=" + fFrom);
        buf.append(",TO=" + fTo);
        buf.append(",CC=" + fCc);
        buf.append(",BCC=" + fBcc);
        buf.append(",REPLY_TO=" + fReplyTo);
        buf.append(",SUBJECT=" + fSubject);
        buf.append(",TEXT=" + fText);
        buf.append(",SENT_DATE=" + fSentDate);
        buf.append(",HEADER_LIST=" + fHeaderList);
        buf.append(",RECEIVED_DATE=" + fReceivedDate);
        buf.append(",SIZE=" + fSize);
        buf.append(",LINE_COUNT=" + fLineCount);
        buf.append(",CONTENT_TYPE=" + fContentType);
        buf.append(",DESCRIPTION=" + fDescription);
        buf.append(",DISPOSITION=" + fDisposition);
        buf.append(",ATTACHMENT_LIST=" + fAttachmentList);
        buf.append("]");
        return buf.toString();
    }
}
