package com.hangum.tadpole.rdb.core.editors.main.execute; import org.apache.commons.lang.StringUtils; import com.hangum.tadpole.engine.manager.TadpoleSQLTransactionManager; import com.hangum.tadpole.engine.query.dao.system.UserDBDAO; /** * SQL의 transaction을 처리합니다. * * @author hangum * */ public class TransactionManger { /** define begin statement */ public static final String BEGIN_STATEMENT = "begin";// + PublicTadpoleDefine.SQL_DELIMITER; /** define commit statement */ public static final String COMMIT_STATEMENT = "commit";// + PublicTadpoleDefine.SQL_DELIMITER; /** rollback statement */ public static final String ROLLBACK_STATEMENT = "rollback";// + PublicTadpoleDefine.SQL_DELIMITER; /** * is transaction * * @param query * @return */ public static boolean isTransaction(String query) { if( StringUtils.startsWithIgnoreCase(query, BEGIN_STATEMENT) || StringUtils.startsWithIgnoreCase(query, COMMIT_STATEMENT) || StringUtils.startsWithIgnoreCase(query, ROLLBACK_STATEMENT) ) { //$NON-NLS-1$ return true; } return false; } /** * transaction 쿼리인지 검사합니다. * * @param query * @return */ public static boolean calledCommitOrRollback(String query, String userEmail, UserDBDAO userDB) { if(StringUtils.startsWithIgnoreCase(query, COMMIT_STATEMENT)) { TadpoleSQLTransactionManager.commit(userEmail, userDB); return true; } else if(StringUtils.startsWithIgnoreCase(query, ROLLBACK_STATEMENT)) { TadpoleSQLTransactionManager.rollback(userEmail, userDB); return true; } return false; } /** * Is statement are begin? * * @param query * @return */ public static boolean isStartTransaction(String query) { if(StringUtils.startsWithIgnoreCase(query, BEGIN_STATEMENT)) return true; return false; } }