/// <summary> /// Write the State enum to the current state when OnEntry is called by the context. /// </summary> /// <param name="state"></param> /// <param name="onMethod"></param> /// <param name="onEntryExit"></param> private void writeStateEntryStateSetter(StateType state, CodeMemberMethod onMethod, string onEntryExit) { string o = GetStateHierarchicalName(state); string dType = Model.settings.@object[0] .@class; string dTypeInstance = Model.settings.@object[0] .instance; string enumTypeName = StateStore.EnumTypeName; string currentStateEnumPart = StateStore.GetStateEnumHierarchyString(state); string statePropSetterTest = ""; if (state.name != Model.state.name) // state not root state { statePropSetterTest = makeStatePropertySetterStatement(dType, dTypeInstance, enumTypeName, currentStateEnumPart); } //default if state is root if (state.name == StateStore.ParentStateName) { statePropSetterTest = makeStatePropertySetterStatement(dType, dTypeInstance, enumTypeName, StateStore.defaultEntryStateEnum); } if (onEntryExit == "OnEntry" // && state.name != Model.state.name ) { CodeSnippetStatement enumSetterState = new CodeSnippetStatement(statePropSetterTest); //todo add the snippet to the method onMethod.Statements.Add(enumSetterState); } }
partial void OnWriteCodeCompleted(StateType state, StateMachineType model) { //writes the enum State store StateStore.WriteClass(); }