}
public void ajouterFilm(String titre, Collection<ModeleGenre> genres, ModeleIndividu realisateur, Collection<ModeleIndividu> acteurs) throws SQLException, DataFormatException
{
if(genres.size() < 1)
throw new DataFormatException("Il faut au moins un genre.");
if(acteurs.size() < 1)
throw new DataFormatException("Il faut au moins un acteur.");
if(realisateur.getPrenom() == null & realisateur.getNom() == null)
throw new DataFormatException("Le realisateur doit avoir au moins un nom ou un prenom.");
// Ajout du realisateur avant de pouvoir ajouter le film
realisateur.setDB(_DB);
int numRealisateur = realisateur.ajouter();
// Ajout du film
ModeleFilm film = new ModeleFilm(_DB);
film.setTitre(titre);
film.setRealisateur(realisateur);
int numFilm = film.ajouter();
// Si le film n'existe pas
if(numFilm > 0)
{
// Ajout des genres au film
Iterator<ModeleGenre> itGenres = genres.iterator();
CallableStatement cst = _DB.prepareCall("{call majVideotheque.ajouterGenre(?, ?)}");
ModeleGenreFilm genreFilm = new ModeleGenreFilm(_DB);
genreFilm.setNumFilm(numFilm);
while(itGenres.hasNext())
{
genreFilm.setCodeGenre(itGenres.next().getCode());
genreFilm.ajouter(cst);
}
cst.close();
// Ajout des acteurs au film
Iterator<ModeleIndividu> itActeurs = acteurs.iterator();
cst = _DB.prepareCall("{call majVideotheque.ajouterActeur(?, ?, ?)}");
ModeleActeur acteur = new ModeleActeur(_DB);
acteur.setNumFilm(numFilm);
ModeleIndividu individu;
while(itActeurs.hasNext())
{
individu = itActeurs.next();
if(individu.getPrenom() == null && individu.getNom() == null)
throw new DataFormatException("Un acteur n'a ni nom, ni prenom.");
acteur.setIndividu(individu);
acteur.ajouter(cst);
}
cst.close();
}
// Si le film existe
else
throw new DataFormatException("Le film existe deja.");
}