/// <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();
 }