#region License
/*
* Copyright 2002-2004 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#endregion
using System;
using System.Data;
namespace Spring.Transaction{
/// <summary>
/// Representation of the status of a transaction,
/// consisting of a transaction object and some status flags.
/// </summary>
/// <remarks>
/// <p>
/// Transactional code can use this to retrieve status information,
/// and to programmatically request a rollback (instead of throwing
/// an exception that causes an implicit rollback).
/// </p>
/// <p>
/// Derives from the <see cref="Spring.Transaction.ISavepointManager"/> interface to provide access
/// to savepoint management facilities. Note that savepoint management
/// is just available if the actual transaction manager supports it.
/// </p>
/// </remarks>
/// <author>Juergen Hoeller</author>
/// <author>Griffin Caprio (.NET)</author>
/// <author>Mark Pollack (.NET)</author>
public interface ITransactionStatus : ISavepointManager
{
/// <summary>
/// Returns <b>true</b> if the transaction is new, else <b>false</b> if participating
/// in an existing transaction.
/// </summary>
bool IsNewTransaction { get; }
/// <summary>
/// Return whether the transaction has been marked as rollback-only,
/// (either by the application or by the transaction infrastructure).
/// </summary>
bool RollbackOnly { get; }
/// <summary>
/// Set the transaction rollback-only. This instructs the transaction manager that the only possible outcome of
/// the transaction may be a rollback, proceeding with the normal application
/// workflow though (i.e. no exception).
/// </summary>
/// <remarks>
/// <p>
/// For transactions managed by a <see cref="Spring.Transaction.Support.TransactionTemplate"/> or
/// <see cref="Spring.Transaction.Interceptor.TransactionInterceptor"/>.
/// An alternative way to trigger a rollback is throwing an transaction exception.
/// </p>
/// </remarks>
void SetRollbackOnly();
/// <summary>
/// Gets the current transaction object.
/// </summary>
/// <remarks>
/// Returns the current transaction object for a given connection.
/// <p>
/// Used to associate with the <see cref="System.Data.IDbCommand.Transaction"/> property.
/// </p>
/// </remarks>
object Transaction { get; }
bool Completed { get; }
}
}
|