Class BaseTaskWorkloadProvider
java.lang.Object
com.webmethods.caf.faces.bean.PageFlowScopeAdapter
com.webmethods.caf.faces.data.task.BaseTaskWorkloadProvider
- All Implemented Interfaces:
IPageFlowScopeAdapter
,IContentProvider
,ITaskWorkloadProvider
- Direct Known Subclasses:
TaskInboxQueueWorkloadProvider
,TaskRoundRobinWorkloadProvider
public abstract class BaseTaskWorkloadProvider
extends PageFlowScopeAdapter
implements IContentProvider, ITaskWorkloadProvider
Base implementation class for
ITaskWorkloadProvider
-
Field Summary
FieldsFields inherited from class com.webmethods.caf.faces.bean.PageFlowScopeAdapter
fExpireWithPageFlow
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract Object
This needs to be implemented by subclass implementing concrete workgroup assignment policyprotected void
Implementation method which checks availability of users fromgetWorkgroupMembers()
list.int
Returns number of users in the workgroupObject[]
Returns list of public properties supported by this provider.Returns result of the workload provider.com.webmethods.caf.rules.IRule
getRule()
Returns the rule instance used for this workload managerReturns taskID being assignedClass<?>
Returns list of classes of public properties supported by this providerReturns value from the provider propertyReturns internal ID of the workgroup which owns list of usersgetWorkgroupMembers()
Object[]
Returns list of users names in the workgroupboolean
hasProperty
(Object propertyKey) Checks if provider support given propertyvoid
Initializes instance of workload provider.boolean
Returns "true" if provider needs to check user availability for task assignmentvoid
setCheckAvailability
(boolean checkAvailability) Sets flag to check user availability for task assignmentvoid
setNumberOfUsers
(int numberOfUsers) Sets number of users in the workgroupvoid
setRule
(com.webmethods.caf.rules.IRule rule) Sets rule instance to be used by workload managervoid
Sets taskID being assignedvoid
setWorkgroup
(String workgroup) Sets internal workgroup name for this providervoid
setWorkgroupMembers
(Object[] workgroupMembers) Sets workgroup members - list of user namesMethods inherited from class com.webmethods.caf.faces.bean.PageFlowScopeAdapter
getExpireWithPageFlow, setExpireWithPageFlow
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.webmethods.caf.faces.data.IContentProvider
toString
-
Field Details
-
PROPERTY_RESULT
- See Also:
-
PROPERTY_KEYS
-
-
Constructor Details
-
BaseTaskWorkloadProvider
public BaseTaskWorkloadProvider()
-
-
Method Details
-
init
Initializes instance of workload provider. Default implementation simply sets object properties from the passed map- Specified by:
init
in interfaceITaskWorkloadProvider
- Throws:
Exception
-
getPropertyKeys
Returns list of public properties supported by this provider. For workload provider there is only one property "result"- Specified by:
getPropertyKeys
in interfaceIContentProvider
- Returns:
- array of property keys which is typically of type
String
orInteger
-
getType
Returns list of classes of public properties supported by this provider- Specified by:
getType
in interfaceIContentProvider
- Parameters:
propertyKey
- the property key of typeString
orInteger
- Returns:
- property java
Class
- Throws:
PropertyNotFoundException
- if property is not supported
-
getValue
Returns value from the provider property- Specified by:
getValue
in interfaceIContentProvider
- Parameters:
propertyKey
- the property key of typeString
orInteger
- Returns:
- value of the property, can be
null
- Throws:
PropertyNotFoundException
- if property is not supportedELException
-
hasProperty
Checks if provider support given property- Specified by:
hasProperty
in interfaceIContentProvider
- Parameters:
propertyKey
- property key of typeString
orInteger
- Returns:
true
if property is supported
-
getResult
Returns result of the workload provider. This is implementation dependent and should resolve to single or multiple principals for from assignment rule which uses this provider- Specified by:
getResult
in interfaceITaskWorkloadProvider
- Returns:
- user, group or role UID to assign task to
- Throws:
ContentProviderException
-
checkAvailability
Implementation method which checks availability of users fromgetWorkgroupMembers()
list. The algorithm for that is:
Get next available work date start for each of the members of the group. If the beginning of the working day of everyone in this group is different, then only those who will start as soon as possible will be added to the workgroup.
getWorkgroupMembers()
list- Throws:
ContentProviderException
-
getWorkgroup
Returns internal ID of the workgroup which owns list of usersgetWorkgroupMembers()
- Specified by:
getWorkgroup
in interfaceITaskWorkloadProvider
-
getWorkgroupMembers
Returns list of users names in the workgroup- Specified by:
getWorkgroupMembers
in interfaceITaskWorkloadProvider
-
setWorkgroup
Sets internal workgroup name for this provider- Specified by:
setWorkgroup
in interfaceITaskWorkloadProvider
-
setWorkgroupMembers
Sets workgroup members - list of user names- Specified by:
setWorkgroupMembers
in interfaceITaskWorkloadProvider
-
getRule
public com.webmethods.caf.rules.IRule getRule()Description copied from interface:ITaskWorkloadProvider
Returns the rule instance used for this workload manager- Specified by:
getRule
in interfaceITaskWorkloadProvider
-
setRule
public void setRule(com.webmethods.caf.rules.IRule rule) Description copied from interface:ITaskWorkloadProvider
Sets rule instance to be used by workload manager- Specified by:
setRule
in interfaceITaskWorkloadProvider
-
getTaskID
Returns taskID being assigned- Specified by:
getTaskID
in interfaceITaskWorkloadProvider
-
setTaskID
Sets taskID being assigned- Specified by:
setTaskID
in interfaceITaskWorkloadProvider
-
isCheckAvailability
public boolean isCheckAvailability()Returns "true" if provider needs to check user availability for task assignment -
setCheckAvailability
public void setCheckAvailability(boolean checkAvailability) Sets flag to check user availability for task assignment -
getNumberOfUsers
public int getNumberOfUsers()Returns number of users in the workgroup -
setNumberOfUsers
public void setNumberOfUsers(int numberOfUsers) Sets number of users in the workgroup- Parameters:
numberOfUsers
-
-
calculateResult
This needs to be implemented by subclass implementing concrete workgroup assignment policy- Throws:
ContentProviderException
-