package br.com.citframework.integracao; import java.sql.Connection; import java.sql.Savepoint; import br.com.citframework.excecao.PersistenceException; public interface TransactionControler extends ConnectionControler { /** * Verifica se a tras��o est� iniciada * * @return {@code true}, caso trasa��o esteja iniciada. {@code false}, caso contr�rio */ boolean isStarted(); /** * Inicia a transa��o * * @throws PersistenceException * caso algum problema ao iniciar a transa��o aconte�a, como {@link Connection} j� fechada */ void start() throws PersistenceException; /** * Commita as altera��es na transa��o * * @throws PersistenceException * caso algum problema ao iniciar a transa��o aconte�a, como {@link Connection} j� fechada */ void commit() throws PersistenceException; /** * Realiza��o rollback de todas as altera��es ainda n�o commitadas na transa��o * * @throws PersistenceException * caso algum problema ao iniciar a transa��o aconte�a, como {@link Connection} j� fechada */ void rollback() throws PersistenceException; /** * Realiza rollback na transa��o at� um ponto de marca��o * * @param savepoint * ponto at� o qual deve ser feito o rollback * @throws PersistenceException * caso algum problema ao dar rollback na transa��o aconte�a, como {@link Connection} j� fechada */ void rollback(final Savepoint savepoint) throws PersistenceException; /** * Cria um {@link Savepoint} na transa��o * * @return {@link Savepoint} * @throws PersistenceException */ Savepoint savepoint() throws PersistenceException; /** * Cria um {@link Savepoint} nomeado na transa��o * * @param name * nome para identifica��o do ponto de marca��o * @return {@link Savepoint} * @throws PersistenceException */ Savepoint savepoint(final String name) throws PersistenceException; /** * Libera um {@link Savepoint} previamente marcado na linha de transa��es * * @param savepoint * savepoint a ser liberado na transa��o * @throws PersistenceException */ void releaseSavepoint(final Savepoint savepoint) throws PersistenceException; }