#PLEASE DO NOT EDIT THIS CODE
#This code was generated using the UMPLE 1.38.0.8942.247e17422 modeling language!

from enum import Enum


class Example:
    class Light(Enum):
        On = "On"
        Off = "Off"

        def __str__(self):
            return self.value

    def __init__(self):
        self._light = None
        self._deleted = False
        self.setLight(__class__.Light.On)
        if self._deleted:
            return

    def getLightFullName(self):
        answer = str(self._light)
        return answer

    def getLight(self):
        return self._light

    def flip(self):
        if self._deleted:
            return False
        wasEventProcessed = False
        aLight = self._light
        if aLight is __class__.Light.On:
            self.setLight(__class__.Light.Off)
            wasEventProcessed = True
        elif aLight is __class__.Light.Off:
            self.setLight(__class__.Light.On)
            wasEventProcessed = True
        return wasEventProcessed

    def setLight(self, aLight):
        # line 22 "CodeInjectionStateMachineTest.ump"
        print("About to flip")
        # end line
        if self._deleted:
            return
        self._light = aLight
        # line 18 "CodeInjectionStateMachineTest.ump"
        print("Just flipped")
        # end line
        if self._deleted:
            return

    def delete(self):
        self._deleted = True

#PLEASE DO NOT EDIT THIS CODE
#This code was generated using the UMPLE 1.38.0.8942.247e17422 modeling language!

from Mentor import Mentor


class Example(Mentor):
    def __init__(self, aAttr):
        super().__init__(aAttr)

    def getAttr(self):
        # before getAttr
        pass
        aAttr = super().getAttr()
        # after getAttr
        pass
        return aAttr

    def getDerivedAttr(self):
        # before getDerivedAttr
        pass
        aDerivedAttr = super().getDerivedAttr()
        # after getDerivedAttr
        pass
        return aDerivedAttr

    def getDefaultedAttr(self):
        # before getDefaultedAttr
        pass
        aDefaultedAttr = super().getDefaultedAttr()
        # after getDefaultedAttr
        pass
        return aDefaultedAttr

    def delete(self):
        super().delete()