package application.modeles;
import java.sql.CallableStatement;
import java.sql.SQLException;
import application.exceptions.DataFormatException;
import application.outils.Database;
/**
* -----------------------------------------------------
* Classe representant les acteurs.
* -----------------------------------------------------
* @author logan.soumar
* -----------------------------------------------------
*/
public class ModeleActeur
{
private ModeleIndividu _individu;
private int _numFilm;
private Database _DB;
/**
* -----------------------------------------------------
* Constructeur : a partir de l'individu et du numero
* du film dans lequel il a joue.
* -----------------------------------------------------
* @param DB Connexion a la base de donnees
* -----------------------------------------------------
*/
public ModeleActeur(Database DB)
{
_DB = DB;
_individu = null;
_numFilm = 0;
}
/**
* -----------------------------------------------------
* Constructeur
* -----------------------------------------------------
* @param DB Connexion a la base de donnees
* @param numFilm ID du film
* @param ModeleIndividu l'individu en question
* @throws DataFormatException Si parametre incorrect
* -----------------------------------------------------
*/
public ModeleActeur(Database DB, int numFilm, ModeleIndividu unType) throws DataFormatException
{
_DB = DB;
set(numFilm, unType);
}
/* (non-Javadoc)
* -----------------------------------------------------
* Permet de nettoyer l'objet avant que le systeme de
* Garbage Collector ne s'en charge.
* -----------------------------------------------------
* @see java.lang.Object#finalize()
*/
public void finalize(){
}
/**
* -----------------------------------------------------
* Setters
* -----------------------------------------------------
*/
public void setIndividu(ModeleIndividu unType) throws DataFormatException
{
_individu = unType;
}
public void setNumFilm(int numFilm) throws DataFormatException
{
if(numFilm < 1)
throw new DataFormatException("Le numero d'identifiant du film est incorrect.");
_numFilm = numFilm;
}
public void set(int numFilm, ModeleIndividu unType) throws DataFormatException
{
setNumFilm(numFilm);
setIndividu(unType);
}
/**
* -----------------------------------------------------
* Methode ajouter
* -----------------------------------------------------
* Ajoute l'acteur dans la base de donnees
* -----------------------------------------------------
* @throws DataFormatException Si un attribut manque
* @throws SQLException Si une erreur lors de l'ajout
* -----------------------------------------------------
*/
public void ajouter() throws DataFormatException, SQLException
{
if(((_individu.getPrenom()== null) && (_individu.getNom() == null)) || (_numFilm == 0))
throw new DataFormatException("Les attributs prenom, nom et numFilm doivent etre renseignes.");
// Ajout dans la base de donnees
CallableStatement cst = _DB.prepareCall("{call majVideotheque.ajouterActeur(?, ?, ?)}");
cst.setInt(1, _numFilm);
cst.setString(2, _individu.getNom());
cst.setString(3, _individu.getPrenom());
cst.execute();
}
/**
* -----------------------------------------------------
* Methode ajouter
* -----------------------------------------------------
* Ajoute l'acteur dans la base de donnees
* -----------------------------------------------------
* @param cst Requete preparee pour optimiser
* @throws DataFormatException Si un attribut manque
* @throws SQLException Si une erreur lors de l'ajout
* -----------------------------------------------------
*/
public void ajouter(CallableStatement cst) throws DataFormatException, SQLException
{
if(((_individu.getPrenom()== null) && (_individu.getNom() == null)) || (_numFilm == 0))
throw new DataFormatException("Les attributs prenom, nom et numFilm doivent etre renseignes.");
// Ajout dans la base de donnees
cst.setInt(1, _numFilm);
cst.setString(2, _individu.getNom());
cst.setString(3, _individu.getPrenom());
cst.execute();
}
}