Example #1
0
 public ParsedOrthogonalStatenode(
     ParsedStatenode parent,
     string name,
     Option <string> uniqueIdentifier,
     int documentIndex,
     Actionblock entryActions,
     Actionblock exitActions) : base(parent, name, uniqueIdentifier, documentIndex, entryActions, exitActions)
 {
 }
Example #2
0
 protected ParsedNonFinalStatenode(
     ParsedStatenode parent,
     string name,
     Option <string> uniqueIdentifier,
     int documentIndex,
     Actionblock entryActions,
     Actionblock exitActions) : base(parent, name, uniqueIdentifier, documentIndex, entryActions, exitActions)
 {
 }
            EventList ExecuteActionBlock(Actionblock actions)
            {
                var result = EventList.Empty();

                try
                {
                    foreach (var action in actions)
                    {
                        functions
                        .executeAction(action, context, microStep.Event.Data)
                        .SwitchSome(result.Enqueue);
                    }
                }
                catch (Exception e)
                {
                    result.EnqueueOnCurrentStep(new ExecutionErrorEvent(e));
                }
                return(result);
            }
Example #4
0
 private static Transition Convert(this TransitionDefinition definition, ParsedStatenode source, Func <OneOf <StatenodeId, string>, ParsedStatenode> getStatenode, ServiceDefinition serviceDefinition, int serviceIndex) =>
 definition.Match(
     forbidden => new Transition(forbidden.Event, source, Enumerable.Empty <ParsedStatenode>(), Actionblock.Empty(), Option.None <Guard>(), true),
     unguarded => new Transition(unguarded.Event.Convert(source, serviceDefinition, serviceIndex), source, unguarded.Targets.GetTargetStatenodes(source.Id, getStatenode), unguarded.Actions.Convert(), Option.None <Guard>(), false),
     unguarded => new Transition(unguarded.Event.Convert(source, serviceDefinition, serviceIndex), source, unguarded.Targets.GetTargetStatenodes(source.Id, getStatenode), unguarded.Actions.Convert(), Option.None <Guard>(), false),
     unguarded => new Transition(unguarded.Event.Convert(source, serviceDefinition, serviceIndex), source, unguarded.Targets.GetTargetStatenodes(source.Id, getStatenode), unguarded.Actions.Convert(), Option.None <Guard>(), false),
     guarded => new Transition(guarded.Event.Convert(source, serviceDefinition, serviceIndex), source, guarded.Targets.GetTargetStatenodes(source.Id, getStatenode), guarded.Actions.Convert(), (guarded.Guard as Guard).ToOption(), false),
     guarded => new Transition(guarded.Event.Convert(source, serviceDefinition, serviceIndex), source, guarded.Targets.GetTargetStatenodes(source.Id, getStatenode), guarded.Actions.Convert(), guarded.Guard.AsBase().ToOption(), false),
     guarded => new Transition(guarded.Event.Convert(source, serviceDefinition, serviceIndex), source, guarded.Targets.GetTargetStatenodes(source.Id, getStatenode), guarded.Actions.Convert(), guarded.Guard.AsBase().ToOption(), false));
Example #5
0
 internal static Transition GetInitialTransition(this ParsedOrthogonalStatenode statenode) =>
 new Transition(new InitializeEvent(statenode.Id), statenode, statenode.Statenodes, Actionblock.Empty(), Option.None <Guard>(), false);
Example #6
0
 private static Actionblock NullsafeConvert(IEnumerable <ExecutableAction> actions) =>
 actions != null
         ? Actionblock.From(actions)
         : Actionblock.Empty();