com.j_spaces.core
Interface LeaseContext

All Superinterfaces:
Lease
All Known Implementing Classes:
LeaseProxy

public interface LeaseContext
extends Lease

LeaseContext is a return-value encapsulation of a write operation.

Using either IJSpace.write(Object, net.jini.core.transaction.Transaction, long) or IJSpace.write(Object, net.jini.core.transaction.Transaction, long, long, int) with the Modifiers.UPDATE_OR_WRITE returns a LeaseContext according to UPDATE-OR-WRITE semantics. The update-or-write operation is atomic - either a write or an update is performed.

LeaseContext's getObject() returns:

 //first write
 LeaseContext lease = space.write((Object)o, null, 1000);
 lease.getUID(); //returns UID of written object
 lease.getOriginalObject(); //returns null on first write
 lease.renew(Lease.FOREVER);
 
 //second write - equivalent to update
 lease = space.write((Object)o, null, 1000);
 lease.getUID(); //returns UID of object
 lease.getOriginalObject(); //returns previous value (i.e. of previous write)
 try{
   lease.renew(Lease.FOREVER); 
 }catch(UnsupportedOperationException e) {
  //not a real lease - constructed by update.
 }
 
  


Field Summary
 
Fields inherited from interface net.jini.core.lease.Lease
ABSOLUTE, ANY, DURATION, FOREVER
 
Method Summary
 Object getObject()
          returns the previous value associated with this update-or-write operation.
 String getUID()
          Returns UID of written Entry.
 
Methods inherited from interface net.jini.core.lease.Lease
canBatch, cancel, createLeaseMap, getExpiration, getSerialFormat, renew, setSerialFormat
 

Method Detail

getObject

Object getObject()
returns the previous value associated with this update-or-write operation.

Returns:
the associated object.

getUID

String getUID()
Returns UID of written Entry.

Returns:
UID of written Entry.