/* * Hibernate OGM, Domain model persistence for NoSQL datastores * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.ogm.compensation.impl; import org.hibernate.ConnectionAcquisitionMode; import org.hibernate.ConnectionReleaseMode; import org.hibernate.ogm.compensation.ErrorHandler; import org.hibernate.resource.transaction.TransactionCoordinator; import org.hibernate.resource.transaction.TransactionCoordinatorBuilder; import org.hibernate.resource.transaction.spi.TransactionCoordinatorOwner; /** * A {@link TransactionCoordinatorBuilder} which takes transactions created by another builder and decorates them with the * {@link ErrorHandlerEnabledTransactionCoordinatorDecorator}. * * @author Gunnar Morling */ public class ErrorHandlerEnabledTransactionCoordinatorBuilder implements TransactionCoordinatorBuilder { private final TransactionCoordinatorBuilder delegate; private final ErrorHandler errorHandler; public ErrorHandlerEnabledTransactionCoordinatorBuilder(TransactionCoordinatorBuilder delegate, ErrorHandler errorHandler) { this.delegate = delegate; this.errorHandler = errorHandler; } @Override public TransactionCoordinator buildTransactionCoordinator(TransactionCoordinatorOwner owner, TransactionCoordinatorOptions options) { return new ErrorHandlerEnabledTransactionCoordinatorDecorator( delegate.buildTransactionCoordinator( owner, options ), errorHandler ); } @Override public boolean isJta() { return delegate.isJta(); } @Override public ConnectionReleaseMode getDefaultConnectionReleaseMode() { return delegate.getDefaultConnectionReleaseMode(); } @Override public ConnectionAcquisitionMode getDefaultConnectionAcquisitionMode() { return delegate.getDefaultConnectionAcquisitionMode(); } }