package org.springmodules.javaspaces; import java.rmi.RemoteException; import net.jini.core.entry.UnusableEntryException; import net.jini.core.transaction.Transaction; import net.jini.core.transaction.TransactionException; import net.jini.space.JavaSpace; /** * Callback interface used by JavaSpaceTemplate. * The "template" concept is used throughout Spring. * * @see org.springmodules.javaspaces.JavaSpaceTemplate * * @author Rod Johnson * @author Costin Leau */ public interface JavaSpaceCallback { /** * Perform a set of operations in a given JavaSpace, * in a single JINI transaction * @param js JavaSpace we are using * @param status transaction status object, permitting rollback * @return the result of the operation or null if there is no result * @throws RemoteException * @throws TransactionException * @throws UnusableEntryException * @throws InterruptedException */ Object doInSpace(JavaSpace js, Transaction transaction) throws RemoteException, TransactionException, UnusableEntryException, InterruptedException; }