Package application.modeles

Source Code of application.modeles.ModeleVideotheque

package application.modeles;

import java.sql.CallableStatement;
import java.sql.SQLException;
import java.util.Collection;
import java.util.Iterator;
import application.exceptions.DataFormatException;
import application.outils.Database;

public class ModeleVideotheque implements interModeleVideotheque
{
  private Database _DB;

  public ModeleVideotheque(Database DB)
  {
   
    _DB = DB;
    try {
      _DB.connect();
    } catch (ClassNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }

  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.");
  }

  public Collection<ModeleGenre> getGenres() throws SQLException, DataFormatException
  {
    ModeleGenreCollection genreCollection = new ModeleGenreCollection(_DB);
    Collection<ModeleGenre> genres = genreCollection.getTous();
    return genres;
  }

  public Collection<ModeleRepartition> repartitionGenres() throws SQLException, DataFormatException
  {
    ModeleRepartitionCollection repartitionCollection = new ModeleRepartitionCollection(_DB);
    Collection<ModeleRepartition> repartitions = repartitionCollection.getRepartitions();
    return repartitions;
  }

  public Collection<ModeleClassement> top10Acteurs() throws SQLException, DataFormatException
  {
    ModeleClassementCollection classementCollection = new ModeleClassementCollection(_DB);
    Collection<ModeleClassement> classements = classementCollection.top10Acteurs();
    return classements;
  }

  public Collection<ModeleClassement> top10Realisateurs() throws SQLException, DataFormatException
  {
    ModeleClassementCollection classementCollection = new ModeleClassementCollection(_DB);
    Collection<ModeleClassement> classements = classementCollection.top10Realisateurs();
    return classements;
  }
 
 
 
/*----------A-C-C-E-S-S-E-U-R-S---------------------------*/
 

  public Database get_DB() {
    return _DB;
  }

  public void set_DB(Database _db) {
    _DB = _db;
  }
 
 
 
}




TOP

Related Classes of application.modeles.ModeleVideotheque

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.