/* * Copyright (c) 2004-2016 Eike Stepper (Berlin, Germany) and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Eike Stepper - initial API and implementation */ package org.eclipse.emf.cdo.internal.net4j.testrecorder; import org.eclipse.emf.cdo.common.branch.CDOBranch; import org.eclipse.emf.cdo.common.branch.CDOBranchPoint; import org.eclipse.emf.cdo.common.commit.CDOChangeSetData; import org.eclipse.emf.cdo.common.commit.CDOCommitInfo; import org.eclipse.emf.cdo.session.CDOSession; import org.eclipse.emf.cdo.transaction.CDOMerger; import org.eclipse.emf.cdo.util.CommitException; import org.eclipse.emf.internal.cdo.transaction.CDOTransactionImpl; import org.eclipse.core.runtime.IProgressMonitor; /** * @author Eike Stepper */ public class TestRecorderTransaction extends CDOTransactionImpl { public TestRecorderTransaction(CDOSession session, CDOBranch branch) { super(session, branch); TestRecorder.INSTANCE.openTransaction(this, session, branch); } @Override public TestRecorderSession getSession() { return (TestRecorderSession)super.getSession(); } @Override public CDOChangeSetData merge(CDOBranch source, CDOMerger merger) { TestRecorder.INSTANCE.mergeTransaction(this, source, merger); return super.merge(source, merger); } @Override public CDOChangeSetData merge(CDOBranchPoint source, CDOMerger merger) { TestRecorder.INSTANCE.mergeTransaction(this, source, merger); return super.merge(source, merger); } @Override public CDOCommitInfo commit(IProgressMonitor progressMonitor) throws CommitException { CDOCommitInfo commitInfo = super.commit(progressMonitor); TestRecorder.INSTANCE.commitTransaction(this, commitInfo); return commitInfo; } @Override public void rollback() { super.rollback(); TestRecorder.INSTANCE.rollbackTransaction(this); } }