/** * Copyright (c) 2002-2010 "Neo Technology," * Network Engine for Objects in Lund AB [http://neotechnology.com] * * This file is part of Neo4j. * * Neo4j is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.neo4j.kernel.impl.transaction; import javax.transaction.HeuristicMixedException; import javax.transaction.HeuristicRollbackException; import javax.transaction.NotSupportedException; import javax.transaction.RollbackException; import javax.transaction.SystemException; import javax.transaction.TransactionManager; import javax.transaction.UserTransaction; import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.kernel.EmbeddedGraphDatabase; public class UserTransactionImpl implements UserTransaction { private TransactionManager tm; public UserTransactionImpl() { } public UserTransactionImpl( GraphDatabaseService neo4j ) { this.tm = ((EmbeddedGraphDatabase) neo4j).getConfig().getTxModule().getTxManager(); } public void begin() throws NotSupportedException, SystemException { tm.begin(); } public void commit() throws RollbackException, HeuristicMixedException, HeuristicRollbackException, SecurityException, IllegalStateException, SystemException { tm.commit(); } public void rollback() throws SecurityException, IllegalStateException, SystemException { tm.rollback(); } public void setRollbackOnly() throws IllegalStateException, SystemException { tm.setRollbackOnly(); } public int getStatus() throws SystemException { return tm.getStatus(); } public void setTransactionTimeout( int seconds ) throws SystemException { tm.setTransactionTimeout( seconds ); } /** * Returns the event identifier for the current transaction. If no * transaction is active <CODE>null</CODE> is returned. */ public Integer getEventIdentifier() { try { TransactionImpl tx = (TransactionImpl) tm.getTransaction(); if ( tx != null ) { return tx.getEventIdentifier(); } } catch ( SystemException e ) { } return null; } public void setTransactionManager( TransactionManager tm ) { this.tm = tm; } public TransactionManager getTransactionManager() { return tm; } }