/*
 * blancoDb
 * Copyright (C) 2004-2005 Yasuo Nakanishi
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 */
package blanco.db.conf;

import blanco.ig.generator.GeneratorSetting;

/**
 * @author Yasuo Nakanishi
 */
public class BlancoDbSetting extends GeneratorSetting {
    /**
     * ロギングを行うかどうか
     */
    private boolean isLogging = false;

    private BlancoDbDatabaseConnectionSettingDef _jdbc = null;

    /**
     * JDBCドライバ名
     */
    private String fDriverName = null;

    /**
     * ランタイムパッケージ名。
     * 
     * null以外の場合には、その指定されたパッケージへとランタイムクラスを生成します。
     */
    private String fRuntimePackage = null;

    /**
     * ステートメントタイムアウト値。-1は無指定。
     */
    private int fStatementTimeout = -1;

    public BlancoDbSetting() {
    }

    public BlancoDbDatabaseConnectionSettingDef getJdbc() {
        return _jdbc;
    }

    public void setJdbc(final BlancoDbDatabaseConnectionSettingDef jdbc) {
        _jdbc = jdbc;
    }

    public boolean isLogging() {
        return isLogging;
    }

    public void setLogging(final boolean logging) {
        isLogging = logging;
    }

    /**
     * JDBCドライバ名を設定します。
     * 
     * @param arg
     *            JDBCドライバ名
     */
    public void setDriverName(final String arg) {
        fDriverName = arg;
    }

    /**
     * JDBCドライバ名を取得します。
     * 
     * @return
     */
    public String getDriverName() {
        return fDriverName;
    }

    /**
     * ランタイムパッケージを指定します。
     * 
     * null以外の場合には、その指定されたパッケージへとランタイムクラスを生成します。
     * 
     * @param argRuntimePackage
     *            書き出しを行いたいパッケージ。
     */
    public void setRuntimePackage(final String argRuntimePackage) {
        fRuntimePackage = argRuntimePackage;
    }

    /**
     * ランタイムパッケージを取得します。
     * 
     * null以外の場合には、その指定されたパッケージへとランタイムクラスを生成します。
     * 
     * @return 書き出しを行いたいパッケージ。
     */
    public String getRuntimePackage() {
        return fRuntimePackage;
    }

    /**
     * ステートメントタイムアウト値を取得します。
     * 
     * @return ステートメントタイムアウト値。
     */
    public int getStatementTimeout() {
        return fStatementTimeout;
    }

    /**
     * ステートメントタイムアウト値を設定します。
     * 
     * @param statementTimeout
     *            ステートメントタイムアウト値。
     */
    public void setStatementTimeout(final int statementTimeout) {
        fStatementTimeout = statementTimeout;
    }
}