public virtual void Validate(MigratingCompensationEventSubscriptionInstance migratingInstance, MigratingProcessInstance migratingProcessInstance, MigratingActivityInstanceValidationReportImpl ancestorInstanceReport) { // Compensation start event subscriptions are MigratingEventScopeInstances // because they reference an event scope execution }
protected internal virtual void validateCompensateSubscriptionInstance(MigratingCompensationEventSubscriptionInstance eventSubscriptionInstance, MigratingProcessInstance migratingProcessInstance, IList <MigratingCompensationInstanceValidator> migratingTransitionInstanceValidators, MigratingActivityInstanceValidationReportImpl instanceReport) { foreach (MigratingCompensationInstanceValidator validator in migratingTransitionInstanceValidators) { validator.validate(eventSubscriptionInstance, migratingProcessInstance, instanceReport); } }
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"); } }
protected internal virtual MigratingProcessElementInstance createMigratingEventSubscriptionInstance(MigratingInstanceParseContext parseContext, EventSubscriptionEntity element) { ActivityImpl compensationHandler = parseContext.SourceProcessDefinition.findActivity(element.ActivityId); MigrationInstruction migrationInstruction = getMigrationInstruction(parseContext, compensationHandler); ActivityImpl targetScope = null; if (migrationInstruction != null) { ActivityImpl targetEventScope = (ActivityImpl)parseContext.getTargetActivity(migrationInstruction).EventScope; targetScope = targetEventScope.findCompensationHandler(); } MigratingCompensationEventSubscriptionInstance migratingCompensationInstance = parseContext.MigratingProcessInstance.addCompensationSubscriptionInstance(migrationInstruction, element, compensationHandler, targetScope); parseContext.consume(element); return(migratingCompensationInstance); }
protected internal virtual bool IsInvalid(MigratingCompensationEventSubscriptionInstance migratingInstance) { return(HasNoInstruction(migratingInstance)); }