package org.infinispan.context.impl; import javax.transaction.Transaction; import org.infinispan.transaction.impl.RemoteTransaction; /** * Context to be used for transaction that originated remotely. * * @author Mircea.Markus@jboss.com * @author Galder ZamarreƱo * @author Pedro Ruivo * @since 4.0 */ public class RemoteTxInvocationContext extends AbstractTxInvocationContext<RemoteTransaction> { public RemoteTxInvocationContext(RemoteTransaction cacheTransaction) { super(cacheTransaction, cacheTransaction.getGlobalTransaction().getAddress()); } @Override public final Transaction getTransaction() { // this method is only valid for locally originated transactions! return null; } @Override public final boolean isTransactionValid() { // this is always true since we are governed by the originator's transaction return true; } @Override public final boolean isImplicitTransaction() { //has no meaning in remote transaction return false; } @Override public final boolean isOriginLocal() { return false; } @Override public final boolean equals(Object o) { if (this == o) return true; if (!(o instanceof RemoteTxInvocationContext)) return false; RemoteTxInvocationContext that = (RemoteTxInvocationContext) o; return getCacheTransaction().equals(that.getCacheTransaction()); } @Override public final int hashCode() { return getCacheTransaction().hashCode(); } }