| 
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.sf.tuplespace.utils.UnitOfWorkRunner
A class that repeateadly executes a unit of work, always using the same
 TupleSpace.
 
This class allows subclasses to always be waiting for a
 Tuple., and do not have to concern themselves
 with writing the plumbing:
while (true) {
     Tuple t = tupleSpace.readAndRemove(template);
     // Work with t
 }
 Instead, subclasses simply have to implement the
 execute(net.sf.tuplespace.TupleSpace)
 method, and are guaranteed to always be waiting for a tuple.
| Constructor Summary | |
UnitOfWorkRunner()
Instantiate a new unit of work, with default values.  | 
|
UnitOfWorkRunner(UnitOfWork unitOfWork,
                 TupleSpace tupleSpace)
Instantiate a new unit of work.  | 
|
| Method Summary | |
 void | 
execute(TupleSpace tupleSpace)
Delegate to #unitOfWork. | 
 boolean | 
isDone()
Delegate to #unitOfWork. | 
 void | 
run()
Repeatedly call execute(),
 until either an exception is thrown, or isDone() is true.
  | 
 void | 
setAbortOnException(boolean abortOnException)
Determine what to do when exceptions occur.  | 
 void | 
setTupleSpace(TupleSpace tupleSpace)
Sets the TupleSpace to use.
  | 
 void | 
setUnitOfWork(UnitOfWork unitOfWork)
Sets the unit of work to execute.  | 
| Methods inherited from class java.lang.Object | 
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Constructor Detail | 
public UnitOfWorkRunner()
It is imperative that you call setTupleSpace(net.sf.tuplespace.TupleSpace)
 otherwise you will get an IllegalArgumentException when calling
 run(), indicating that you haven't not provided a tuple space.
public UnitOfWorkRunner(UnitOfWork unitOfWork,
                        TupleSpace tupleSpace)
It is illegal to provide a null TupleSpace.
unitOfWork - The UnitOfWork to run.tupleSpace - The TupleSpace to use.| Method Detail | 
public void setTupleSpace(TupleSpace tupleSpace)
TupleSpace to use.
 It is illegal to provide a null TupleSpace.
tupleSpace - The TupleSpace to use.public void setUnitOfWork(UnitOfWork unitOfWork)
unitOfWork - The unit of work to repeateadly call.public void setAbortOnException(boolean abortOnException)
If this is true, run() will rethrow the
 caught exception as a RuntimeException.  If this is
 false instead (the default), the exception will be logged
 and run() will loop and execute another unit of work.
abortOnException - true to make run() return
                         when an exception occurs, false
                         otherwise.public final void run()
execute(),
 until either an exception is thrown, or isDone() is true.
 Each time through the loop, #tupleSpace will be asserted to
 non-null.  If it is, an IllegalArgumentException will be thrown.
 
Also, after every call to execute(net.sf.tuplespace.TupleSpace),
 this method will call isDone() to determine if it should continue
 or not.
run in interface Runnable
public final void execute(TupleSpace tupleSpace)
                   throws Exception
#unitOfWork.
execute in interface UnitOfWorktupleSpace - The space to provide to the delegee.
Exception - Any exception that could be thrown from
                   UnitOfWork.execute(net.sf.tuplespace.TupleSpace).public final boolean isDone()
#unitOfWork.
isDone in interface UnitOfWorktrue or false.
  | 
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||