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


class X:
    def __init__(self, aD, aE):
        self._d = aD
        self._e = aE
        if not (self.getD() > self.getE()):
            raise RuntimeError("Please provide a valid d and e [d>e]")

    def setD(self, aD):
        if not (aD > self.getE()):
            return False
        self._d = aD
        return True

    def setE(self, aE):
        if not (self.getD() > aE):
            return False
        self._e = aE
        return True

    def getD(self):
        return self._d

    def getE(self):
        return self._e

    def delete(self):
        pass

    def __str__(self):
        return (super().__str__() + "["
                + "]"
                + "\n  d=" + ("null" if self.getD() is None else "this" if self.getD() is self else str(self.getD()).replace("  ", "    "))
                + "\n  e=" + ("null" if self.getE() is None else "this" if self.getE() is self else str(self.getE()).replace("  ", "    ")))

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


class Client:
    def __init__(self, aMinAge):
        self._minAge = aMinAge

    def setMinAge(self, aMinAge):
        self._minAge = aMinAge
        return True

    def getMinAge(self):
        return self._minAge

    def delete(self):
        pass

    def someMethod(self, arg):
        result = __class__.someMethod_Original(self, arg)
        if not (arg > 5):
            raise RuntimeError("Please provide a valid arg")
        return result

    def someMethod_Original(self, arg):
        # line 14 "BasicPostCondition1.ump"
        # rest of stuff that we don\'t interpret
        return 0
        # end line

    def __str__(self):
        return (super().__str__() + "["
                + "minAge:" + str(self.getMinAge())
                + "]")

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


class MultipleConstraints:
    def __init__(self, aI, aJ):
        self._i = aI
        self._j = aJ
        if not (self.getI() >= 0):
            raise RuntimeError("Please provide a valid i [i>=0]")
        if not (self.getJ() >= 0):
            raise RuntimeError("Please provide a valid j [j>=0]")
        if not (self.getI() >= self.getJ()):
            raise RuntimeError("Please provide a valid i and j [i>=j]")

    def setI(self, aI):
        if not (aI >= 0):
            return False
        if not (aI >= self.getJ()):
            return False
        self._i = aI
        return True

    def setJ(self, aJ):
        if not (aJ >= 0):
            return False
        if not (self.getI() >= aJ):
            return False
        self._j = aJ
        return True

    def getI(self):
        return self._i

    def getJ(self):
        return self._j

    def delete(self):
        pass

    def __str__(self):
        return (super().__str__() + "["
                + "i:" + str(self.getI()) + ","
                + "j:" + str(self.getJ())
                + "]")

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


class Student:
    def __init__(self, aAge):
        self._age = aAge
        if not (self.getAge() > 18):
            raise RuntimeError("Please provide a valid age [age>18]")

    def setAge(self, aAge):
        if not (aAge > 18):
            return False
        self._age = aAge
        return True

    def getAge(self):
        return self._age

    def delete(self):
        pass

    def __str__(self):
        return (super().__str__() + "["
                + "age:" + str(self.getAge())
                + "]")

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


class Client:
    """attributes on both sides of the constraint's boolean expression"""

    def __init__(self, aMinAge, aAge):
        self._minAge = aMinAge
        self._age = aAge
        if not (self.getAge() > self.getMinAge()):
            raise RuntimeError("Please provide a valid age and minAge [age>minAge]")

    def setMinAge(self, aMinAge):
        if not (self.getAge() > aMinAge):
            return False
        self._minAge = aMinAge
        return True

    def setAge(self, aAge):
        if not (aAge > self.getMinAge()):
            return False
        self._age = aAge
        return True

    def getMinAge(self):
        return self._minAge

    def getAge(self):
        return self._age

    def delete(self):
        pass

    def __str__(self):
        return (super().__str__() + "["
                + "minAge:" + str(self.getMinAge()) + ","
                + "age:" + str(self.getAge())
                + "]")

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


class Student:
    def __init__(self, aAge, aWeight):
        self._age = aAge
        self._weight = aWeight
        if not (self.getWeight() < 3 and self.getAge() > 18):
            raise RuntimeError("Please provide a valid age and weight [weight<3&&age>18]")

    def setAge(self, aAge):
        if not (self.getWeight() < 3 and aAge > 18):
            return False
        self._age = aAge
        return True

    def setWeight(self, aWeight):
        if not (aWeight < 3 and self.getAge() > 18):
            return False
        self._weight = aWeight
        return True

    def getAge(self):
        return self._age

    def getWeight(self):
        return self._weight

    def delete(self):
        pass

    def __str__(self):
        return (super().__str__() + "["
                + "age:" + str(self.getAge()) + ","
                + "weight:" + str(self.getWeight())
                + "]")

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


class Student:
    def __init__(self, aAge, aWeight):
        self._age = aAge
        self._weight = aWeight
        if not (self.getWeight() < 3 or self.getAge() > 18):
            raise RuntimeError("Please provide a valid age and weight [weight<3||age>18]")

    def setAge(self, aAge):
        if not (self.getWeight() < 3 or aAge > 18):
            return False
        self._age = aAge
        return True

    def setWeight(self, aWeight):
        if not (aWeight < 3 or self.getAge() > 18):
            return False
        self._weight = aWeight
        return True

    def getAge(self):
        return self._age

    def getWeight(self):
        return self._weight

    def delete(self):
        pass

    def __str__(self):
        return (super().__str__() + "["
                + "age:" + str(self.getAge()) + ","
                + "weight:" + str(self.getWeight())
                + "]")

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


class Student:
    def __init__(self, aAge, aWeight):
        self._age = aAge
        self._weight = aWeight
        if not ((self.getAge() <= 18)):
            raise RuntimeError("Please provide a valid age [age<=18]")

    def setAge(self, aAge):
        if not ((aAge <= 18)):
            return False
        self._age = aAge
        return True

    def setWeight(self, aWeight):
        self._weight = aWeight
        return True

    def getAge(self):
        return self._age

    def getWeight(self):
        return self._weight

    def delete(self):
        pass

    def __str__(self):
        return (super().__str__() + "["
                + "age:" + str(self.getAge()) + ","
                + "weight:" + str(self.getWeight())
                + "]")

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


class Student:
    def __init__(self, aAge, aWeight):
        self._age = aAge
        self._weight = aWeight
        if not (self.getAge() < 10 and (self.getAge() < 10)):
            raise RuntimeError("Please provide a valid age [age<10&&age<10]")

    def setAge(self, aAge):
        if not (aAge < 10 and (aAge < 10)):
            return False
        self._age = aAge
        return True

    def setWeight(self, aWeight):
        self._weight = aWeight
        return True

    def getAge(self):
        return self._age

    def getWeight(self):
        return self._weight

    def delete(self):
        pass

    def __str__(self):
        return (super().__str__() + "["
                + "age:" + str(self.getAge()) + ","
                + "weight:" + str(self.getWeight())
                + "]")