diff options
Diffstat (limited to 'src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java')
| -rw-r--r-- | src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java | 115 |
1 files changed, 105 insertions, 10 deletions
diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java index e52e2d8..bcaba6f 100644 --- a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java @@ -30,7 +30,7 @@ public class Projekt private ArrayList<Student> student = new ArrayList<Student>(); - private Ansprechpartner ansprechpartner; + private ObjectProperty<Ansprechpartner> ansprechpartner = new SimpleObjectProperty<>(); private ObjectProperty<StatusTypes> status = new SimpleObjectProperty<>( StatusTypes.IN_BEARBEITUNG); @@ -112,26 +112,32 @@ public class Projekt "Das Projekt sollte irgendwo gemacht werden."); } - if (student1 != null) + if (student1 != null && student1.getProjekt() == null) { - student.add(student1); + addStudent(student1); student1.setProjekt(this); } - if (student2 != null) + if (student2 != null && student2.getProjekt() == null) { - student.add(student2); + addStudent(student2); student2.setProjekt(this); } - if (student3 != null) + if (student3 != null && student3.getProjekt() == null) { - student.add(student3); + addStudent(student3); student3.setProjekt(this); } - this.ansprechpartner = ansprechpartner; - this.ansprechpartner.addProjekt(this); + if (student.size() < 1) + { + throw new IllegalArgumentException( + "Alle Studenten haben bereits Projekte."); + } + + this.ansprechpartner.set(ansprechpartner); + this.ansprechpartner.get().addProjekt(this); this.projektthema.set(projektthema); } @@ -278,6 +284,58 @@ public class Projekt } /** + * Füge einen Studenten hinzu. + * + * @param student + */ + public void addStudent(Student student) + { + if (student == null) + { + throw new IllegalArgumentException( + "Es muss ein Student zum Hinzufügen gegeben sein."); + } + + if (!this.student.contains(student)) + { + if (this.student.size() >= 3) + { + throw new IllegalArgumentException( + "3 Studenten arbeiten bereits an dem Projekt."); + } + + this.student.add(student); + student.setProjekt(this); + } + } + + /** + * Remove the Student. + * + * @param student + */ + public void removeStudent(Student student) + { + if (student == null) + { + throw new IllegalArgumentException( + "Es muss ein Student zum Entfernen gegeben sein."); + } + + this.student.remove(student); + } + + /** + * Getter for property ansprechpartner. + * + * @return Returns the ansprechpartner. + */ + public ObjectProperty<Ansprechpartner> ansprechpartnerProperty() + { + return ansprechpartner; + } + + /** * * Getter for Ansprechpartner of the Projekt. * @@ -285,7 +343,28 @@ public class Projekt */ public Ansprechpartner getAnsprechpartner() { - return this.ansprechpartner; + return this.ansprechpartner.get(); + } + + /** + * Setter for ansprechpartner. + * + * @param ansprechpartner + * The ansprechpartner to set. + */ + public void setAnsprechpartner(Ansprechpartner ansprechpartner) + { + if (this.ansprechpartner.get() != null) + { + this.ansprechpartner.get().removeProjekt(this); + } + + this.ansprechpartner.set(ansprechpartner); + + if (ansprechpartner != null) + { + ansprechpartner.addProjekt(this); + } } /** @@ -364,4 +443,20 @@ public class Projekt { return projektthema.get(); } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#equals(java.lang.Object) + */ + @Override + public boolean equals(Object obj) + { + if (!(obj instanceof Projekt)) + { + return false; + } + + return ((Projekt) obj).projektthema.get().equals(projektthema.get()); + } }
\ No newline at end of file |
