Vous êtes sur la page 1sur 8

TP N° 7 : Collection de type Set & les génériques

Langage JAVA

Partie I :

Soit le diagramme de classe suivant :

|| correspond à

1. Développer les trois classes ci-dessus dans le package : ma.projet.bean


 En respectant le concept d’encapsulation,
 Créer un constructeur par défaut,
 Créer un constructeur d’initialisation,
NB : id est auto incrément.

Page 1
M. LACHGAR Med
Partie II :
Nous considérons le diagramme de classe suivant :

1. Développer l’interface DAO dans le package : ma.projet.dao ;


2. Développer les classes UserImpl, ReunionImpl et LigneReunionImpl dans le package
ma.projet.impl ;
3. Proposer une implémentation des cinq méthodes dans les trois classes
4. Développer la méthode getEmployeReunion(emp : Employe) : Set : permettant de
renvoyer la liste des réunions d’un employé ;
5. Développer la méthode getEmployes(reunion : Reunion) : Set : permettant de renvoyer
la liste des employés participants dans une réunion ;

Partie III :

1. Créer une classe de teste.

Page 2
M. LACHGAR Med
Correction :
Arborescence du projet :

La classe Employe :
package ma.projet.bean;

public class Employe {

private int id;


private String nom;
private String login;
private String password;
private String email;

private static int compt;

public Employe(String nom, String login, String password, String email) {


compt++;
this.id = compt;
this.nom = nom;
this.login = login;
this.password = password;
this.email = email;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String toString(){
return this.nom + " " + this.login + " " + this.password + " " + this.email;
}
}
Page 3
M. LACHGAR Med
La classe Reunion :

package ma.projet.bean;

import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

public class Reunion {

private int id;


private String theme;
private Date date;
private static int compt;

public Reunion(String theme, Date date) {


compt++;
this.id = compt;
this.theme = theme;
this.date = date;
}
public int getId() {
return id;
}
public String getTheme() {
return theme;
}
public void setTheme(String theme) {
this.theme = theme;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}

public String toString(){


DateFormat dt = DateFormat.getDateInstance(DateFormat.LONG,Locale.FRANCE);
return this.theme + " " + dt.format(this.date);
}
}

La classe LigneEmployeReunion :
package ma.projet.bean;

public class LigneEmployeReunion {


private int id;
private Employe employe;
private Reunion reunion;
private static int compteur=0;

public LigneEmployeReunion() {
}
public LigneEmployeReunion(Employe employe, Reunion reunion) {
compteur++;
this.id=compteur;
this.employe = employe;
this.reunion = reunion;
}
public int getId() {
return id;
}
public Employe getEmploye() {
return employe;
}
public Reunion getReunion() {
return reunion;
}
public static int getCompteur() {
return compteur;
}
}

Page 4
M. LACHGAR Med
L’interface IDao :

package ma.projet.dao;

import java.util.Set;

public interface IDao<T> {

public void create (T Obj);


public Set <T> getAll();
public void delete ( int id);
public void update( int id);
public T getById (int id);

La classe EmployeImpl :

package ma.projet.impl;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import ma.projet.bean.Employe;
import ma.projet.dao.IDao;

public class EmployeImpl implements IDao<Employe>{


private Set <Employe> employes =new HashSet<Employe>();

public void create(Employe Obj) {


employes.add(Obj);
}

public void delete(int id) {


Iterator<Employe> it=employes.iterator();
while(it.hasNext()){
if(it.next().getId()==id){
it.remove();
break;
}
}
}

public Set<Employe> getAll() {


return employes;
}

public Employe getById(int id) {


Iterator<Employe>it=employes.iterator();
while (it.hasNext()){
Employe e=it.next();
if(e.getId()==id){
return e;
}
}
return null;
}

public void update(int id) {


// A vous
}
}

Page 5
M. LACHGAR Med
La classe ReunionImpl :

package ma.projet.impl;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import ma.projet.bean.Reunion;
import ma.projet.dao.IDao;

public class ReunionImpl implements IDao<Reunion>{


private Set <Reunion> reunions = new HashSet<Reunion>();

public void create(Reunion Obj) {


reunions.add(Obj);
}

public void delete(int id) {


Iterator <Reunion> it = reunions.iterator();
while(it.hasNext()){
if(it.next().getId()==id){
it.remove();
break;
}
}
}

public Set<Reunion> getAll() {


return reunions;
}

public Reunion getById(int id) {


Iterator <Reunion> it = reunions.iterator();
Reunion r;
while(it.hasNext()){
r = it.next();
if(r.getId()==id){
return r;

}
}
return null;
}

public void update(int id) {


// A vous

}
}

Page 6
M. LACHGAR Med
La classe LigneReunionlmpl :
package ma.projet.impl;

import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;

import ma.projet.dao.*;
import ma.projet.bean.*;

public class LigneReunionlmpl implements IDao<LigneEmployeReunion>{

private Set<LigneEmployeReunion> ligneEmpReus = new LinkedHashSet<LigneEmployeReunion>();

public Set <Employe> getEmployeReunion(Reunion reu){


Set <Employe> employes = new LinkedHashSet<Employe>();
Iterator<LigneEmployeReunion> it = ligneEmpReus.iterator();
LigneEmployeReunion ligne ;
while (it.hasNext())
{
ligne = new LigneEmployeReunion();
ligne = it.next();

if(ligne.getReunion().getId() == reu.getId())
{
employes.add(ligne.getEmploye());
}
}
return employes;
}

public Set <Reunion> getReunionEmploye(Employe emp)


{
Set <Reunion> listReunions = new LinkedHashSet<Reunion>();
Iterator<LigneEmployeReunion> it = ligneEmpReus.iterator();
LigneEmployeReunion ligne ;
while (it.hasNext())
{
ligne = new LigneEmployeReunion();
ligne = it.next();

if(ligne.getEmploye().getId() == emp.getId())
{
listReunions.add(ligne.getReunion());
}
}
return listReunions;
}

public void create(LigneEmployeReunion Obj) {


ligneEmpReus.add(Obj);

public void delete(int id) {

public Set<LigneEmployeReunion> getAll() {


return ligneEmpReus;
}

public LigneEmployeReunion getById(int id) {


return null;
// A vous
}

public void update(int id) {


// A vous
}
}

Page 7
M. LACHGAR Med
La classe Test :
package ma.projet.impl;

import java.util.Date;
import java.util.Iterator;
import ma.projet.bean.Employe;
import ma.projet.bean.LigneEmployeReunion;
import ma.projet.bean.Reunion;

public class Test {

public static void main(String[] args) {

EmployeImpl emp = new EmployeImpl();


emp.create(new Employe("Amali","alami","alami","alami@gmail.com"));
emp.create(new Employe("Safi","safi","safi","safi@gmail.com"));
emp.create(new Employe("Alaoui","alaoui","alaoui","alaoui@gmail.com"));
emp.create(new Employe("Lachgar","lachgar","lachgar","lachgar@gmail.com"));

ReunionImpl ren = new ReunionImpl();

ren.create(new Reunion("JEE", new Date("1993/04/04")));


ren.create(new Reunion("RH", new Date("200/05/04")));
ren.create(new Reunion("DONT", new Date("1995/08/06")));
ren.create(new Reunion("UML", new Date("1990/04/24")));

LigneReunionlmpl ligne = new LigneReunionlmpl();

ligne.create(new LigneEmployeReunion(emp.getById(1),ren.getById(3)));
ligne.create(new LigneEmployeReunion(emp.getById(2),ren.getById(3)));
ligne.create(new LigneEmployeReunion(emp.getById(3),ren.getById(2)));
ligne.create(new LigneEmployeReunion(emp.getById(4),ren.getById(2)));
ligne.create(new LigneEmployeReunion(emp.getById(1),ren.getById(1)));

System.out.println("Liste des réunions de : "+emp.getById(1).getNom() +" est : ");


Iterator <Reunion> it = ligne.getReunionEmploye(emp.getById(1)).iterator();
while(it.hasNext())
System.out.println(it.next());

System.out.println("Liste des Employes qui ont participé à la réunion :


"+ren.getById(3).getTheme() +" est : ");
Iterator <Employe> ite = ligne.getEmployeReunion(ren.getById(3)).iterator();
while(ite.hasNext())
System.out.println(ite.next());
}
}

Résultat de l’exécution :

Liste des réunions de : Amali est :


DONT 6 août 1995
JEE 4 avril 1993
Liste des Employes qui ont participé à la réunion : DONT est :
Amali alami alami alami@gmail.com
Safi safi safi safi@gmail.com

Page 8
M. LACHGAR Med

Vous aimerez peut-être aussi