blob: 81e263601c5bdce04b46fc838ca96b98d69c5ccb [file] [log] [blame]
/*
* Copyright (c) 2009, 2011, 2012, 2014, 2019 Eike Stepper (Loehne, 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:
* Simon McDuff - initial API and implementation
* Eike Stepper - maintenance
*/
package org.eclipse.emf.cdo.transaction;
import org.eclipse.emf.cdo.view.CDOViewSet;
import org.eclipse.emf.ecore.resource.ResourceSet;
/**
* A distributed (XA) transaction that can atomically commit the changes to multiple {@link ResourceSet resource sets},
* each represented by a registered {@link CDOViewSet view set}.
*
* @author Simon McDuff
* @since 2.0
* @noextend This interface is not intended to be extended by clients.
* @noimplement This interface is not intended to be implemented by clients.
*/
public interface CDOXATransaction extends CDOUserTransaction
{
public void add(CDOViewSet viewSet);
public void remove(CDOViewSet viewSet);
/**
* see {@link CDOXATransaction#isAllowRequestFromTransactionEnabled()}
*/
public void setAllowRequestFromTransactionEnabled(boolean allRequest);
/**
* Allow request that come from contains {@link CDOTransaction}. Default value is true.
* <p>
* If the value is true, cdoTransaction.commit() will call xaTransaction.commit and all {@link CDOXATransaction} part
* of xaTransaction will be committed.
* <p>
* If the value is false, the user will receive an exception by calling cdoTransaction.commit(). The user can only
* commit from {@link CDOXATransaction}.
*/
public boolean isAllowRequestFromTransactionEnabled();
/**
* @since 3.0
*/
@Override
public CDOXASavepoint setSavepoint();
/**
* @since 3.0
*/
@Override
public CDOXASavepoint getLastSavepoint();
}