if(! fp.hasConnection()){
try{
fp.setConnection(GestionConnection.getInstance().getConnection());
}catch(SQLException se){
throw new MetierException(MetierException.CONNEXION_IMPOSSIBLE);
}
}
try{
listRefs = fp.getListeProduits(libelleCategorie);
}catch(Exception e){
throw new MetierException(MetierException.LISTE_NON_RECUPERABLE);
}
// TODO: a reflechir sur cette verification
// POURQUOI EXCEPTION SI CATALOGUE VIDE ?
if(listRefs.size() == 0){
throw new MetierException(MetierException.CATALOGUE_VIDE);
// return new ArrayList<Produit>;
}
// remplissage de la liste des produits a partir des references.
ArrayList<Produit> listProduits = new ArrayList<Produit>();
for(Iterator<String> it = listRefs.iterator(); it.hasNext();){
String ref = (String)it.next();
try {
// recuperation du produit a partir de sa reference.
Produit p = fp.rechercherProduit(ref);
// ajout du produit dans la liste
listProduits.add(p);
} catch (SQLException se) {
// en cas de coupure reseau.
System.out.println(MetierException.CONNEXION_IMPOSSIBLE);
throw new MetierException(MetierException.CONNEXION_IMPOSSIBLE);
}
}
return listProduits;
}