package application.modeles;
import java.sql.CallableStatement;
import java.sql.SQLException;
import application.exceptions.DataFormatException;
import application.outils.Database;
public class ModeleGenreFilm
{
private String _codeGenre;
private int _numFilm;
private Database _DB;
/**
*
* Constructeur
*
* @param DB Connexion a la base de donnees
*
*/
public ModeleGenreFilm(Database DB)
{
_codeGenre = null;
_numFilm = 0;
_DB = DB;
}
/**
*
* Constructeur
*
* @param DB Connexion a la base de donnees
* @param codeGenre Code genre du genre
* @param numFilm Numero du film
* @throws DataFormatException Si parametre incorrect
*
*/
public ModeleGenreFilm(Database DB, int numFilm, String codeGenre) throws DataFormatException
{
_DB = DB;
set(numFilm, codeGenre);
}
/* (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 setCodeGenre(String codeGenre) throws DataFormatException
{
if(codeGenre.length() < 1 || codeGenre.length() > 2)
throw new DataFormatException("Le code genre doit faire entre 1 et 2 caracteres.");
_codeGenre = codeGenre;
}
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, String codeGenre) throws DataFormatException
{
setCodeGenre(codeGenre);
setNumFilm(numFilm);
}
/**
*
* Methode ajouter
*
* Ajoute le genre au film 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((_codeGenre == null) || (_numFilm == 0))
throw new DataFormatException("Les attributs codeGenre et numFilm doivent etre renseignes.");
// Ajout dans la base de donnees
CallableStatement cst = _DB.prepareCall("call majVideotheque.ajouterGenre(" + _numFilm + ", " + _codeGenre + ")");
cst.execute();
}
/**
*
* Methode ajouter
*
* Ajoute le genre au film 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((_codeGenre == null) || (_numFilm == 0))
throw new DataFormatException("Les attributs codeGenre et numFilm doivent etre renseignes.");
// Ajout dans la base de donnees
cst.setInt(1, _numFilm);
cst.setString(2, _codeGenre);
cst.execute();
}
}