KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > springframework > transaction > TransactionStatus


1 /*
2  * Copyright 2002-2007 the original author or authors.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package org.springframework.transaction;
18
19 /**
20  * Representation of the status of a transaction.
21  *
22  * <p>Transactional code can use this to retrieve status information,
23  * and to programmatically request a rollback (instead of throwing
24  * an exception that causes an implicit rollback).
25  *
26  * <p>Derives from the SavepointManager interface to provide access
27  * to savepoint management facilities. Note that savepoint management
28  * is only available if supported by the underlying transaction manager.
29  *
30  * @author Juergen Hoeller
31  * @since 27.03.2003
32  * @see #setRollbackOnly()
33  * @see PlatformTransactionManager#getTransaction
34  * @see org.springframework.transaction.support.TransactionCallback#doInTransaction
35  * @see org.springframework.transaction.interceptor.TransactionInterceptor#currentTransactionStatus()
36  */

37 public interface TransactionStatus extends SavepointManager {
38
39     /**
40      * Return whether the present transaction is new (else participating
41      * in an existing transaction, or potentially not running in an
42      * actual transaction in the first place).
43      */

44     boolean isNewTransaction();
45
46     /**
47      * Return whether this transaction internally carries a savepoint,
48      * that is, has been created as nested transaction based on a savepoint.
49      * <p>This method is mainly here for diagnostic purposes, alongside
50      * {@link #isNewTransaction()}. For programmatic handling of custom
51      * savepoints, use SavepointManager's operations.
52      * @see #isNewTransaction()
53      * @see #createSavepoint
54      * @see #rollbackToSavepoint(Object)
55      * @see #releaseSavepoint(Object)
56      */

57     boolean hasSavepoint();
58
59     /**
60      * Set the transaction rollback-only. This instructs the transaction manager
61      * that the only possible outcome of the transaction may be a rollback, as
62      * alternative to throwing an exception which would in turn trigger a rollback.
63      * <p>This is mainly intended for transactions managed by
64      * {@link org.springframework.transaction.support.TransactionTemplate} or
65      * {@link org.springframework.transaction.interceptor.TransactionInterceptor},
66      * where the actual commit/rollback decision is made by the container.
67      * @see org.springframework.transaction.support.TransactionCallback#doInTransaction
68      * @see org.springframework.transaction.interceptor.TransactionAttribute#rollbackOn
69      */

70     void setRollbackOnly();
71
72     /**
73      * Return whether the transaction has been marked as rollback-only
74      * (either by the application or by the transaction infrastructure).
75      */

76     boolean isRollbackOnly();
77
78     /**
79      * Return whether this transaction is completed, that is,
80      * whether it has already been committed or rolled back.
81      * @see PlatformTransactionManager#commit
82      * @see PlatformTransactionManager#rollback
83      */

84     boolean isCompleted();
85
86 }
87
Popular Tags