package org.itscool.commons.connection;

/**
 * データベースコネクション管理インターフェース
 */
public interface ConnectionManager {
    
    public boolean isInit();
    
    /**
     * コネクション管理インスタンスの初期化
     */
    public void init();
    
    /**
     * Transactionインスタンスを取得します
     * @return Transactionインスタンス
     */
    public Transaction getTransaction();
    
    /**
     * 不要になったTransactionインスタンスをプールに返します
     * @param trn 不要になったTransactionインスタンス
     */
    public void returnTransaction(Transaction trn);
    
    /**
     * コネクションプールを開放し、終了します。
     */
    public void destroy();
    
    /**
     * SQL表示モードを取得します
     * @return SQL表示の場合はtrueを返します
     */
    public boolean getShowSql();
    /**
     * SQL表示モードをセットします
     * @param showSql SQL表示モード
     */
    public void setShowSql(boolean showSql);
    /**
     * AutoCommitモードをセットします
     * @param mode AutoCommitモード
     */
    public void setMode(boolean mode);
    /**
     * AutoCommitModeを取得します
     * @return AutoCommitModeが有効になっている場合はtureを返します
     */
    public boolean getMode();
}
