# PLEASE DO NOT EDIT THIS CODE
# This code was generated using the UMPLE 1.35.0.7523.c616a4dce modeling language!
# NOTE: Ruby generator is experimental and is missing some features available in
# in other Umple generated languages like Java or PHP
module Example
class Student
#------------------------
# MEMBER VARIABLES
#------------------------
#Student Attributes - for documentation purposes
#attr_reader :number
#Student Associations - for documentation purposes
#attr_reader :mentor
#------------------------
# CONSTRUCTOR
#------------------------
def initialize(a_number, a_mentor)
@initialized = false
@deleted = false
@number = a_number
@mentor = nil
did_add_mentor = set_mentor(a_mentor)
raise "Unable to create student due to @mentor. See https://manual.umple.org?RE002ViolationofAssociationMultiplicity.html" unless did_add_mentor
@initialized = true
end
#------------------------
# INTERFACE
#------------------------
def set_number(a_number)
was_set = false
@number = a_number
was_set = true
was_set
end
def get_number
@number
end
def get_mentor
@mentor
end
def set_mentor(a_new_mentor)
was_set = false
if a_new_mentor.nil?
#Unable to set_mentor to nil, as student must always be associated to a @mentor
return was_set
end
existing_student = a_new_mentor.get_student
if !existing_student.nil? and !self.eql?(existing_student)
#Unable to set_mentor, the current @mentor already has a student, which would be orphaned if it were re-assigned
return was_set
end
an_old_mentor = @mentor
@mentor = a_new_mentor
@mentor.set_student(self)
unless an_old_mentor.nil?
an_old_mentor.set_student(nil)
end
was_set = true
was_set
end
def delete
@deleted = true
existing_mentor = @mentor
@mentor = nil
unless existing_mentor.nil?
existing_mentor.set_student(nil)
end
end
end
end
# PLEASE DO NOT EDIT THIS CODE
# This code was generated using the UMPLE 1.35.0.7523.c616a4dce modeling language!
# NOTE: Ruby generator is experimental and is missing some features available in
# in other Umple generated languages like Java or PHP
module Example
require 'singleton'
class Mentor
include Singleton
#------------------------
# MEMBER VARIABLES
#------------------------
#Mentor Attributes - for documentation purposes
#attr_reader :name
#Mentor Associations - for documentation purposes
#attr_reader :student
#------------------------
# INTERFACE
#------------------------
def set_name(a_name)
was_set = false
@name = a_name
was_set = true
was_set
end
def get_name
@name
end
def get_student
@student
end
def has_student
has = !@student.nil?
has
end
def set_student(a_new_student)
was_set = false
if !@student.nil? and !@student.eql?(a_new_student) and self.eql?(@student.get_mentor)
#Unable to set_student, as existing @student would become an orphan
return was_set
end
@student = a_new_student
an_old_mentor = !a_new_student.nil? ? a_new_student.get_mentor : nil
unless self.eql?(an_old_mentor)
unless an_old_mentor.nil?
an_old_mentor.instance_variable_set("@student",nil)
end
unless @student.nil?
@student.set_mentor(self)
end
end
was_set = true
was_set
end
def delete
@deleted = true
existing_student = @student
@student = nil
unless existing_student.nil?
existing_student.delete
end
end
end
end