001
014
015 package com.liferay.portal.kernel.transaction;
016
017 import java.util.LinkedHashSet;
018 import java.util.Set;
019 import java.util.concurrent.CopyOnWriteArraySet;
020
021
024 public class TransactionLifecycleManager {
025
026 public static void fireTransactionCommittedEvent(
027 TransactionAttribute transactionAttribute,
028 TransactionStatus transactionStatus) {
029
030 for (TransactionLifecycleListener transactionLifecycleListener :
031 _transactionLifecycleListeners) {
032
033 transactionLifecycleListener.committed(
034 transactionAttribute, transactionStatus);
035 }
036 }
037
038 public static void fireTransactionCreatedEvent(
039 TransactionAttribute transactionAttribute,
040 TransactionStatus transactionStatus) {
041
042 for (TransactionLifecycleListener transactionLifecycleListener :
043 _transactionLifecycleListeners) {
044
045 transactionLifecycleListener.created(
046 transactionAttribute, transactionStatus);
047 }
048 }
049
050 public static void fireTransactionRollbackedEvent(
051 TransactionAttribute transactionAttribute,
052 TransactionStatus transactionStatus, Throwable throwable) {
053
054 for (TransactionLifecycleListener transactionLifecycleListener :
055 _transactionLifecycleListeners) {
056
057 transactionLifecycleListener.rollbacked(
058 transactionAttribute, transactionStatus, throwable);
059 }
060 }
061
062 public static Set<TransactionLifecycleListener>
063 getRegisteredTransactionLifecycleListeners() {
064
065 return new LinkedHashSet<TransactionLifecycleListener>(
066 _transactionLifecycleListeners);
067 }
068
069 public static boolean register(
070 TransactionLifecycleListener transactionLifecycleListener) {
071
072 return _transactionLifecycleListeners.add(transactionLifecycleListener);
073 }
074
075 public static boolean unregister(
076 TransactionLifecycleListener transactionLifecycleListener) {
077
078 return _transactionLifecycleListeners.remove(
079 transactionLifecycleListener);
080 }
081
082 private static final Set<TransactionLifecycleListener>
083 _transactionLifecycleListeners =
084 new CopyOnWriteArraySet<TransactionLifecycleListener>();
085
086 }