com.wideplay.warp.persist
Interface WorkManager


public interface WorkManager

This interface is used to gain manual control over the unit of work. This is mostly to do work in non-request, non-transactional threads. Or where more fine-grained control over the unit of work is required. Starting and ending a unit of work directly corresponds to opening and closing a Session, EntityManager or ObjectContainer respectively.

The Unit of Work referred to by WorkManager will always be local to the calling thread. Be careful to endWork() in a finally block. Neither JPA, nor Hibernate supports threadsafe sessions (reasoning behind thread-locality of Unit of Work semantics).


Method Summary
 void beginWork()
          Starts a Unit Of Work.
 void endWork()
          Declares an end to the current Unit of Work.
 String toString()
          Returns a short description that uniquely identifies the WorkManager.
 

Method Detail

beginWork

void beginWork()
Starts a Unit Of Work. Underneath, causes a session to the data layer to be opened. If there is already one open, the invocation will do nothing. In this way, you can define arbitrary units-of-work that nest within one another safely. Transaction semantics are not affected.


endWork

void endWork()
Declares an end to the current Unit of Work. Underneath, causes any open session to the data layer to close. If there is no Unit of work open, then the call returns silently. You can safely invoke endWork() repeatedly. Transaction semantics are not affected.


toString

String toString()
Returns a short description that uniquely identifies the WorkManager.

Overrides:
toString in class Object