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<>(_transactionLifecycleListeners);
066 }
067
068 public static boolean register(
069 TransactionLifecycleListener transactionLifecycleListener) {
070
071 return _transactionLifecycleListeners.add(transactionLifecycleListener);
072 }
073
074 public static boolean unregister(
075 TransactionLifecycleListener transactionLifecycleListener) {
076
077 return _transactionLifecycleListeners.remove(
078 transactionLifecycleListener);
079 }
080
081 private static final Set<TransactionLifecycleListener>
082 _transactionLifecycleListeners = new CopyOnWriteArraySet<>();
083
084 }