/*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"); } }