Ejemplo n.º 1
0
        /// <summary>
        /// Collect all compensate event subscriptions for scope of given execution.
        /// </summary>
        public static IList <EventSubscriptionEntity> collectCompensateEventSubscriptionsForScope(ActivityExecution execution)
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final java.util.Map<org.camunda.bpm.engine.impl.pvm.process.ScopeImpl, org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl> scopeExecutionMapping = execution.createActivityExecutionMapping();
            IDictionary <ScopeImpl, PvmExecutionImpl> scopeExecutionMapping = execution.createActivityExecutionMapping();
            ScopeImpl activity = (ScopeImpl)execution.Activity;

            // <LEGACY>: different flow scopes may have the same scope execution =>
            // collect subscriptions in a set
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final java.util.Set<org.camunda.bpm.engine.impl.persistence.entity.EventSubscriptionEntity> subscriptions = new java.util.HashSet<org.camunda.bpm.engine.impl.persistence.entity.EventSubscriptionEntity>();
            ISet <EventSubscriptionEntity> subscriptions = new HashSet <EventSubscriptionEntity>();
            TreeVisitor <ScopeImpl>        eventSubscriptionCollector = new TreeVisitorAnonymousInnerClass(execution, scopeExecutionMapping, subscriptions);

            (new FlowScopeWalker(activity)).addPostVisitor(eventSubscriptionCollector).walkUntil(new WalkConditionAnonymousInnerClass());

            return(new List <EventSubscriptionEntity>(subscriptions));
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     Collect all compensate event subscriptions for scope of given execution.
        /// </summary>
        public static IList <EventSubscriptionEntity> CollectCompensateEventSubscriptionsForScope(
            IActivityExecution execution)
        {
            var scopeExecutionMapping = execution.CreateActivityExecutionMapping();
            var activity = (ScopeImpl)execution.Activity;

            // <LEGACY>: different flow scopes may have the same scope execution =>
            // collect subscriptions in a set
            ISet <EventSubscriptionEntity> subscriptions = new HashSet <EventSubscriptionEntity>();
            ITreeVisitor <ScopeImpl>       eventSubscriptionCollector = new TreeVisitorAnonymousInnerClass(execution,
                                                                                                           scopeExecutionMapping, subscriptions);

            new FlowScopeWalker(activity).AddPostVisitor(eventSubscriptionCollector)
            .WalkUntil(element => {
                bool?flag = (bool?)element.GetProperty(BpmnParse.PropertynameConsumesCompensation);
                return(flag == null || flag == true);
            });

            return(new List <EventSubscriptionEntity>(subscriptions));
        }