private State CreateState(IVertex parent, StateDefinition stateDef, VertexLookup vertexLookup) { var state = new State(parent, stateDef.ShortName); vertexLookup.Add(state); foreach (var component in stateDef.Contents) { switch (component) { case StateDefinition childState: state.AddChild(CreateState(state, childState, vertexLookup)); break; default: // Ignore everything else in this pass break; } } return(state); }
private void HandleStateComponents( StateDefinition stateDefinition, VertexLookup lookup) { var state = (State)lookup[stateDefinition.ShortName]; foreach (var component in Components) { switch (component) { case StateDefinition childStateDef: // already handled break; case ExternalTransition initialTrans when initialTrans.IsInitialTransition: // add initial transition break; default: // Ignore everything else in this pass break; } } }