Can you explain what it means to have workgroups connected? What is the code that does that?
Here is the entire code of the class Workgroup. I used the naming in Dutch, as it is a Dutch assignment, and added English Notes where I get stuck. I hope this is clear, if not let me know!
Thanks!
public class Werkgroep
{
/**
* Variables of the class Werkgroep.
*/
private String naam;
private double gemiddeldCijfer;
private Student werkverdeler;
private Student theoreticus;
private Student practicus;
private Student schrijver;
private boolean isGekoppeld; //isGekoppeld means isConnected. If an object in this class is created, it is on False - Not connected.
private Werkgroep gekoppeldeWerkgroep; //gekoppeldeWerkgroep means connectedWorkgroup. This is set on NULL when creating an object. In the method 'public void werkgroepKoppelen (Werkgroep werkgroep)' I connect 2 objects to eachother. However, only one object changes from NULL to a reference. (If that makes sense).
/**
* De constructor van de klasse Werkgroep.
*
* @param naam De naam van de werkgroep.
* @param double Het gemiddelde cijfer wat nodig is om toegelaten te worden aan de werkgroep.
*/
public Werkgroep(String naam, double gemiddeldCijfer)
{
this.naam = naam;
this.gemiddeldCijfer = gemiddeldCijfer;
isGekoppeld = false;
werkverdeler = null;
theoreticus = null;
practicus = null;
schrijver = null;
gekoppeldeWerkgroep = null;
}
public void voegStudentToe (Student student) //This is where you helped me with in my last post. Thanks for that still :)
{
switch(student.getRol())
{
case "Werkverdeler":
if (student.getGemiddeldCijfer() >= gemiddeldCijfer && student.eerdereDeelname() == false && werkverdeler == null)
{
werkverdeler = student;
student.eerdereDeelname = true;
}
break;
case "Theoreticus":
if (student.getGemiddeldCijfer() >= gemiddeldCijfer && student.eerdereDeelname() == false && theoreticus == null)
{
theoreticus = student;
student.eerdereDeelname = true;
}
break;
case "Practicus":
if (student.getGemiddeldCijfer() >= gemiddeldCijfer && student.eerdereDeelname() == false && practicus == null)
{
practicus = student;
student.eerdereDeelname = true;
}
break;
case "Schrijver":
if (student.getGemiddeldCijfer() >= gemiddeldCijfer && student.eerdereDeelname() == false && schrijver == null)
{
schrijver = student;
student.eerdereDeelname = true;
}
break;
}
}
public void verwijderStudent (Student student)
{
if(student.getRol().equals("Werkverdeler"))
{
werkverdeler = null;
}
else if (student.getRol().equals("Theoreticus"))
{
theoreticus = null;
}
else if (student.getRol().equals("Practicus"))
{
practicus = null;
}
else if (student.getRol().equals("Schrijver"))
{
schrijver = null;
}
}
public void werkgroepKoppelen (Werkgroep werkgroep) //this is the code where the objects of the class Werkgroep are connected. In an example: if I create 2 objects, naming Workgroup1 and Workgroup2. If I put in the paramater here the Workgroup2, then only Workgroup1 gets that the variable gekoppeldeWerkgroep is not NULL anymore. And I want that Workgroup 2 is not NULL, but has a connection to Workgroup1. How would that translate in code?
{
if (gekoppeldeWerkgroep == null && isGekoppeld == false)
{
gekoppeldeWerkgroep = werkgroep;
isGekoppeld = true;
werkgroep.isGekoppeld = true;
}
}
/**
* Methode - een werkgroep ontkoppelen van een andere werkgroep.
* @param werkgroep De werkgroep die ontkoppeld wordt.
*/
public void werkgroepOntkoppelen (Werkgroep werkgroep)
{
gekoppeldeWerkgroep = null;
isGekoppeld = false;
werkgroep.isGekoppeld = false;
}
/**
* Accessormethode
*
* Geeft terug of een werkgroep is gekoppeld.
* @return isGekoppeld true = werkgroep is gekoppeld, false = werkgroep is niet gekoppeld.
*/
public boolean getIsGekoppeld()
{
return isGekoppeld;
}
/**
* Methode - Print werkgroep informatie.
*/
public void printWerkgroep()
{
String info = "De naam van de werkgroep is: " + naam + "\n";
info += "De werkgroep " + naam + " kent de volgende deelnemers:" + "\n";
if (werkverdeler != null)
{
info += (werkverdeler.studentRol()) + "\n";
}
if (theoreticus != null)
{
info += (theoreticus.studentRol()) + "\n";
}
if (practicus != null)
{
info += (practicus.studentRol()) + "\n";
}
if (schrijver != null)
{
info += (schrijver.studentRol()) + "\n";
}
if (isGekoppeld != false)
{
info += "De werkgroep " + naam + " is samengevoeg met de werkgroep " + gekoppeldeWerkgroep.naam + ".\n";
info += "De werkgroep " + gekoppeldeWerkgroep.naam + " kent de volgende deelnemers: " + "\n"; //if I try to run this in the object Workgroup2, I get the error java.lang.NullPointerException. Because in the object of Workgroup2, the variable gekoppeldeWerkgroep is still on NULL.
if (gekoppeldeWerkgroep.werkverdeler != null)
{
info += (gekoppeldeWerkgroep.werkverdeler.studentRol()) + "\n";
}
if (gekoppeldeWerkgroep.theoreticus != null)
{
info += (gekoppeldeWerkgroep.theoreticus.studentRol()) + "\n";
}
if (gekoppeldeWerkgroep.practicus != null)
{
info += (gekoppeldeWerkgroep.practicus.studentRol()) + "\n";
}
if (gekoppeldeWerkgroep.schrijver != null)
{
info += (gekoppeldeWerkgroep.schrijver.studentRol()) + "\n";
}
}
else
{
info += "De werkgroep " + naam + " is niet gekoppeld aan een andere werkgroep";
}
System.out.println(info);
}
}
--- Update ---
Hi Norm,
Thanks, I figured it out! It should be:
werkgroep.gekoppeldeWerkgroep = this;