From 85252fb2c88c34009868764271c5e4cba856a4a5 Mon Sep 17 00:00:00 2001 From: mahmoud-somai Date: Mon, 26 Dec 2022 00:34:14 +0100 Subject: [PATCH 1/4] second commit --- .../de/tekup/studentsabsence/entities/Absence.java | 10 ++++++++++ .../de/tekup/studentsabsence/entities/Group.java | 7 ++++++- .../de/tekup/studentsabsence/entities/Image.java | 3 +++ .../de/tekup/studentsabsence/entities/Student.java | 12 ++++++++++-- .../de/tekup/studentsabsence/entities/Subject.java | 5 +++++ .../repositories/GroupSubjectRepository.java | 6 ++++-- .../services/impl/AbsenceServiceImp.java | 13 +++++++++---- .../services/impl/GroupSubjectServiceImp.java | 5 +++-- .../services/impl/ImageServiceImp.java | 7 +++---- .../services/impl/StudentServiceImp.java | 13 ++++++++++--- .../services/impl/SubjectServiceImp.java | 9 +++++---- 11 files changed, 68 insertions(+), 22 deletions(-) diff --git a/src/main/java/de/tekup/studentsabsence/entities/Absence.java b/src/main/java/de/tekup/studentsabsence/entities/Absence.java index 6c6c0a9..47e7611 100644 --- a/src/main/java/de/tekup/studentsabsence/entities/Absence.java +++ b/src/main/java/de/tekup/studentsabsence/entities/Absence.java @@ -28,6 +28,16 @@ public class Absence implements Serializable { @Positive(message = "Should be positive") private float hours; //TODO Complete Relations with other entities + @OneToOne + @JoinColumn(name="name") + { + private Subject subject; + } + @ManyToOne + @JoinColumn(name="firstName") + { + private Student student; + } } diff --git a/src/main/java/de/tekup/studentsabsence/entities/Group.java b/src/main/java/de/tekup/studentsabsence/entities/Group.java index 1c4121b..ef3efcd 100644 --- a/src/main/java/de/tekup/studentsabsence/entities/Group.java +++ b/src/main/java/de/tekup/studentsabsence/entities/Group.java @@ -29,7 +29,12 @@ public class Group { @NotNull(message = "Speciality is required") @Enumerated(EnumType.STRING) private SpecialityEnum speciality; - //TODO Complete Relations with other entities + //TODO Complete Relations with other entities , not ok + @ManyToMany(mappedBy = "Group") + private List subjectList; + + @OneToMany(mappedBy = "Group") + private List studentList; diff --git a/src/main/java/de/tekup/studentsabsence/entities/Image.java b/src/main/java/de/tekup/studentsabsence/entities/Image.java index 80868c7..a79d0c4 100644 --- a/src/main/java/de/tekup/studentsabsence/entities/Image.java +++ b/src/main/java/de/tekup/studentsabsence/entities/Image.java @@ -23,4 +23,7 @@ public class Image { private String fileType; @Lob private byte[] data; + + @OneToOne(mappedBy = "Image") + private List studentList; } diff --git a/src/main/java/de/tekup/studentsabsence/entities/Student.java b/src/main/java/de/tekup/studentsabsence/entities/Student.java index 9ffc61f..1b37c4a 100644 --- a/src/main/java/de/tekup/studentsabsence/entities/Student.java +++ b/src/main/java/de/tekup/studentsabsence/entities/Student.java @@ -29,7 +29,15 @@ public class Student implements Serializable { private LocalDate dob; //TODO Complete Relations with other entities - - + @ManyToOne + @JoinColumn(name="name") + { + private Group group; + } + @OneToOne + @JoinColumn(name="fileName") + { + private Image image; + } } diff --git a/src/main/java/de/tekup/studentsabsence/entities/Subject.java b/src/main/java/de/tekup/studentsabsence/entities/Subject.java index 2da5287..5504d16 100644 --- a/src/main/java/de/tekup/studentsabsence/entities/Subject.java +++ b/src/main/java/de/tekup/studentsabsence/entities/Subject.java @@ -22,4 +22,9 @@ public class Subject implements Serializable { @NotBlank(message = "Name is required") private String name; + @OneToOne(mappedBy = "Subject") + private List absenceList; + + @ManyToMany(mappedBy = "Subject") + private List groupList; } diff --git a/src/main/java/de/tekup/studentsabsence/repositories/GroupSubjectRepository.java b/src/main/java/de/tekup/studentsabsence/repositories/GroupSubjectRepository.java index f0520ab..c2a79e4 100644 --- a/src/main/java/de/tekup/studentsabsence/repositories/GroupSubjectRepository.java +++ b/src/main/java/de/tekup/studentsabsence/repositories/GroupSubjectRepository.java @@ -9,6 +9,8 @@ import java.util.Optional; public interface GroupSubjectRepository extends CrudRepository { - List findAllByGroup(Group id); - ///TODO create a methode to find a groupSubject by Group Id and Subject Id + + List findAllByGroup(Long gid, Long sid); + + ///TODO create a methode to find a groupSubject by Group Id and Subject Id , ok } diff --git a/src/main/java/de/tekup/studentsabsence/services/impl/AbsenceServiceImp.java b/src/main/java/de/tekup/studentsabsence/services/impl/AbsenceServiceImp.java index 2968e07..cb5e7e6 100644 --- a/src/main/java/de/tekup/studentsabsence/services/impl/AbsenceServiceImp.java +++ b/src/main/java/de/tekup/studentsabsence/services/impl/AbsenceServiceImp.java @@ -32,17 +32,21 @@ public List getAllAbsencesByGroupId(Long id) { @Override public List getAllAbsencesByStudentId(Long sid) { List absences = new ArrayList<>(); - //TODO complete the missing instructions + absenceRepository.findAllByStudent_Student_Id(id).forEach(absences::add); + //TODO complete the missing instructions , ok return absences; } @Override public List getAllAbsencesByStudentIdAndSubjectId(Long sid, Long id) { List absences = new ArrayList<>(); - //TODO complete the missing instructions + absenceRepository.findAllByStudent_Student_IdAndSubject_Id(sid, id).forEach(absences::add); + + //TODO complete the missing instructions , ok return absences; } + @Override public List getAllAbsencesByGroupIdAndSubjectId(Long gid, Long id) { List absences = new ArrayList<>(); @@ -84,10 +88,11 @@ public float hoursCountByStudentAndSubject(Long sid, Long id) { List absences = getAllAbsencesByStudentIdAndSubjectId(sid, id); return countHours(absences); } - //TODO Complete the countHours method + //TODO Complete the countHours method , not ok public float countHours(List absences) { + List absences = getAllAbsences(absences); + return countHours(absences); - return 0; } } diff --git a/src/main/java/de/tekup/studentsabsence/services/impl/GroupSubjectServiceImp.java b/src/main/java/de/tekup/studentsabsence/services/impl/GroupSubjectServiceImp.java index 01034d0..c8524f0 100644 --- a/src/main/java/de/tekup/studentsabsence/services/impl/GroupSubjectServiceImp.java +++ b/src/main/java/de/tekup/studentsabsence/services/impl/GroupSubjectServiceImp.java @@ -38,8 +38,9 @@ public List getSubjectsByGroupId(Long id) { @Override public void deleteSubjectFromGroup(Long gid, Long sid) { - //TODO find a groupSubject by Group Id and Subject Id - GroupSubject groupSubject = null; + //TODO find a groupSubject by Group Id and Subject Id , ok + + GroupSubject groupSubject = getGroupById(gid,sid); groupSubjectRepository.delete(groupSubject); } diff --git a/src/main/java/de/tekup/studentsabsence/services/impl/ImageServiceImp.java b/src/main/java/de/tekup/studentsabsence/services/impl/ImageServiceImp.java index d4c5500..13b0048 100644 --- a/src/main/java/de/tekup/studentsabsence/services/impl/ImageServiceImp.java +++ b/src/main/java/de/tekup/studentsabsence/services/impl/ImageServiceImp.java @@ -16,12 +16,11 @@ public class ImageServiceImp implements ImageService { private final ImageRepository imageRepository; - //TODO Complete this method + //TODO Complete this method , ok @Override public Image getImage(String id) { - return null; - } - + return imageRepository.findById(id). + orElseThrow(() -> new NoSuchElementException("No Image with ID: " + id)); @Override public Image addImage(MultipartFile image) throws IOException { String fileName = StringUtils.cleanPath(image.getOriginalFilename()); diff --git a/src/main/java/de/tekup/studentsabsence/services/impl/StudentServiceImp.java b/src/main/java/de/tekup/studentsabsence/services/impl/StudentServiceImp.java index c977c02..97679f0 100644 --- a/src/main/java/de/tekup/studentsabsence/services/impl/StudentServiceImp.java +++ b/src/main/java/de/tekup/studentsabsence/services/impl/StudentServiceImp.java @@ -34,15 +34,22 @@ public Student addStudent(Student student) { } - //TODO Complete this method + //TODO Complete this method , ok @Override public Student updateStudent(Student student) { - return null; + + if (!studentRepository.existsById(student.getId())) { + throw new NoSuchElementException("No student with ID : " + student.getId()); + } + return studentRepository.save(student); } //TODO Complete this method @Override public Student deleteStudent(Long sid) { - return null; + + Student student = getStudentById(id); + studentRepository.delete(student); + return student; } } diff --git a/src/main/java/de/tekup/studentsabsence/services/impl/SubjectServiceImp.java b/src/main/java/de/tekup/studentsabsence/services/impl/SubjectServiceImp.java index 5ef179a..b9ed754 100644 --- a/src/main/java/de/tekup/studentsabsence/services/impl/SubjectServiceImp.java +++ b/src/main/java/de/tekup/studentsabsence/services/impl/SubjectServiceImp.java @@ -15,12 +15,13 @@ public class SubjectServiceImp implements SubjectService { private final SubjectRepository subjectRepository; - //TODO Complete this method + //TODO Complete this method , ok @Override - public List getAllSubjects() { - return null; + public List getAllSubject() { + List subjects = new ArrayList<>(); + subjectRepository.findAll().forEach(subjects::add); + return subjects; } - @Override public Subject getSubjectById(Long id) { return subjectRepository.findById(id). From 8840b856fdbbc3e96f6af4a0c560431e384f3f0a Mon Sep 17 00:00:00 2001 From: khouloudlaroussi <73083557+khouloudlaroussi@users.noreply.github.com> Date: Tue, 27 Dec 2022 17:17:52 +0100 Subject: [PATCH 2/4] =?UTF-8?q?Update=20and=20rename=20src/main/java/de/te?= =?UTF-8?q?kup/studentsabsence/entities/Absence.java=20to=20src/principale?= =?UTF-8?q?/Java/de/tekup/=C3=A9tudiantsabsence/entit=C3=A9s/Absence.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../studentsabsence/entities/Absence.java | 43 ---------- .../entit\303\251s/Absence.java" | 81 +++++++++++++++++++ 2 files changed, 81 insertions(+), 43 deletions(-) delete mode 100644 src/main/java/de/tekup/studentsabsence/entities/Absence.java create mode 100644 "src/principale/Java/de/tekup/\303\251tudiantsabsence/entit\303\251s/Absence.java" diff --git a/src/main/java/de/tekup/studentsabsence/entities/Absence.java b/src/main/java/de/tekup/studentsabsence/entities/Absence.java deleted file mode 100644 index 47e7611..0000000 --- a/src/main/java/de/tekup/studentsabsence/entities/Absence.java +++ /dev/null @@ -1,43 +0,0 @@ -package de.tekup.studentsabsence.entities; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.springframework.format.annotation.DateTimeFormat; - -import javax.persistence.*; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Past; -import javax.validation.constraints.Positive; -import java.io.Serializable; -import java.time.LocalDateTime; - -@Entity -@Data -@AllArgsConstructor -@NoArgsConstructor -public class Absence implements Serializable { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - @NotNull(message = "Start date is required") - @Past(message = "Should be a date in the past") - @DateTimeFormat(pattern = "dd-MM-yyyy HH:mm") - private LocalDateTime startDate; - @NotNull(message = "Hours is required") - @Positive(message = "Should be positive") - private float hours; - //TODO Complete Relations with other entities - @OneToOne - @JoinColumn(name="name") - { - private Subject subject; - } - @ManyToOne - @JoinColumn(name="firstName") - { - private Student student; - } - - -} diff --git "a/src/principale/Java/de/tekup/\303\251tudiantsabsence/entit\303\251s/Absence.java" "b/src/principale/Java/de/tekup/\303\251tudiantsabsence/entit\303\251s/Absence.java" new file mode 100644 index 0000000..f73b2d3 --- /dev/null +++ "b/src/principale/Java/de/tekup/\303\251tudiantsabsence/entit\303\251s/Absence.java" @@ -0,0 +1,81 @@ +paquet de . tekup . absence des étudiants . entités ; + +importer lombok . AllArgsConstructor ; +importer lombok . Données ; +importer lombok . NoArgsConstructor ; + org d'importation . cadre de ressort . formater . annotation . FormatDateHeure ; + +importer javax . persistance .*; +importer javax . validation . contraintes . NonNull ; +importer javax . validation . contraintes . Passé ; +importer javax . validation . contraintes . Positif ; +importer java . io . Sérialisable ; +importer java . temps . DateHeureLocale ; + +@ Entité +@ Données +@ AllArgsConstructor +@ NoArgsConstructor +public class Absence implémente Serializable { + @ identifiant + @ GeneratedValue ( stratégie = GenerationType . IDENTITY ) + ID long privé ; + @ NotNull ( message = "La date de début est requise" ) + @ Past ( message = "Devrait être une date dans le passé" ) + @ DateTimeFormat ( pattern = "jj-MM-aaaa HH:mm" ) + date de début privée DateHeureLocale ; + @ NotNull ( message = "Des heures sont requises" ) + @ Positif ( message = "Devrait être positif" ) + heures de flotteur privé ; + //TODO Terminer les relations avec d'autres entités + @ OneToOne + @ JoinColumn ( nom = "nom" ) + { + Sujet privé sujet ; + } + @ ManyToOne + @ JoinColumn ( nom = "prénom" ) + { + Étudiant privé étudiant ; + } + +public Long getId () { + retourner l'identifiant ; + } + + public void setId ( ID long ) { + cela . identifiant = identifiant ; + } + + public LocalDateTime getStartDate () { + retourne startDate ; + } + + public void setStartDate ( LocalDateTime startDate ) { + cela . date de début = date de début ; + } + + flotteur public getHeures () { + heures de retour ; + } + + public void setHours ( heures flottantes ) { + cela . heures = heures ; + } + + Objet public getSubject () { + retour sujet ; + } + + public void setSubject ( Sujet sujet ) { + cela . sujet = sujet ; + } + + public Étudiant getÉtudiant () { + étudiant de retour ; + } + + public void setStudent ( Étudiant étudiant ) { + cela . étudiant = étudiant ; + } +} From f2f7112cf7c27ee429b8ad5b52264774afb94d48 Mon Sep 17 00:00:00 2001 From: khouloudlaroussi <73083557+khouloudlaroussi@users.noreply.github.com> Date: Tue, 27 Dec 2022 17:19:18 +0100 Subject: [PATCH 3/4] =?UTF-8?q?Update=20and=20rename=20src/main/java/de/te?= =?UTF-8?q?kup/studentsabsence/entities/Group.java=20to=20src/principale/J?= =?UTF-8?q?ava/de/tekup/=C3=A9tudiantsabsence/entit=C3=A9s/Group.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tekup/studentsabsence/entities/Group.java | 41 -------- .../entit\303\251s/Group.java" | 98 +++++++++++++++++++ 2 files changed, 98 insertions(+), 41 deletions(-) delete mode 100644 src/main/java/de/tekup/studentsabsence/entities/Group.java create mode 100644 "src/principale/Java/de/tekup/\303\251tudiantsabsence/entit\303\251s/Group.java" diff --git a/src/main/java/de/tekup/studentsabsence/entities/Group.java b/src/main/java/de/tekup/studentsabsence/entities/Group.java deleted file mode 100644 index ef3efcd..0000000 --- a/src/main/java/de/tekup/studentsabsence/entities/Group.java +++ /dev/null @@ -1,41 +0,0 @@ -package de.tekup.studentsabsence.entities; - -import de.tekup.studentsabsence.enums.LevelEnum; -import de.tekup.studentsabsence.enums.SpecialityEnum; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.ToString; - -import javax.persistence.*; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -@Entity -@Data -@ToString(exclude = "students") -@AllArgsConstructor -@NoArgsConstructor -@Table(name = "_group") -public class Group { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - @NotBlank(message = "Name is required") - private String name; - @NotBlank(message = "Label is required") - private String label; - @Enumerated(EnumType.STRING) - private LevelEnum level; - @NotNull(message = "Speciality is required") - @Enumerated(EnumType.STRING) - private SpecialityEnum speciality; - //TODO Complete Relations with other entities , not ok - @ManyToMany(mappedBy = "Group") - private List subjectList; - - @OneToMany(mappedBy = "Group") - private List studentList; - - - -} diff --git "a/src/principale/Java/de/tekup/\303\251tudiantsabsence/entit\303\251s/Group.java" "b/src/principale/Java/de/tekup/\303\251tudiantsabsence/entit\303\251s/Group.java" new file mode 100644 index 0000000..794eba8 --- /dev/null +++ "b/src/principale/Java/de/tekup/\303\251tudiantsabsence/entit\303\251s/Group.java" @@ -0,0 +1,98 @@ +paquet de . tekup . absence des étudiants . entités ; + +importer de . tekup . absence des étudiants . énumérations . LevelEnum ; +importer de . tekup . absence des étudiants . énumérations . SpecialityEnum ; +importer lombok . AllArgsConstructor ; +importer lombok . Données ; +importer lombok . NoArgsConstructor ; +importer lombok . ToString ; + +importer javax . persistance .*; +importer javax . validation . contraintes . NonVide ; +importer javax . validation . contraintes . NonNull ; +@ Entité +@ Données +@ ToString ( exclure = "étudiants" ) +@ AllArgsConstructor +@ NoArgsConstructor +@ Table ( nom = "_group" ) + Groupe de classe publique { + @ identifiant + @ GeneratedValue ( stratégie = GenerationType . IDENTITY ) + ID long privé ; + @ NotBlank ( message = "Le nom est requis" ) + nom de chaîne privé ; + @ NotBlank ( message = "Le libellé est requis" ) + étiquette de chaîne privée ; + @ Énuméré ( EnumType . STRING ) + niveau LevelEnum privé ; + @ NotNull ( message = "La spécialité est requise" ) + @ Énuméré ( EnumType . STRING ) + spécialité privée SpecialityEnum ; + //TODO Terminer les relations avec d'autres entités, pas ok + @ ManyToOne ( mappéPar = "Groupe" ) + privé GroupSubject groupSubject ; + + @ OneToMany ( mappéPar = "Groupe" ) + Liste privée < Etudiant > listeEtudiants ; + + + chaîne publique getName () { + retourner le nom ; + } + + public void setName ( Nom de la chaîne ) { + cela . nom = nom ; + } + + chaîne publique getLabel () { + étiquette de retour ; + } + + public void setLabel ( Étiquette de chaîne ) { + cela . étiquette = étiquette ; + } + + public LevelEnum getLevel () { + niveau de retour ; + } + + public void setLevel ( niveau LevelEnum ) { + cela . niveau = niveau ; + } + + public SpecialityEnum getSpeciality () { + spécialité de retour ; + } + + public void setSpeciality ( SpecialityEnum spécialité ) { + cela . spécialité = spécialité ; + } + public List < Etudiant > getEtudiants () { + étudiants de retour ; + } + + public void setStudents ( Liste < Étudiant > étudiants ) { + cela . étudiants = étudiants ; + } + + public GroupSubject getGroupSubject () { + return groupSubject ; + } + + public void setGroupSubject ( GroupSubject groupSubject ) { + cela . groupeSujet = groupeSujet ; + } + + + public Long getId () { + retourner l'identifiant ; + } + + public void setId ( ID long ) { + cela . identifiant = identifiant ; + } +} + + +} From 46faa17f205b8238d3cf00f40df72991ca89feca Mon Sep 17 00:00:00 2001 From: khouloudlaroussi <73083557+khouloudlaroussi@users.noreply.github.com> Date: Tue, 27 Dec 2022 17:20:58 +0100 Subject: [PATCH 4/4] =?UTF-8?q?Update=20and=20rename=20src/main/java/de/te?= =?UTF-8?q?kup/studentsabsence/entities/Student.java=20to=20src/principale?= =?UTF-8?q?/Java/de/tekup/=C3=A9tudiantsabsence/entit=C3=A9s/Student.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../studentsabsence/entities/Student.java | 43 ------------ .../entit\303\251s/Student.java" | 67 +++++++++++++++++++ 2 files changed, 67 insertions(+), 43 deletions(-) delete mode 100644 src/main/java/de/tekup/studentsabsence/entities/Student.java create mode 100644 "src/principale/Java/de/tekup/\303\251tudiantsabsence/entit\303\251s/Student.java" diff --git a/src/main/java/de/tekup/studentsabsence/entities/Student.java b/src/main/java/de/tekup/studentsabsence/entities/Student.java deleted file mode 100644 index 1b37c4a..0000000 --- a/src/main/java/de/tekup/studentsabsence/entities/Student.java +++ /dev/null @@ -1,43 +0,0 @@ -package de.tekup.studentsabsence.entities; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.ToString; -import org.springframework.format.annotation.DateTimeFormat; - -import javax.persistence.*; -import javax.validation.constraints.*; -import java.io.Serializable; -import java.time.LocalDate; -@Entity -@Data -@AllArgsConstructor -@NoArgsConstructor -@ToString(exclude = {"image","group","absences"}) -public class Student implements Serializable { - //TODO Complete Validations of fields - - - @Id - private Long sid; - private String firstName; - private String lastName; - private String email; - private String phone; - @DateTimeFormat(pattern = "dd-MM-yyyy") - private LocalDate dob; - - //TODO Complete Relations with other entities - @ManyToOne - @JoinColumn(name="name") - { - private Group group; - } - @OneToOne - @JoinColumn(name="fileName") - { - private Image image; - } - -} diff --git "a/src/principale/Java/de/tekup/\303\251tudiantsabsence/entit\303\251s/Student.java" "b/src/principale/Java/de/tekup/\303\251tudiantsabsence/entit\303\251s/Student.java" new file mode 100644 index 0000000..b0b5265 --- /dev/null +++ "b/src/principale/Java/de/tekup/\303\251tudiantsabsence/entit\303\251s/Student.java" @@ -0,0 +1,67 @@ +package de.tekup.studentsabsence.entities; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; +import javax.validation.constraints.*; +import java.io.Serializable; +import java.time.LocalDate; + + +@ Entité +@ Données +@ AllArgsConstructor +@ NoArgsConstructor + la classe publique GroupSubject implémente Serializable { + @ ID intégré + identifiant GroupSubjectKey privé ; + + @ ManyToOne + @ MapsId ( "id_groupe" ) + @ JoinColumn ( nom = "group_id" ) + groupe privé groupe ; + + @ ManyToOne + @ MapsId ( "id_sujet" ) + @ JoinColumn ( nom = "id_sujet" ) + Sujet privé sujet ; + + heures de flotteur privé ; + + public GroupSubjectKey getId () { + retourner l'identifiant ; + } + + public void setId ( identifiant GroupSubjectKey ) { + cela . identifiant = identifiant ; + } + flotteur public getHeures () { + heures de retour ; + } + + public void setHours ( heures flottantes ) { + cela . heures = heures ; + } + + groupe public getGroup () { + groupe de retour ; + } + + public void setGroup ( groupe groupe ) { + cela . groupe = groupe ; + } + + Objet public getSubject () { + retour sujet ; + } + + public void setSubject ( Sujet sujet ) { + cela . sujet = sujet ; + } + + +}