/*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 "AssociationSortedWithNameSpace.ump"
public class Student implements java.io.Serializable
{
//------------------------
// MEMBER VARIABLES
//------------------------
//Student Attributes
private int id;
private transient Comparator<Mentor> ProfsPriority;
//Student Associations
private List<Mentor> Profs;
//------------------------
// CONSTRUCTOR
//------------------------
public Student(int aId)
{
id = aId;
ProfsPriority =
Comparator.comparing(Mentor::getName);
Profs = new ArrayList<Mentor>();
}
//------------------------
// INTERFACE
//------------------------
public boolean setId(int aId)
{
boolean wasSet = false;
id = aId;
wasSet = true;
return wasSet;
}
public boolean setProfsPriority(Comparator<Mentor> aProfsPriority)
{
boolean wasSet = false;
ProfsPriority = aProfsPriority;
wasSet = true;
return wasSet;
}
public int getId()
{
return id;
}
public Comparator<Mentor> getProfsPriority()
{
return ProfsPriority;
}
/* Code from template association_GetMany */
public Mentor getProf(int index)
{
Mentor aProf = Profs.get(index);
return aProf;
}
public List<Mentor> getProfs()
{
List<Mentor> newProfs = Collections.unmodifiableList(Profs);
return newProfs;
}
public int numberOfProfs()
{
int number = Profs.size();
return number;
}
public boolean hasProfs()
{
boolean has = Profs.size() > 0;
return has;
}
public int indexOfProf(Mentor aProf)
{
int index = Profs.indexOf(aProf);
return index;
}
/* Code from template association_MinimumNumberOfMethod */
public static int minimumNumberOfProfs()
{
return 0;
}
/* Code from template association_AddManyToManyMethod */
public boolean addProf(Mentor aProf)
{
boolean wasAdded = false;
if (Profs.contains(aProf)) { return false; }
Profs.add(aProf);
if (aProf.indexOfMyStudent(this) != -1)
{
wasAdded = true;
}
else
{
wasAdded = aProf.addMyStudent(this);
if (!wasAdded)
{
Profs.remove(aProf);
}
}
if(wasAdded)
Collections.sort(Profs, ProfsPriority);
return wasAdded;
}
/* Code from template association_RemoveMany */
public boolean removeProf(Mentor aProf)
{
boolean wasRemoved = false;
if (!Profs.contains(aProf))
{
return wasRemoved;
}
int oldIndex = Profs.indexOf(aProf);
Profs.remove(oldIndex);
if (aProf.indexOfMyStudent(this) == -1)
{
wasRemoved = true;
}
else
{
wasRemoved = aProf.removeMyStudent(this);
if (!wasRemoved)
{
Profs.add(oldIndex,aProf);
}
}
return wasRemoved;
}
/* Code from template association_sorted_serializable_readObject */
private void readObject(java.io.ObjectInputStream in)
throws Exception
{
in.defaultReadObject();
ProfsPriority =
Comparator.comparing(Mentor::getName);
}
public void delete()
{
ArrayList<Mentor> copyOfProfs = new ArrayList<Mentor>(Profs);
Profs.clear();
for(Mentor aProf : copyOfProfs)
{
aProf.removeMyStudent(this);
}
}
public String toString()
{
return super.toString() + "["+
"id" + ":" + getId()+ "]" + System.getProperties().getProperty("line.separator") +
" " + "ProfsPriority" + "=" + (getProfsPriority() != null ? !getProfsPriority().equals(this) ? getProfsPriority().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 5 "AssociationSortedWithNameSpace.ump"
public class Mentor implements java.io.Serializable
{
//------------------------
// MEMBER VARIABLES
//------------------------
//Mentor Attributes
private String name;
private transient Comparator<Student> myStudentsPriority;
//Mentor Associations
private List<Student> myStudents;
//------------------------
// CONSTRUCTOR
//------------------------
public Mentor(String aName)
{
name = aName;
myStudentsPriority =
Comparator.comparing(Student::getId);
myStudents = new ArrayList<Student>();
}
//------------------------
// INTERFACE
//------------------------
public boolean setName(String aName)
{
boolean wasSet = false;
name = aName;
wasSet = true;
return wasSet;
}
public boolean setMyStudentsPriority(Comparator<Student> aMyStudentsPriority)
{
boolean wasSet = false;
myStudentsPriority = aMyStudentsPriority;
wasSet = true;
return wasSet;
}
public String getName()
{
return name;
}
public Comparator<Student> getMyStudentsPriority()
{
return myStudentsPriority;
}
/* Code from template association_GetMany */
public Student getMyStudent(int index)
{
Student aMyStudent = myStudents.get(index);
return aMyStudent;
}
public List<Student> getMyStudents()
{
List<Student> newMyStudents = Collections.unmodifiableList(myStudents);
return newMyStudents;
}
public int numberOfMyStudents()
{
int number = myStudents.size();
return number;
}
public boolean hasMyStudents()
{
boolean has = myStudents.size() > 0;
return has;
}
public int indexOfMyStudent(Student aMyStudent)
{
int index = myStudents.indexOf(aMyStudent);
return index;
}
/* Code from template association_MinimumNumberOfMethod */
public static int minimumNumberOfMyStudents()
{
return 0;
}
/* Code from template association_AddManyToManyMethod */
public boolean addMyStudent(Student aMyStudent)
{
boolean wasAdded = false;
if (myStudents.contains(aMyStudent)) { return false; }
myStudents.add(aMyStudent);
if (aMyStudent.indexOfProf(this) != -1)
{
wasAdded = true;
}
else
{
wasAdded = aMyStudent.addProf(this);
if (!wasAdded)
{
myStudents.remove(aMyStudent);
}
}
if(wasAdded)
Collections.sort(myStudents, myStudentsPriority);
return wasAdded;
}
/* Code from template association_RemoveMany */
public boolean removeMyStudent(Student aMyStudent)
{
boolean wasRemoved = false;
if (!myStudents.contains(aMyStudent))
{
return wasRemoved;
}
int oldIndex = myStudents.indexOf(aMyStudent);
myStudents.remove(oldIndex);
if (aMyStudent.indexOfProf(this) == -1)
{
wasRemoved = true;
}
else
{
wasRemoved = aMyStudent.removeProf(this);
if (!wasRemoved)
{
myStudents.add(oldIndex,aMyStudent);
}
}
return wasRemoved;
}
/* Code from template association_sorted_serializable_readObject */
private void readObject(java.io.ObjectInputStream in)
throws Exception
{
in.defaultReadObject();
myStudentsPriority =
Comparator.comparing(Student::getId);
}
public void delete()
{
ArrayList<Student> copyOfMyStudents = new ArrayList<Student>(myStudents);
myStudents.clear();
for(Student aMyStudent : copyOfMyStudents)
{
aMyStudent.removeProf(this);
}
}
public String toString()
{
return super.toString() + "["+
"name" + ":" + getName()+ "]" + System.getProperties().getProperty("line.separator") +
" " + "myStudentsPriority" + "=" + (getMyStudentsPriority() != null ? !getMyStudentsPriority().equals(this) ? getMyStudentsPriority().toString().replaceAll(" "," ") : "this" : "null");
}
}