Exemplo n.º 1
0
        public StateMachine ToMachineModel()
        {
            var machine = new StateMachine(Name);

            var vertexLookup = new VertexLookup();

            // First pass : state declarations
            foreach (var component in Components)
            {
                switch (component)
                {
                case StateDefinition stateDef:
                    machine.AddChild(CreateState(machine, stateDef, vertexLookup));
                    break;

                default:
                    // Ignore everything else in this pass
                    break;
                }
            }

            // Second pass : internal and external transitions
            foreach (var component in Components)
            {
                switch (component)
                {
                case StateDefinition stateDef:
                    HandleStateComponents(stateDef, vertexLookup);
                    break;



                default:
                    // Ignore everything else in this pass
                    break;
                }
            }

            return(machine);
        }