#PLEASE DO NOT EDIT THIS CODE
#This code was generated using the UMPLE 1.32.1.6535.66c005ced modeling language!
# line 4 "../noDefaultEntryMethodGenerated_2Python.ump"
from enum import Enum, auto

class X():
    #------------------------
    # MEMBER VARIABLES
    #------------------------
    #X State Machines
    class Sm(Enum):
        def _generate_next_value_(name, start, count, last_values):
            return name
        def __str__(self):
            return str(self.value)
        on = auto()
        idle = auto()
        off = auto()

    #------------------------
    # CONSTRUCTOR
    #------------------------
    def __init__(self):
        self._sm = None
        self.setSm(X.Sm.on)

    #------------------------
    # INTERFACE
    #------------------------
    def getSmFullName(self):
        answer = self._sm.__str__()
        return answer

    def getSm(self):
        return self._sm

    def turnOff(self):
        wasEventProcessed = False
        aSm = self._sm
        if aSm == X.Sm.on :
            self.setSm(X.Sm.off)
            wasEventProcessed = True
        else :
            # Other states do respond to this event
            pass
        return wasEventProcessed

    def goIdle(self):
        wasEventProcessed = False
        aSm = self._sm
        if aSm == X.Sm.on :
            self.setSm(X.Sm.idle)
            wasEventProcessed = True
        else :
            # Other states do respond to this event
            pass
        return wasEventProcessed

    def buttonPressed(self):
        wasEventProcessed = False
        aSm = self._sm
        if aSm == X.Sm.idle :
            self.setSm(X.Sm.on)
            wasEventProcessed = True
        else :
            # Other states do respond to this event
            pass
        return wasEventProcessed

    def turnOn(self):
        wasEventProcessed = False
        aSm = self._sm
        if aSm == X.Sm.off :
            self.setSm(X.Sm.on)
            wasEventProcessed = True
        else :
            # Other states do respond to this event
            pass
        return wasEventProcessed

    def setSm(self, aSm):
        self._sm = aSm

    def delete(self):
        pass

