/*
 * このソースコードは blanco Frameworkによって自動生成されています。
 */
package blanco.sample.valueobject;

import blanco.sample.resourcebundle.BlancoValueObjectFactorySampleSettingResourceBundle;

/**
 * バリューオブジェクト[BlancoValueObjectFactorySampleSetting]のインスタンスを適切なデフォルト値付で取得するためのクラス。
 */
public class BlancoValueObjectFactorySampleSettingFactory {
    /**
     * コンストラクタは隠します。
     */
    private BlancoValueObjectFactorySampleSettingFactory() {
    }

    /**
     * バリューオブジェクト[BlancoValueObjectFactorySampleSetting]のインスタンスを取得します。
     *
     * リソースバンドル(基底名:BlancoValueObjectFactorySampleSetting, クラス名:BlancoValueObjectFactorySampleSettingResourceBundle)からデフォルト値の読み込みを試みます。
     *
     * @return デフォルト値が調整済みの[BlancoValueObjectFactorySampleSetting]バリューオブジェクト。
     */
    public static BlancoValueObjectFactorySampleSetting getInstance() {
        // このメソッドの実行結果となるバリューオブジェクトインスタンス。
        final BlancoValueObjectFactorySampleSetting result = new BlancoValueObjectFactorySampleSetting();

        // バリューオブジェクトに設定するデフォルト値のためのデータソースインスタンス。
        final BlancoValueObjectFactorySampleSettingResourceBundle bundle = new BlancoValueObjectFactorySampleSettingResourceBundle();

        // フィールド [SEND_HOST]
        if (bundle.getSendHost() != null && bundle.getSendHost().length() > 0) {
            result.setSendHost(bundle.getSendHost());
        }

        // フィールド [SEND_PORT]
        if (bundle.getSendPort() != null && bundle.getSendPort().length() > 0) {
            try {
                result.setSendPort(Integer.parseInt(bundle.getSendPort()));
            } catch (NumberFormatException e) {
                // 無視します。
            }
        }

        // フィールド [SEND_USE_SSL]
        if (bundle.getSendUseSsl() != null && bundle.getSendUseSsl().length() > 0) {
            result.setSendUseSsl("true".equals(bundle.getSendUseSsl()));
        }

        // フィールド [SEND_USER_NAME]
        if (bundle.getSendUserName() != null && bundle.getSendUserName().length() > 0) {
            result.setSendUserName(bundle.getSendUserName());
        }

        // フィールド [SEND_PASSWORD]
        if (bundle.getSendPassword() != null && bundle.getSendPassword().length() > 0) {
            result.setSendPassword(bundle.getSendPassword());
        }

        // フィールド [SEND_SMTP_AUTH]
        if (bundle.getSendSmtpAuth() != null && bundle.getSendSmtpAuth().length() > 0) {
            result.setSendSmtpAuth("true".equals(bundle.getSendSmtpAuth()));
        }

        // フィールド [RECEIVE_HOST]
        if (bundle.getReceiveHost() != null && bundle.getReceiveHost().length() > 0) {
            result.setReceiveHost(bundle.getReceiveHost());
        }

        // フィールド [RECEIVE_PORT]
        if (bundle.getReceivePort() != null && bundle.getReceivePort().length() > 0) {
            try {
                result.setReceivePort(Integer.parseInt(bundle.getReceivePort()));
            } catch (NumberFormatException e) {
                // 無視します。
            }
        }

        // フィールド [RECEIVE_USE_SSL]
        if (bundle.getReceiveUseSsl() != null && bundle.getReceiveUseSsl().length() > 0) {
            result.setReceiveUseSsl("true".equals(bundle.getReceiveUseSsl()));
        }

        // フィールド [RECEIVE_USER_NAME]
        if (bundle.getReceiveUserName() != null && bundle.getReceiveUserName().length() > 0) {
            result.setReceiveUserName(bundle.getReceiveUserName());
        }

        // フィールド [RECEIVE_PASSWORD]
        if (bundle.getReceivePassword() != null && bundle.getReceivePassword().length() > 0) {
            result.setReceivePassword(bundle.getReceivePassword());
        }

        // フィールド [RECEIVE_PROTOCOL]
        if (bundle.getReceiveProtocol() != null && bundle.getReceiveProtocol().length() > 0) {
            result.setReceiveProtocol(bundle.getReceiveProtocol());
        }

        // フィールド [RECEIVE_POP3_APOP]
        if (bundle.getReceivePop3Apop() != null && bundle.getReceivePop3Apop().length() > 0) {
            result.setReceivePop3Apop("true".equals(bundle.getReceivePop3Apop()));
        }

        // フィールド [MAIL_CONNECTION_TIMEOUT]
        if (bundle.getMailConnectionTimeout() != null && bundle.getMailConnectionTimeout().length() > 0) {
            try {
                result.setMailConnectionTimeout(Integer.parseInt(bundle.getMailConnectionTimeout()));
            } catch (NumberFormatException e) {
                // 無視します。
            }
        }

        // フィールド [MAIL_TIMEOUT]
        if (bundle.getMailTimeout() != null && bundle.getMailTimeout().length() > 0) {
            try {
                result.setMailTimeout(Integer.parseInt(bundle.getMailTimeout()));
            } catch (NumberFormatException e) {
                // 無視します。
            }
        }

        // フィールド [SESSION_LOG_DIRECTORY_ERROR]
        if (bundle.getSessionLogDirectoryError() != null && bundle.getSessionLogDirectoryError().length() > 0) {
            result.setSessionLogDirectoryError(bundle.getSessionLogDirectoryError());
        }

        // フィールド [SESSION_LOG_DIRECTORY_SUCCESS]
        if (bundle.getSessionLogDirectorySuccess() != null && bundle.getSessionLogDirectorySuccess().length() > 0) {
            result.setSessionLogDirectorySuccess(bundle.getSessionLogDirectorySuccess());
        }

        // フィールド [SOCKETFACTORY_CLASS]
        if (bundle.getSocketfactoryClass() != null && bundle.getSocketfactoryClass().length() > 0) {
            result.setSocketfactoryClass(bundle.getSocketfactoryClass());
        }

        // フィールド [SOCKETFACTORY_FALLBACK]
        if (bundle.getSocketfactoryFallback() != null && bundle.getSocketfactoryFallback().length() > 0) {
            result.setSocketfactoryFallback("true".equals(bundle.getSocketfactoryFallback()));
        }

        // フィールド [SEND_MAILER_NAME]
        if (bundle.getSendMailerName() != null && bundle.getSendMailerName().length() > 0) {
            result.setSendMailerName(bundle.getSendMailerName());
        }

        // フィールド [SEND_ENCODING]
        if (bundle.getSendEncoding() != null && bundle.getSendEncoding().length() > 0) {
            result.setSendEncoding(bundle.getSendEncoding());
        }

        // フィールド [SEND_FORTH_CONTENT_TRANSFER_ENCODING_7BIT]
        if (bundle.getSendForthContentTransferEncoding7bit() != null && bundle.getSendForthContentTransferEncoding7bit().length() > 0) {
            result.setSendForthContentTransferEncoding7bit("true".equals(bundle.getSendForthContentTransferEncoding7bit()));
        }

        // フィールド [SEND_FORTH_NEWLINE_AFTER_MESSAGE_TEXT]
        if (bundle.getSendForthNewlineAfterMessageText() != null && bundle.getSendForthNewlineAfterMessageText().length() > 0) {
            result.setSendForthNewlineAfterMessageText("true".equals(bundle.getSendForthNewlineAfterMessageText()));
        }

        // フィールド [SEND_MAX_RECIPIENT_ADDR_TO]
        if (bundle.getSendMaxRecipientAddrTo() != null && bundle.getSendMaxRecipientAddrTo().length() > 0) {
            try {
                result.setSendMaxRecipientAddrTo(Integer.parseInt(bundle.getSendMaxRecipientAddrTo()));
            } catch (NumberFormatException e) {
                // 無視します。
            }
        }

        // フィールド [SEND_MAX_RECIPIENT_ADDR_CC]
        if (bundle.getSendMaxRecipientAddrCc() != null && bundle.getSendMaxRecipientAddrCc().length() > 0) {
            try {
                result.setSendMaxRecipientAddrCc(Integer.parseInt(bundle.getSendMaxRecipientAddrCc()));
            } catch (NumberFormatException e) {
                // 無視します。
            }
        }

        return result;
    }
}
