/*
 * Created on: Dec 17, 2004
 * Author: Dibyendu Majumdar
 */
package com.ponl.framework.dao.ibatis;

import java.sql.SQLException;
import java.util.Properties;

import javax.sql.DataSource;

import com.ibatis.sqlmap.engine.transaction.BaseTransactionConfig;
import com.ibatis.sqlmap.engine.transaction.Transaction;
import com.ibatis.sqlmap.engine.transaction.TransactionException;

/**
 * <p>
 * SqlMapTransactionConfig: 
 * </p> 
 *
 * <pre>
 * History:
 * Dec 17, 2004 DM Created
 * </pre>
 * 
 * @author Dibyendu Majumdar
 * @version 
 * @since TCA 3.0
 */
public class SqlMapTransactionConfig extends BaseTransactionConfig implements Constants {

    /*
     * Indicates whether commits are managed via the application globally using
     * JTA compliant transaction manager.
     */
    boolean globalCommit = false;
    
    DataSource ds = null;
    
    public DataSource getDataSource() {
        return ds;
    }

    public void setDataSource(DataSource arg0) {
        ds = arg0;
    }

    public void initialize(Properties props) throws SQLException,
            TransactionException {
        String value = props.getProperty(GLOBAL_COMMIT);
        if (value != null && "TRUE".equalsIgnoreCase(value)) {
            globalCommit = true;
        }
    }

    public Transaction newTransaction() throws SQLException,
            TransactionException {
        return new SqlMapTransaction(ds, globalCommit);
    }
}
