Class ActionExecuterAbstractBase

All Implemented Interfaces:
ActionExecuter, LoggingAwareExecuter, org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanNameAware
Direct Known Subclasses:
AbstractRenderingEngine, AddFailedThumbnailActionExecuter, AddFeaturesActionExecuter, CancelWorkflowActionExecuter, CheckInActionExecuter, CheckOutActionExecuter, CompositeActionExecuter, ContentMetadataEmbedder, ContentMetadataExtracter, CopyActionExecuter, CountChildrenActionExecuter, CounterIncrementActionExecuter, CreateDownloadArchiveAction, CreateThumbnailActionExecuter, CreateTransferTargetActionExecuter, CreateVersionActionExecuter, DeleteRenditionActionExecuter, ExecuteAllRulesActionExecuter, ExporterActionExecuter, ImporterActionExecuter, LinkCategoryActionExecuter, LinkRules, MailActionExecuter, MoveActionExecuter, PerformRenditionActionExecuter, QuickShareLinkExpiryActionExecutor, RefreshTagScopeActionExecuter, RemoveFeaturesActionExecuter, ReorderRules, ReplicationActionExecutor, RepositoryExporterActionExecuter, ScriptActionExecuter, SetPropertyValueActionExecuter, SimpleWorkflowActionExecuter, SpecialiseTypeActionExecuter, StartWorkflowActionExecuter, TakeOwnershipActionExecuter, TransferAsyncAction, TransferCommitActionExecuter, TransferOneNodeActionExecuter, TransferTreeActionExecuter, TransferTreeWithCancelActionExecuter, TransformActionExecuter, TransitionSimpleWorkflowActionExecuter, UnlinkRules, UpdateTagScopesActionExecuter, UpdateThumbnailActionExecuter

@AlfrescoPublicApi public abstract class ActionExecuterAbstractBase extends ParameterizedItemAbstractBase implements ActionExecuter, LoggingAwareExecuter
Rule action executor abstract base.
Author:
Roy Wetherall
  • Field Details

    • actionDefinition

      protected ActionDefinition actionDefinition
    • publicAction

      protected boolean publicAction
      Indicated whether the action is public or internal (default true)
    • actionAccessRestrictions

      protected List<ActionAccessRestriction> actionAccessRestrictions
      List of action access restrictions (default empty list
    • applicableTypes

      protected Set<QName> applicableTypes
      List of types and aspects for which this action is applicable
  • Constructor Details

    • ActionExecuterAbstractBase

      public ActionExecuterAbstractBase()
  • Method Details

    • init

      public void init()
      Init method
    • setMlAwareNodeService

      public void setMlAwareNodeService(NodeService mlAwareNodeService)
    • setLockService

      public void setLockService(LockService lockService)
    • setBaseNodeService

      public void setBaseNodeService(NodeService nodeService)
    • setDictionaryService

      public void setDictionaryService(DictionaryService dictionaryService)
      Set the dictionary service
      Parameters:
      dictionaryService - the dictionary service
    • setPublicAction

      public void setPublicAction(boolean publicAction)
      Set whether the action is public or not.
      Parameters:
      publicAction - true if the action is public, false otherwise
    • setActionAccessRestrictions

      public void setActionAccessRestrictions(List<ActionAccessRestriction> actionAccessRestrictions)
      Set action access restrictions
      Parameters:
      actionAccessRestrictions -
    • getActionAccessRestrictions

      public List<ActionAccessRestriction> getActionAccessRestrictions()
    • getTrackStatus

      public boolean getTrackStatus()
      Get whether the basic action definition supports action tracking or not. This can be overridden for each action but if not, this value is used. Defaults to false.
      Specified by:
      getTrackStatus in interface ActionExecuter
      Returns:
      true to track action execution status or false (default) to do no action tracking
    • setTrackStatus

      public void setTrackStatus(boolean trackStatus)
      Set whether the basic action definition requires status tracking. This can be overridden on each action instance but if not, it falls back to this definition.

      Setting this to true introduces performance problems for concurrently-executing rules on V3.4: ALF-7341. It should only be used for long, seldom-run actions.

      Parameters:
      trackStatus - true to track execution status otherwise false
      Since:
      3.4.1
    • setApplicableTypes

      public void setApplicableTypes(String[] applicableTypes)
      Set the list of types for which this action is applicable
      Parameters:
      applicableTypes - array of applicable types
    • getIgnoreLock

      public boolean getIgnoreLock()
      Description copied from interface: ActionExecuter
      Indicates whether a lock on the actioned upon node reference should be ignored or not. If true any lock is ignored and execution continues reguardless, otherwise the lock is checked and the action is not executed (ignored) if the actioned upon node reference is locked in any way. By default locks will be ignored.
      Specified by:
      getIgnoreLock in interface ActionExecuter
      Returns:
      boolean true if ignore lock, false otherwise.
      See Also:
    • setIgnoreLock

      public void setIgnoreLock(boolean ignoreLock)
      Set the ignore lock value.
      Parameters:
      ignoreLock - true if lock should be ignored on actioned upon node, false otherwise
    • isApplicableType

      protected boolean isApplicableType(NodeRef actionedUponNodeRef)
      Check if a node is a type or subtype of the of one of the applicable types
      Parameters:
      actionedUponNodeRef - the node to check
      Returns:
      Returns true if the node is in the list of applicable types or one of the subtypes
    • getActionDefinition

      public ActionDefinition getActionDefinition()
      Get rule action definition
      Specified by:
      getActionDefinition in interface ActionExecuter
      Returns:
      the action definition object
    • createActionDefinition

      protected ActionDefinition createActionDefinition(String name)
      This method returns an instance of an ActionDefinition implementation class. By default this will be an ActionDefinitionImpl, but this could be overridden.
    • execute

      public void execute(Action action, NodeRef actionedUponNodeRef)
      Execute the action executer
      Specified by:
      execute in interface ActionExecuter
      Parameters:
      action - the action
      actionedUponNodeRef - the actioned upon node reference
    • verifyActionAccessRestrictions

      public void verifyActionAccessRestrictions(Action action)
      Verify action access restrictions
      Specified by:
      verifyActionAccessRestrictions in interface ActionExecuter
    • executeImpl

      protected abstract void executeImpl(Action action, NodeRef actionedUponNodeRef)
      Execute the action implementation
      Parameters:
      action - the action
      actionedUponNodeRef - the actioned upon node
    • setQueueName

      public void setQueueName(String queueName)
      Set the queueName which will execute this action if blank or null then the action will be executed on the "default" queue
      Parameters:
      queueName - name of the execution queue which should execute this action.
    • getQueueName

      public String getQueueName()
      Description copied from interface: ActionExecuter
      Get the queueName that will execute this action
      Specified by:
      getQueueName in interface ActionExecuter
    • onLogException

      public boolean onLogException(org.apache.commons.logging.Log logger, Throwable t, String message)
      Description copied from interface: LoggingAwareExecuter
      Optional logging of errors callback for the action executer for the cases when the error might be ignored or shown in a different manner for the action
      Specified by:
      onLogException in interface LoggingAwareExecuter
      Parameters:
      logger - the logger
      t - the exception thrown
      message - the proposed message that will be logged
      Returns:
      true if it was handled, false for default handling