com.bea.wli.worklist.api.config
Class AbstractAssignmentHandlerImpl

java.lang.Object
  extended by com.bea.wli.worklist.api.config.AbstractAssignmentHandlerImpl
All Implemented Interfaces:
AssignmentHandler

public abstract class AbstractAssignmentHandlerImpl
extends Object
implements AssignmentHandler

Abstract assignment handler for worklist. Contains default implementation for assign to next user related methods. Customers can extend this instead of the interface if they like. This class traverses the candidate list in increasing index order. Thus, the first candidate is at index 0 in the candidate list and the last is at candidateUserIds.length - 1.


Nested Class Summary
static class AbstractAssignmentHandlerImpl.ResponseImpl
          Default implementation of the AssignmentHandler.Responses interface.
 
Nested classes/interfaces inherited from interface com.bea.wli.worklist.api.config.AssignmentHandler
AssignmentHandler.Request, AssignmentHandler.Response
 
Constructor Summary
AbstractAssignmentHandlerImpl()
           
 
Method Summary
 AssignmentHandler.Response assignTaskToNextUser(String currentClaimant, String[] candidateUserIds)
          Scans the list of candidates, finding the named current claimant, and then returning the candidate at next next sequential index position.
 void destroy()
          Default implementation of destroy.
 boolean isLastCandidateOnList(String currentClaimant, String[] candidateUserIds)
          Returns true if the currentClaimant is found at index candidateUserIds.length - 1 within candidateUserIds.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.bea.wli.worklist.api.config.AssignmentHandler
assignTask, initialize, setProperties
 

Constructor Detail

AbstractAssignmentHandlerImpl

public AbstractAssignmentHandlerImpl()
Method Detail

assignTaskToNextUser

public AssignmentHandler.Response assignTaskToNextUser(String currentClaimant,
                                                       String[] candidateUserIds)
                                                throws AssignmentException,
                                                       ManagementException
Scans the list of candidates, finding the named current claimant, and then returning the candidate at next next sequential index position. This candidate is returned as the claimant within the returned Response object.

Specified by:
assignTaskToNextUser in interface AssignmentHandler
Parameters:
currentClaimant - Current claimant of the task.
candidateUserIds - List of user ids for the users that have been designated as candidate claimants for the task. This list is guaranteed to be the same (same users in the same order) from first call to this method in the iteration of the list to the last call.
Returns:
A Response instance indicating any newly calculated assignee list to be used for this task, and any claimant chosen for the task. Implementations are free to traverse the list of candidates in any order they like.
Throws:
AssignmentException - if the currentClaimant cannot be found on the candidateUserIds array as determined with an Object.equals() comparison.
ManagementException - If any other error occurs during assignment.

isLastCandidateOnList

public boolean isLastCandidateOnList(String currentClaimant,
                                     String[] candidateUserIds)
                              throws AssignmentException,
                                     ManagementException
Returns true if the currentClaimant is found at index candidateUserIds.length - 1 within candidateUserIds. Matching is done using Object.equals() comparison.

Specified by:
isLastCandidateOnList in interface AssignmentHandler
Parameters:
currentClaimant - Current claimant of the task.
candidateUserIds - List of user ids for the users that have been designated as candidate claimants for the task. This list is guaranteed to be the same (same users in the same order) from first call to this method in the iteration of the list to the last call.
Returns:
True if the currentClaimant is the 'last' candidate on the list.
Throws:
AssignmentException - if any authorization or logical error happens during assignment.
ManagementException - If any other error occurs during assignment.

destroy

public void destroy()
             throws ManagementException
Default implementation of destroy. This method implementation does nothing and simply returns.

Specified by:
destroy in interface AssignmentHandler
Throws:
ManagementException - If any error occurs releasing resources.