#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, aNumber, aMentor):
self._number = aNumber
self._mentor = None
if not self.setMentor(aMentor):
raise RuntimeError("Unable to create student due to mentor. See https://manual.umple.org?RE002ViolationofAssociationMultiplicity.html")
def setNumber(self, aNumber):
self._number = aNumber
return True
def getNumber(self):
return self._number
def getMentor(self):
return self._mentor
def setMentor(self, aNewMentor):
if aNewMentor is None:
return False
existingStudent = aNewMentor.getStudent()
if existingStudent is not None and existingStudent is not self:
return False
anOldMentor = self._mentor
self._mentor = aNewMentor
self._mentor.setStudent(self)
if anOldMentor is not None:
anOldMentor.setStudent(None)
return True
def delete(self):
existingMentor = self._mentor
self._mentor = None
if existingMentor is not None:
existingMentor.setStudent(None)
def __str__(self):
return (super().__str__() + "["
+ "number:" + str(self.getNumber())
+ "]"
+ "\n mentor = " + ("null" if self.getMentor() is None else format(id(self.getMentor()), "x")))
#PLEASE DO NOT EDIT THIS CODE
#This code was generated using the UMPLE 1.38.0.8942.247e17422 modeling language!
class Mentor:
theInstance = None
def __init__(self):
if __class__.theInstance is not self:
raise RuntimeError("Mentor is a singleton, so use Mentor.getInstance()")
self._name = None
self._student = None
@staticmethod
def getInstance():
if __class__.theInstance is None:
__class__.theInstance = __class__.__new__(__class__)
try:
__class__.theInstance.__init__()
except BaseException:
__class__.theInstance = None
raise
return __class__.theInstance
def setName(self, aName):
self._name = aName
return True
def getName(self):
return self._name
def getStudent(self):
return self._student
def hasStudent(self):
return self._student is not None
def setStudent(self, aNewStudent):
if self._student is not None and self._student is not aNewStudent and self._student.getMentor() is self:
return False
self._student = aNewStudent
anOldMentor = aNewStudent.getMentor() if aNewStudent is not None else None
if anOldMentor is not self:
if anOldMentor is not None:
anOldMentor._student = None
if self._student is not None:
self._student.setMentor(self)
return True
def delete(self):
existingStudent = self._student
self._student = None
if existingStudent is not None:
existingStudent.delete()
def __str__(self):
return (super().__str__() + "["
+ "name:" + str(self.getName())
+ "]"
+ "\n student = " + ("null" if self.getStudent() is None else format(id(self.getStudent()), "x")))