/*PLEASE DO NOT EDIT THIS CODE*/
/*This code was generated using the UMPLE 1.35.0.7523.c616a4dce modeling language!*/
import java.util.*;
import java.io.Serializable;
// line 5 "AssociationBothSidesSorted.ump"
public class Mentor implements java.io.Serializable
{
//------------------------
// MEMBER VARIABLES
//------------------------
//Mentor Attributes
private String name;
private transient Comparator<Student> studentsPriority;
//Mentor Associations
private List<Student> students;
//------------------------
// CONSTRUCTOR
//------------------------
public Mentor(String aName)
{
name = aName;
studentsPriority =
Comparator.comparing(Student::getId);
students = new ArrayList<Student>();
}
//------------------------
// INTERFACE
//------------------------
public boolean setName(String aName)
{
boolean wasSet = false;
name = aName;
wasSet = true;
return wasSet;
}
public boolean setStudentsPriority(Comparator<Student> aStudentsPriority)
{
boolean wasSet = false;
studentsPriority = aStudentsPriority;
wasSet = true;
return wasSet;
}
public String getName()
{
return name;
}
public Comparator<Student> getStudentsPriority()
{
return studentsPriority;
}
/* Code from template association_GetMany */
public Student getStudent(int index)
{
Student aStudent = students.get(index);
return aStudent;
}
public List<Student> getStudents()
{
List<Student> newStudents = Collections.unmodifiableList(students);
return newStudents;
}
public int numberOfStudents()
{
int number = students.size();
return number;
}
public boolean hasStudents()
{
boolean has = students.size() > 0;
return has;
}
public int indexOfStudent(Student aStudent)
{
int index = students.indexOf(aStudent);
return index;
}
/* Code from template association_MinimumNumberOfMethod */
public static int minimumNumberOfStudents()
{
return 0;
}
/* Code from template association_AddManyToManyMethod */
public boolean addStudent(Student aStudent)
{
boolean wasAdded = false;
if (students.contains(aStudent)) { return false; }
students.add(aStudent);
if (aStudent.indexOfMentor(this) != -1)
{
wasAdded = true;
}
else
{
wasAdded = aStudent.addMentor(this);
if (!wasAdded)
{
students.remove(aStudent);
}
}
if(wasAdded)
Collections.sort(students, studentsPriority);
return wasAdded;
}
/* Code from template association_RemoveMany */
public boolean removeStudent(Student aStudent)
{
boolean wasRemoved = false;
if (!students.contains(aStudent))
{
return wasRemoved;
}
int oldIndex = students.indexOf(aStudent);
students.remove(oldIndex);
if (aStudent.indexOfMentor(this) == -1)
{
wasRemoved = true;
}
else
{
wasRemoved = aStudent.removeMentor(this);
if (!wasRemoved)
{
students.add(oldIndex,aStudent);
}
}
return wasRemoved;
}
/* Code from template association_sorted_serializable_readObject */
private void readObject(java.io.ObjectInputStream in)
throws Exception
{
in.defaultReadObject();
studentsPriority =
Comparator.comparing(Student::getId);
}
public void delete()
{
ArrayList<Student> copyOfStudents = new ArrayList<Student>(students);
students.clear();
for(Student aStudent : copyOfStudents)
{
aStudent.removeMentor(this);
}
}
public String toString()
{
return super.toString() + "["+
"name" + ":" + getName()+ "]" + System.getProperties().getProperty("line.separator") +
" " + "studentsPriority" + "=" + (getStudentsPriority() != null ? !getStudentsPriority().equals(this) ? getStudentsPriority().toString().replaceAll(" "," ") : "this" : "null");
}
}
/*PLEASE DO NOT EDIT THIS CODE*/
/*This code was generated using the UMPLE 1.35.0.7523.c616a4dce modeling language!*/
import java.util.*;
import java.io.Serializable;
// line 1 "AssociationBothSidesSorted.ump"
public class Student implements java.io.Serializable
{
//------------------------
// MEMBER VARIABLES
//------------------------
//Student Attributes
private int id;
private transient Comparator<Mentor> mentorsPriority;
//Student Associations
private List<Mentor> mentors;
//------------------------
// CONSTRUCTOR
//------------------------
public Student(int aId)
{
id = aId;
mentorsPriority =
Comparator.comparing(Mentor::getName);
mentors = new ArrayList<Mentor>();
}
//------------------------
// INTERFACE
//------------------------
public boolean setId(int aId)
{
boolean wasSet = false;
id = aId;
wasSet = true;
return wasSet;
}
public boolean setMentorsPriority(Comparator<Mentor> aMentorsPriority)
{
boolean wasSet = false;
mentorsPriority = aMentorsPriority;
wasSet = true;
return wasSet;
}
public int getId()
{
return id;
}
public Comparator<Mentor> getMentorsPriority()
{
return mentorsPriority;
}
/* Code from template association_GetMany */
public Mentor getMentor(int index)
{
Mentor aMentor = mentors.get(index);
return aMentor;
}
public List<Mentor> getMentors()
{
List<Mentor> newMentors = Collections.unmodifiableList(mentors);
return newMentors;
}
public int numberOfMentors()
{
int number = mentors.size();
return number;
}
public boolean hasMentors()
{
boolean has = mentors.size() > 0;
return has;
}
public int indexOfMentor(Mentor aMentor)
{
int index = mentors.indexOf(aMentor);
return index;
}
/* Code from template association_MinimumNumberOfMethod */
public static int minimumNumberOfMentors()
{
return 0;
}
/* Code from template association_AddManyToManyMethod */
public boolean addMentor(Mentor aMentor)
{
boolean wasAdded = false;
if (mentors.contains(aMentor)) { return false; }
mentors.add(aMentor);
if (aMentor.indexOfStudent(this) != -1)
{
wasAdded = true;
}
else
{
wasAdded = aMentor.addStudent(this);
if (!wasAdded)
{
mentors.remove(aMentor);
}
}
if(wasAdded)
Collections.sort(mentors, mentorsPriority);
return wasAdded;
}
/* Code from template association_RemoveMany */
public boolean removeMentor(Mentor aMentor)
{
boolean wasRemoved = false;
if (!mentors.contains(aMentor))
{
return wasRemoved;
}
int oldIndex = mentors.indexOf(aMentor);
mentors.remove(oldIndex);
if (aMentor.indexOfStudent(this) == -1)
{
wasRemoved = true;
}
else
{
wasRemoved = aMentor.removeStudent(this);
if (!wasRemoved)
{
mentors.add(oldIndex,aMentor);
}
}
return wasRemoved;
}
/* Code from template association_sorted_serializable_readObject */
private void readObject(java.io.ObjectInputStream in)
throws Exception
{
in.defaultReadObject();
mentorsPriority =
Comparator.comparing(Mentor::getName);
}
public void delete()
{
ArrayList<Mentor> copyOfMentors = new ArrayList<Mentor>(mentors);
mentors.clear();
for(Mentor aMentor : copyOfMentors)
{
aMentor.removeStudent(this);
}
}
public String toString()
{
return super.toString() + "["+
"id" + ":" + getId()+ "]" + System.getProperties().getProperty("line.separator") +
" " + "mentorsPriority" + "=" + (getMentorsPriority() != null ? !getMentorsPriority().equals(this) ? getMentorsPriority().toString().replaceAll(" "," ") : "this" : "null");
}
}