Interface PvmScope

All Superinterfaces:
PvmProcessElement, Serializable
All Known Subinterfaces:
PvmActivity, PvmProcessDefinition, ReadOnlyProcessDefinition
All Known Implementing Classes:
ActivityImpl, ProcessDefinitionEntity, ProcessDefinitionImpl, ProcessDefinitionStatisticsEntity, ScopeImpl

public interface PvmScope extends PvmProcessElement
Author:
Tom Baeyens, Daniel Meyer
  • Method Details

    • isScope

      boolean isScope()
      Indicates whether this is a local scope for variables and events if true, there will _always_ be a scope execution created for it.

      Note: the fact that this is a scope does not mean that it is also a sub process scope.

      Returns:
      true if this activity is a scope
    • isSubProcessScope

      boolean isSubProcessScope()
      Indicates whether this scope is a sub process scope. A sub process scope is a scope which contains "normal flow".Scopes which are flow scopes but not sub process scopes:
      • a multi instance body scope
      • leaf scope activities which are pure event scopes (Example: User task with attached boundary event)
      Returns:
      true if this is a sub process scope
    • getEventScope

      PvmScope getEventScope()
      The event scope for an activity is the scope in which the activity listens for events. This may or may not be the flow scope.. Consider: boundary events have a different event scope than flow scope.

      The event scope is always a scope.

      Returns:
      the event scope of the activity
    • getFlowScope

      ScopeImpl getFlowScope()
      The flow scope of the activity. The scope in which the activity itself is executed.

      Note: in order to ensure backwards compatible behavior, a flow scope is not necessarily a a scope. Example: event sub processes.

    • getLevelOfSubprocessScope

      PvmScope getLevelOfSubprocessScope()
      The "level of subprocess scope" as defined in bpmn: this is the subprocess containing the activity. Usually this is the same as the flow scope, instead if the activity is multi instance: in that case the activity is nested inside a mutli instance body but "at the same level of subprocess" as other activities which are siblings to the mi-body.
      Returns:
      the level of subprocess scope as defined in bpmn
    • getActivities

      List<? extends PvmActivity> getActivities()
      Returns the flow activities of this scope. This is the list of activities for which this scope is the flow scope.
      Returns:
      the list of flow activities for this scope.
    • findActivity

      PvmActivity findActivity(String activityId)
      Recursively finds a flow activity. This is an activitiy which is in the hierarchy of flow activities.
      Parameters:
      activityId - the id of the activity to find.
      Returns:
      the activity or null
    • findActivityAtLevelOfSubprocess

      PvmActivity findActivityAtLevelOfSubprocess(String activityId)
      Finds an activity at the same level of subprocess.
      Parameters:
      activityId - the id of the activity to find.
      Returns:
      the activity or null
    • findTransition

      TransitionImpl findTransition(String transitionId)
      Recursively finds a transition.
      Parameters:
      transitionId - the transiton to find
      Returns:
      the transition or null