#PLEASE DO NOT EDIT THIS CODE
#This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language!
# line 3 "../indexOf_NoKey.ump"
class Student():
#------------------------
# MEMBER VARIABLES
#------------------------
#Student Associations
#------------------------
# CONSTRUCTOR
#------------------------
def __init__(self):
self._mentors = None
self._mentors = []
#------------------------
# INTERFACE
#------------------------
# Code from template association_GetMany
def getMentor(self, index):
aMentor = self._mentors[index]
return aMentor
def getMentors(self):
newMentors = tuple(self._mentors)
return newMentors
def numberOfMentors(self):
number = len(self._mentors)
return number
def hasMentors(self):
has = len(self._mentors) > 0
return has
def indexOfMentor(self, aMentor):
index = (-1 if not aMentor in self._mentors else self._mentors.index(aMentor))
return index
# Code from template association_MinimumNumberOfMethod
@staticmethod
def minimumNumberOfMentors():
return 0
# Code from template association_AddManyToManyMethod
def addMentor(self, aMentor):
wasAdded = False
if (aMentor) in self._mentors :
return False
self._mentors.append(aMentor)
if aMentor.indexOfStudent(self) != -1 :
wasAdded = True
else :
wasAdded = aMentor.addStudent(self)
if not wasAdded :
self._mentors.remove(aMentor)
return wasAdded
# Code from template association_RemoveMany
def removeMentor(self, aMentor):
wasRemoved = False
if not (aMentor) in self._mentors :
return wasRemoved
oldIndex = (-1 if not aMentor in self._mentors else self._mentors.index(aMentor))
self._mentors.remove(oldIndex)
if aMentor.indexOfStudent(self) == -1 :
wasRemoved = True
else :
wasRemoved = aMentor.removeStudent(self)
if not wasRemoved :
self._mentors.insert(oldIndex, aMentor)
return wasRemoved
# Code from template association_AddIndexControlFunctions
def addMentorAt(self, aMentor, index):
wasAdded = False
if self.addMentor(aMentor) :
if index < 0 :
index = 0
if index > self.numberOfMentors() :
index = self.numberOfMentors() - 1
self._mentors.remove(aMentor)
self._mentors.insert(index, aMentor)
wasAdded = True
return wasAdded
def addOrMoveMentorAt(self, aMentor, index):
wasAdded = False
if (aMentor) in self._mentors :
if index < 0 :
index = 0
if index > self.numberOfMentors() :
index = self.numberOfMentors() - 1
self._mentors.remove(aMentor)
self._mentors.insert(index, aMentor)
wasAdded = True
else :
wasAdded = self.addMentorAt(aMentor, index)
return wasAdded
def delete(self):
copyOfMentors = self._mentors.copy()
self._mentors.clear()
for aMentor in copyOfMentors:
aMentor.removeStudent(self)
#PLEASE DO NOT EDIT THIS CODE
#This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language!
# line 3 "../indexOf_Key.ump"
class Student():
#------------------------
# MEMBER VARIABLES
#------------------------
#Student Associations
#------------------------
# CONSTRUCTOR
#------------------------
def __init__(self):
self._mentors = None
self._mentors = []
#------------------------
# INTERFACE
#------------------------
# Code from template association_GetMany
def getMentor(self, index):
aMentor = self._mentors[index]
return aMentor
def getMentors(self):
newMentors = tuple(self._mentors)
return newMentors
def numberOfMentors(self):
number = len(self._mentors)
return number
def hasMentors(self):
has = len(self._mentors) > 0
return has
def indexOfMentor(self, aMentor):
index = (-1 if not aMentor in self._mentors else self._mentors.index(aMentor))
return index
# Code from template association_MinimumNumberOfMethod
@staticmethod
def minimumNumberOfMentors():
return 0
# Code from template association_AddManyToManyMethod
def addMentor(self, aMentor):
wasAdded = False
if (aMentor) in self._mentors :
return False
self._mentors.append(aMentor)
if aMentor.indexOfStudent(self) != -1 :
wasAdded = True
else :
wasAdded = aMentor.addStudent(self)
if not wasAdded :
self._mentors.remove(aMentor)
return wasAdded
# Code from template association_RemoveMany
def removeMentor(self, aMentor):
wasRemoved = False
if not (aMentor) in self._mentors :
return wasRemoved
oldIndex = (-1 if not aMentor in self._mentors else self._mentors.index(aMentor))
self._mentors.remove(oldIndex)
if aMentor.indexOfStudent(self) == -1 :
wasRemoved = True
else :
wasRemoved = aMentor.removeStudent(self)
if not wasRemoved :
self._mentors.insert(oldIndex, aMentor)
return wasRemoved
# Code from template association_AddIndexControlFunctions
def addMentorAt(self, aMentor, index):
wasAdded = False
if self.addMentor(aMentor) :
if index < 0 :
index = 0
if index > self.numberOfMentors() :
index = self.numberOfMentors() - 1
self._mentors.remove(aMentor)
self._mentors.insert(index, aMentor)
wasAdded = True
return wasAdded
def addOrMoveMentorAt(self, aMentor, index):
wasAdded = False
if (aMentor) in self._mentors :
if index < 0 :
index = 0
if index > self.numberOfMentors() :
index = self.numberOfMentors() - 1
self._mentors.remove(aMentor)
self._mentors.insert(index, aMentor)
wasAdded = True
else :
wasAdded = self.addMentorAt(aMentor, index)
return wasAdded
def delete(self):
copyOfMentors = self._mentors.copy()
self._mentors.clear()
for aMentor in copyOfMentors:
aMentor.removeStudent(self)
#PLEASE DO NOT EDIT THIS CODE
#This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language!
# line 3 "../EqualsTest.ump"
class Student():
#------------------------
# MEMBER VARIABLES
#------------------------
#Student Attributes
#Helper Variables
#------------------------
# CONSTRUCTOR
#------------------------
def __init__(self, aIntId, aDoubleId, aBooleanId, aStringId):
self._canSetStringListIds = None
self._canSetStringId = None
self._canSetBooleanId = None
self._canSetDoubleId = None
self._canSetIntId = None
self._cachedHashCode = None
self._stringListIds = None
self._stringId = None
self._booleanId = None
self._doubleId = None
self._intId = None
self._cachedHashCode = -1
self._canSetIntId = True
self._canSetDoubleId = True
self._canSetBooleanId = True
self._canSetStringId = True
self._canSetStringListIds = True
self._intId = aIntId
self._doubleId = aDoubleId
self._booleanId = aBooleanId
self._stringId = aStringId
self._stringListIds = []
#------------------------
# INTERFACE
#------------------------
def setIntId(self, aIntId):
wasSet = False
if not self._canSetIntId :
return False
self._intId = aIntId
wasSet = True
return wasSet
def setDoubleId(self, aDoubleId):
wasSet = False
if not self._canSetDoubleId :
return False
self._doubleId = aDoubleId
wasSet = True
return wasSet
def setBooleanId(self, aBooleanId):
wasSet = False
if not self._canSetBooleanId :
return False
self._booleanId = aBooleanId
wasSet = True
return wasSet
def setStringId(self, aStringId):
wasSet = False
if not self._canSetStringId :
return False
self._stringId = aStringId
wasSet = True
return wasSet
# Code from template attribute_SetMany
def addStringListId(self, aStringListId):
wasAdded = False
if not self._canSetStringListIds :
return False
wasAdded = self._stringListIds.append(aStringListId)
return wasAdded
def removeStringListId(self, aStringListId):
wasRemoved = False
if not self._canSetStringListIds :
return False
wasRemoved = self._stringListIds.remove(aStringListId)
return wasRemoved
def getIntId(self):
return self._intId
def getDoubleId(self):
return self._doubleId
def getBooleanId(self):
return self._booleanId
def getStringId(self):
return self._stringId
# Code from template attribute_GetMany
def getStringListId(self, index):
aStringListId = self._stringListIds[index]
return aStringListId
def getStringListIds(self):
newStringListIds = self._stringListIds.copy()
return newStringListIds
def numberOfStringListIds(self):
number = len(self._stringListIds)
return number
def hasStringListIds(self):
has = len(self._stringListIds) > 0
return has
def indexOfStringListId(self, aStringListId):
index = (-1 if not aStringListId in self._stringListIds else self._stringListIds.index(aStringListId))
return index
# Code from template attribute_IsBoolean
def isBooleanId(self):
return self._booleanId
def equals(self, obj):
if obj is None :
return False
if not type(self) is type(obj) :
return False
compareTo = obj
if self.getIntId() != compareTo.getIntId() :
return False
if self.getDoubleId() != compareTo.getDoubleId() :
return False
if self.getBooleanId() != compareTo.getBooleanId() :
return False
if self.getStringId() is None and not (compareTo.getStringId() is None) :
return False
elif not (self.getStringId() is None) and not self.getStringId() == compareTo.getStringId() :
return False
if self.getStringListIds().length != compareTo.getStringListIds().length :
return False
i = 0
while i < self.getStringListIds().length :
me = self.getStringListIds()
them = compareTo.getStringListIds()[i]
if me is None and not (them is None) :
return False
elif not (me is None) and not me == them :
return False
i += 1
return True
def __hash__(self):
if self._cachedHashCode != -1 :
return self._cachedHashCode
self._cachedHashCode = 17
self._cachedHashCode = self._cachedHashCode * 23 + self.getIntId()
self._cachedHashCode = self._cachedHashCode * 23 + (float(self.getDoubleId())).__hash__()
self._cachedHashCode = self._cachedHashCode * 23 + ((1) if self.getBooleanId() else 0)
if not (self.getStringId() is None) :
self._cachedHashCode = self._cachedHashCode * 23 + self.getStringId().__hash__()
else :
self._cachedHashCode = self._cachedHashCode * 23
if not (self.getStringListIds() is None) :
self._cachedHashCode = self._cachedHashCode * 23 + self.getStringListIds().__hash__()
else :
self._cachedHashCode = self._cachedHashCode * 23
self._canSetIntId = False
self._canSetDoubleId = False
self._canSetBooleanId = False
self._canSetStringId = False
self._canSetStringListIds = False
return self._cachedHashCode
def delete(self):
pass
def __str__(self):
return str(super().__str__()) + "[" + "stringId" + ":" + str(self.getStringId()) + "," + "booleanId" + ":" + str(self.getBooleanId()) + "," + "doubleId" + ":" + str(self.getDoubleId()) + "," + "intId" + ":" + str(self.getIntId()) + "]"
#PLEASE DO NOT EDIT THIS CODE
#This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language!
# line 3 "../EqualsTest_AlreadyImmutable.ump"
class Student():
#------------------------
# MEMBER VARIABLES
#------------------------
#Student Attributes
#Helper Variables
#------------------------
# CONSTRUCTOR
#------------------------
def __init__(self, aDoubleId, aBooleanId, aStringId):
self._canSetIntId = None
self._cachedHashCode = None
self._stringId = None
self._booleanId = None
self._doubleId = None
self._intId = None
self._cachedHashCode = -1
self._canSetIntId = True
self._doubleId = aDoubleId
self._booleanId = aBooleanId
self._stringId = aStringId
#------------------------
# INTERFACE
#------------------------
# Code from template attribute_SetImmutable
def setIntId(self, aIntId):
wasSet = False
if not self._canSetIntId :
return False
self._canSetIntId = False
self._intId = aIntId
wasSet = True
return wasSet
def getIntId(self):
return self._intId
def getDoubleId(self):
return self._doubleId
def getBooleanId(self):
return self._booleanId
def getStringId(self):
return self._stringId
# Code from template attribute_IsBoolean
def isBooleanId(self):
return self._booleanId
def equals(self, obj):
if obj is None :
return False
if not type(self) is type(obj) :
return False
compareTo = obj
if self.getIntId() != compareTo.getIntId() :
return False
if self.getDoubleId() != compareTo.getDoubleId() :
return False
if self.getBooleanId() != compareTo.getBooleanId() :
return False
if self.getStringId() is None and not (compareTo.getStringId() is None) :
return False
elif not (self.getStringId() is None) and not self.getStringId() == compareTo.getStringId() :
return False
return True
def __hash__(self):
if self._cachedHashCode != -1 :
return self._cachedHashCode
self._cachedHashCode = 17
self._cachedHashCode = self._cachedHashCode * 23 + self.getIntId()
self._cachedHashCode = self._cachedHashCode * 23 + (float(self.getDoubleId())).__hash__()
self._cachedHashCode = self._cachedHashCode * 23 + ((1) if self.getBooleanId() else 0)
if not (self.getStringId() is None) :
self._cachedHashCode = self._cachedHashCode * 23 + self.getStringId().__hash__()
else :
self._cachedHashCode = self._cachedHashCode * 23
self._canSetIntId = False
return self._cachedHashCode
def delete(self):
pass
def __str__(self):
return str(super().__str__()) + "[" + "stringId" + ":" + str(self.getStringId()) + "," + "booleanId" + ":" + str(self.getBooleanId()) + "," + "doubleId" + ":" + str(self.getDoubleId()) + "," + "intId" + ":" + str(self.getIntId()) + "]"
#PLEASE DO NOT EDIT THIS CODE
#This code was generated using the UMPLE 1.33.0.6934.a386b0a58 modeling language!
# line 15 "../EqualsTest.ump"
class Mentor():
#------------------------
# MEMBER VARIABLES
#------------------------
#Mentor Associations
#Helper Variables
#------------------------
# CONSTRUCTOR
#------------------------
def __init__(self):
self._canSetSecondaries = None
self._canSetMain = None
self._cachedHashCode = None
self._secondaries = None
self._main = None
self._cachedHashCode = -1
self._canSetMain = True
self._canSetSecondaries = True
self._secondaries = []
#------------------------
# INTERFACE
#------------------------
# Code from template association_GetOne
def getMain(self):
return self._main
def hasMain(self):
has = not (self._main is None)
return has
# Code from template association_GetMany
def getSecondary(self, index):
aSecondary = self._secondaries[index]
return aSecondary
def getSecondaries(self):
newSecondaries = tuple(self._secondaries)
return newSecondaries
def numberOfSecondaries(self):
number = len(self._secondaries)
return number
def hasSecondaries(self):
has = len(self._secondaries) > 0
return has
def indexOfSecondary(self, aSecondary):
index = (-1 if not aSecondary in self._secondaries else self._secondaries.index(aSecondary))
return index
# Code from template association_SetOptionalOneToOptionalOne
def setMain(self, aNewMain):
wasSet = False
if not self._canSetMain :
return False
if aNewMain is None :
existingMain = self._main
self._main = None
if not (existingMain is None) and not (existingMain.getMentorMain() is None) :
existingMain.setMentorMain(None)
wasSet = True
return wasSet
currentMain = self.getMain()
if not (currentMain is None) and not currentMain == aNewMain :
currentMain.setMentorMain(None)
self._main = aNewMain
existingMentorMain = aNewMain.getMentorMain()
if not self == existingMentorMain :
aNewMain.setMentorMain(self)
wasSet = True
return wasSet
# Code from template association_MinimumNumberOfMethod
@staticmethod
def minimumNumberOfSecondaries():
return 0
# Code from template association_AddManyToOptionalOne
def addSecondary(self, aSecondary):
wasAdded = False
if not self._canSetSecondaries :
return False
if (aSecondary) in self._secondaries :
return False
existingMentorSecondary = aSecondary.getMentorSecondary()
if existingMentorSecondary is None :
aSecondary.setMentorSecondary(self)
elif not self == existingMentorSecondary :
existingMentorSecondary.removeSecondary(aSecondary)
self.addSecondary(aSecondary)
else :
self._secondaries.append(aSecondary)
wasAdded = True
return wasAdded
def removeSecondary(self, aSecondary):
wasRemoved = False
if not self._canSetSecondaries :
return False
if (aSecondary) in self._secondaries :
self._secondaries.remove(aSecondary)
aSecondary.setMentorSecondary(None)
wasRemoved = True
return wasRemoved
# Code from template association_AddIndexControlFunctions
def addSecondaryAt(self, aSecondary, index):
wasAdded = False
if self.addSecondary(aSecondary) :
if index < 0 :
index = 0
if index > self.numberOfSecondaries() :
index = self.numberOfSecondaries() - 1
self._secondaries.remove(aSecondary)
self._secondaries.insert(index, aSecondary)
wasAdded = True
return wasAdded
def addOrMoveSecondaryAt(self, aSecondary, index):
wasAdded = False
if (aSecondary) in self._secondaries :
if index < 0 :
index = 0
if index > self.numberOfSecondaries() :
index = self.numberOfSecondaries() - 1
self._secondaries.remove(aSecondary)
self._secondaries.insert(index, aSecondary)
wasAdded = True
else :
wasAdded = self.addSecondaryAt(aSecondary, index)
return wasAdded
def equals(self, obj):
if obj is None :
return False
if not type(self) is type(obj) :
return False
compareTo = obj
if self.getMain() is None and not (compareTo.getMain() is None) :
return False
elif not (self.getMain() is None) and not self.getMain() == compareTo.getMain() :
return False
if self.getSecondaries().size() != compareTo.getSecondaries().size() :
return False
i = 0
while i < self.getSecondaries().size() :
me = self.getSecondaries().get(i)
them = compareTo.getSecondaries().get(i)
if me is None and not (them is None) :
return False
elif not (me is None) and not me == them :
return False
i += 1
return True
def __hash__(self):
if self._cachedHashCode != -1 :
return self._cachedHashCode
self._cachedHashCode = 17
if not (self.getMain() is None) :
self._cachedHashCode = self._cachedHashCode * 23 + self.getMain().__hash__()
else :
self._cachedHashCode = self._cachedHashCode * 23
if not (self.getSecondaries() is None) :
self._cachedHashCode = self._cachedHashCode * 23 + self.getSecondaries().__hash__()
else :
self._cachedHashCode = self._cachedHashCode * 23
self._canSetMain = False
self._canSetSecondaries = False
return self._cachedHashCode
def delete(self):
if not (self._main is None) :
self._main.setMentorMain(None)
while not self._secondaries.isEmpty() :
self._secondaries[0].setMentorSecondary(None)