예제 #1
0
 public virtual void validate(MigratingCompensationEventSubscriptionInstance migratingInstance, MigratingProcessInstance migratingProcessInstance, MigratingActivityInstanceValidationReportImpl ancestorInstanceReport)
 {
     if (isInvalid(migratingInstance))
     {
         ancestorInstanceReport.addFailure("Cannot migrate subscription for compensation handler '" + migratingInstance.SourceScope.Id + "'. " + "There is no migration instruction for the compensation boundary event");
     }
 }
예제 #2
0
        public virtual void validate(MigratingEventScopeInstance migratingInstance, MigratingProcessInstance migratingProcessInstance, MigratingActivityInstanceValidationReportImpl ancestorInstanceReport)
        {
            MigratingCompensationEventSubscriptionInstance eventSubscription = migratingInstance.EventSubscription;

            ActivityImpl eventHandlerActivity = (ActivityImpl)eventSubscription.SourceScope;

            // note: compensation event scopes without children are already handled by NoUnmappedLeafInstanceValidator
            if (eventHandlerActivity.TriggeredByEvent && eventSubscription.TargetScope == null && migratingInstance.Children.Count > 0)
            {
                ancestorInstanceReport.addFailure("Cannot migrate subscription for compensation handler '" + eventSubscription.SourceScope.Id + "'. " + "There is no migration instruction for the compensation start event");
            }
        }
예제 #3
0
 public virtual void validate(MigratingCompensationEventSubscriptionInstance migratingInstance, MigratingProcessInstance migratingProcessInstance, MigratingActivityInstanceValidationReportImpl ancestorInstanceReport)
 {
     // Compensation start event subscriptions are MigratingEventScopeInstances
     // because they reference an event scope execution
 }
예제 #4
0
 protected internal virtual bool isInvalid(MigratingCompensationEventSubscriptionInstance migratingInstance)
 {
     return(hasNoInstruction(migratingInstance));
 }