/*
* codjo.net
*
* Common Apache License 2.0
*/
package net.codjo.model;
import net.codjo.persistent.PersistenceException;
import net.codjo.persistent.Reference;
import net.codjo.persistent.UnknownIdException;
import net.codjo.persistent.sql.SimpleHome;
import net.codjo.utils.sql.event.DbChangeListener;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ResourceBundle;
/**
* Classe qui fait le lien entre l'objet PortfolioGroup et la BDD.
*
* @version $Revision: 1.3 $
*
*/
public class PortfolioGroupHome extends SimpleHome {
/**
* Constructeur de l'objet PortfolioGroupHome
*
* @param con Une connection a la base
*
* @exception SQLException En cas d'erreur lors de l'acces a la base.
*/
public PortfolioGroupHome(Connection con) throws SQLException {
super(con, ResourceBundle.getBundle("PortfolioGroup"));
}
/**
* Retourne une reference sur un gourpe de portefeuille.
*
* @param id PORTFOLIO_GROUP_ID
*
* @return Une reference
*/
public Reference getReference(int id) {
return getReference(new Integer(id));
}
/**
* Retourne un listener mettant a jours la couche de persistance au niveau de
* PortfolioGroupHome lors des changements directe en Base.
*
* @return The DbChangeListener value
*
* @see net.codjo.utils.SimpleHome#DefaultDbChangeListener
*/
public DbChangeListener getDbChangeListener() {
return new DefaultDbChangeListener();
}
/**
* R�cup�re la liste des groupes de portefeuilles existants dans la BDD
*
* @return La liste des groupes de portefeuilles
*
* @exception PersistenceException Erreur dans la couche de persistance.
*/
public List getAllPortfolioGroup() throws PersistenceException {
List allRefObj = getAllObjects();
List allObj = new ArrayList();
for (Iterator iter = allRefObj.iterator(); iter.hasNext();) {
Reference ref = (Reference)iter.next();
allObj.add(ref.getObject());
}
return allObj;
}
/**
* R�cup�re la liste des groupes de portefeuilles existants dans la BDD sans le
* groupe 'SANS' et 'TOUT'.
*
* @return La liste de Reference
*
* @exception PersistenceException En cas d'erreur lors de la recuperation.
*/
public List getAllRealPortfolioGroup() throws PersistenceException {
List allRefObj = getAllObjects();
List realList = new ArrayList();
for (Iterator iter = allRefObj.iterator(); iter.hasNext();) {
Reference ref = (Reference)iter.next();
PortfolioGroup ptf = (PortfolioGroup)ref.getObject();
if (!"TOUT".equals(ptf.getPortfolioGroupName())
&& (!"SANS".equals(ptf.getPortfolioGroupName()))) {
realList.add(ref);
}
}
return realList;
}
/**
* Retourne le Groupe de portfeuille.
*
* @param pfGroupName Description of Parameter
*
* @return Le groupe de portefeuille.
*
* @exception PersistenceException En cas d'erreur
* @throws UnknownIdException TODO
*
* @todo Cette methode n'est pas optimiser. Elle recupere toutes les Grp de
* portefeuille pour recuperer un Groupe
*/
public PortfolioGroup getPortfolioGroup(String pfGroupName)
throws PersistenceException {
List allRefObj = getAllObjects();
for (Iterator iter = allRefObj.iterator(); iter.hasNext();) {
Reference ref = (Reference)iter.next();
PortfolioGroup ptf = (PortfolioGroup)ref.getObject();
if (pfGroupName.equals(ptf.getPortfolioGroupName())) {
return ptf;
}
}
throw new UnknownIdException("Nom de groupe de portefeuille inconnue : "
+ pfGroupName);
}
/**
* Creation d'un groupe de portefeuille. Le nouveau groupe cree est enregistres sans
* faire aucun commit.
*
* @param name Le nom du groupe de portefeuille
*
* @return Le nouveau groupe.
*
* @exception PersistenceException Si impossibilite de creer le groupe.
*/
public PortfolioGroup newPortfolioGroup(String name)
throws PersistenceException {
PortfolioGroup obj = new PortfolioGroup(new Reference(this), name);
return obj;
}
}