net.officefloor.frame.internal.structure
Interface WorkContainer<W extends Work>

All Known Implementing Classes:
WorkContainerImpl, WorkContainerProxy

public interface WorkContainer<W extends Work>

Container managing the Work.

Author:
Daniel Sagenschneider

Method Summary
 void administerManagedObjects(TaskDutyAssociation<?> duty, AdministratorContext adminContext, ContainerContext containerContext)
          Administers the ManagedObject instances as per the input TaskDutyAssociation.
 void coordinateManagedObjects(ManagedObjectIndex[] managedObjectIndexes, JobContext jobContext, JobNode jobNode, JobNodeActivateSet activateSet, ContainerContext context)
          Coordinates the ManagedObject instances.
 Object getObject(ManagedObjectIndex managedObjectIndex, ThreadState threadState)
          Obtains the Object of the particular ManagedObject.
 W getWork(ThreadState threadState)
          Obtains the Work being managed.
 void governManagedObjects(ManagedObjectIndex[] managedObjectIndexes, JobContext jobContext, JobNode jobNode, JobNodeActivateSet activateSet, ContainerContext context)
          Governs the ManagedObject instances.
 boolean isManagedObjectsReady(ManagedObjectIndex[] managedObjectIndexes, JobContext jobContext, JobNode jobNode, JobNodeActivateSet activateSet, ContainerContext context)
          Indicates if the particular ManagedObject is ready for use.
 void loadManagedObjects(ManagedObjectIndex[] managedObjectIndexes, JobContext jobContext, JobNode jobNode, JobNodeActivateSet activateSet, TeamIdentifier currentTeam, ContainerContext context)
          Triggers for the particular ManagedObject instances to be loaded.
 void unloadWork(JobNodeActivateSet activateSet, TeamIdentifier currentTeam)
          Unloads the Work.
 

Method Detail

getWork

W getWork(ThreadState threadState)
Obtains the Work being managed.

Parameters:
threadState - ThreadState requiring the Work.
Returns:
Work being managed.

loadManagedObjects

void loadManagedObjects(ManagedObjectIndex[] managedObjectIndexes,
                        JobContext jobContext,
                        JobNode jobNode,
                        JobNodeActivateSet activateSet,
                        TeamIdentifier currentTeam,
                        ContainerContext context)
Triggers for the particular ManagedObject instances to be loaded.

Parameters:
managedObjectIndexes - ManagedObjectIndex instances identifying the ManagedObject instances to be loaded.
jobContext - Context for executing the JobNode.
jobNode - JobNode requesting the ManagedObject instances to be loaded.
activateSet - JobNodeActivateSet to add JobNode instances to activate.
currentTeam - TeamIdentifier of the current Team loading the ManagedObject instances.
context - ContainerContext.

governManagedObjects

void governManagedObjects(ManagedObjectIndex[] managedObjectIndexes,
                          JobContext jobContext,
                          JobNode jobNode,
                          JobNodeActivateSet activateSet,
                          ContainerContext context)
Governs the ManagedObject instances.

Parameters:
managedObjectIndexes - ManagedObjectIndex instances identifying the ManagedObject instances for Governance.
jobContext - Context for executing the JobNode.
jobNode - JobNode requesting the ManagedObject instances for Governance.
activateSet - JobNodeActivateSet to add JobNode instances to activate.
context - ContainerContext.

coordinateManagedObjects

void coordinateManagedObjects(ManagedObjectIndex[] managedObjectIndexes,
                              JobContext jobContext,
                              JobNode jobNode,
                              JobNodeActivateSet activateSet,
                              ContainerContext context)
Coordinates the ManagedObject instances.

Parameters:
managedObjectIndexes - ManagedObjectIndex instances identifying the ManagedObject instances to be coordinated.
jobContext - Context for executing the JobNode.
jobNode - JobNode requesting the ManagedObject instances to be coordinated.
activateSet - JobNodeActivateSet to add JobNode instances to activate.
context - ContainerContext.

isManagedObjectsReady

boolean isManagedObjectsReady(ManagedObjectIndex[] managedObjectIndexes,
                              JobContext jobContext,
                              JobNode jobNode,
                              JobNodeActivateSet activateSet,
                              ContainerContext context)
Indicates if the particular ManagedObject is ready for use. In other words it has finished any asynchronous operations and is ready for further use.

Parameters:
managedObjectIndexes - ManagedObjectIndex instances identifying the ManagedObject instances to check if ready.
jobContext - Context for executing the JobNode.
jobNode - JobNode requiring the ManagedObject to be ready.
activateSet - JobNodeActivateSet to add JobNode instances to activate.
context - ContainerContext.
Returns:
true if the ManagedObject is ready for use, otherwise false indicating that waiting on the ManagedObject.

administerManagedObjects

void administerManagedObjects(TaskDutyAssociation<?> duty,
                              AdministratorContext adminContext,
                              ContainerContext containerContext)
                              throws Throwable
Administers the ManagedObject instances as per the input TaskDutyAssociation.

Parameters:
duty - TaskDutyAssociation specifying the administration to be undertaken.
adminContext - AdministratorContext.
containerContext - ContainerContext.
Throws:
Throwable - If fails to administer the ManagedObject instances.

getObject

Object getObject(ManagedObjectIndex managedObjectIndex,
                 ThreadState threadState)
Obtains the Object of the particular ManagedObject.

Parameters:
managedObjectIndex - ManagedObjectIndex identifying the ManagedObject.
Returns:
Object of the particular ManagedObject.

unloadWork

void unloadWork(JobNodeActivateSet activateSet,
                TeamIdentifier currentTeam)
Unloads the Work.

Parameters:
activateSet - JobNodeActivateSet to add JobNode instances to activate.
currentTeam - TeamIdentifier of the current Team unloading the Work.


Copyright © 2005-2013. All Rights Reserved.