* If specified that the conditions should be checked then any conditions * set on the action are evaluated. *
* If the conditions fail then the action is not executed. *
* If an action has no conditions then the action will always be executed. *
* If the conditions are not checked then the action will always be executed. * * @param action the action * @param actionedUponNodeRef the actioned upon node reference * @param checkConditions indicates whether the conditions should be checked before * executing the action * @param executeAsynchronously indicates whether the action should be executed asychronously or not, this value overrides * the value set on the action its self */ @Auditable(parameters = {"action", "actionedUponNodeRef", "checkConditions", "executeAsynchronously" }) void executeAction(Action action, NodeRef actionedUponNodeRef, boolean checkConditions, boolean executeAsynchronously); /** * Evaluted the conditions set on an action. *
* Returns true if the action has no conditions. *
* If the action has more than one condition their results are combined using the 'AND' * logical operator. * * @param action the action * @param actionedUponNodeRef the actioned upon node reference * @return true if the condition succeeds, false otherwise */ @Auditable(parameters = {"action", "actionedUponNodeRef" }) boolean evaluateAction(Action action, NodeRef actionedUponNodeRef); /** * Evaluate an action condition. * * @param condition the action condition * @param actionedUponNodeRef the actioned upon node reference * @return true if the condition succeeds, false otherwise */ @Auditable(parameters = {"condition", "actionedUponNodeRef" }) boolean evaluateActionCondition(ActionCondition condition, NodeRef actionedUponNodeRef); /** * Save an action against a node reference. *
* The node will be made configurable if it is not already. *
* If the action already exists then its details will be updated.
*
* @param nodeRef the node reference
* @param action the action
*/
@Auditable(parameters = {"nodeRef", "action" })
void saveAction(NodeRef nodeRef, Action action);
/**
* Gets all the actions currently saved on the given node reference.
*
* @param nodeRef the node reference
* @return the list of actions
*/
@Auditable(parameters = {"nodeRef"})
List
* Returns null if the action can not be found.
*
* @param nodeRef the node reference
* @param actionId the action id
* @return the action
*/
@Auditable(parameters = {"nodeRef", "actionId"})
Action getAction(NodeRef nodeRef, String actionId);
/**
* Removes an action associated with a node reference.
*
* @param nodeRef the node reference
* @param action the action
*/
@Auditable(parameters = {"nodeRef", "action" })
void removeAction(NodeRef nodeRef, Action action);
/**
* Removes all actions associated with a node reference
*
* @param nodeRef the node reference
*/
@Auditable(parameters = {"nodeRef"})
void removeAllActions(NodeRef nodeRef);
}