From: <had...@us...> - 2009-03-06 18:46:18
|
Revision: 4516 http://fudaa.svn.sourceforge.net/fudaa/?rev=4516&view=rev Author: hadouxad Date: 2009-03-06 18:45:46 +0000 (Fri, 06 Mar 2009) Log Message: ----------- persistence dpti mise en place des controlleurs xsd test unitaires strict test avec donnes erronnes pour eprouver les moulinettes Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Questions-ModelisationDonnees.txt branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDFRT.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDPTI.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDRSO.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoOPTG.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoParsing.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/DaoStructuresFormatDFRT.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/DaoStructuresFormatDPTI.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/validatorXML/ValidatorXml.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/validatorXML/valideDFRT.xsd branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHBranche.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHCasier.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHNoeud.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMHBrancheOrifice.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/reader/Crue10reader.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/writer/Crue10writer.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/test/java/org/fudaa/fudaa/crue/AppCrueTest.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/test/java/org/fudaa/fudaa/crue/CruePersistanceErrorManager.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/test/java/org/fudaa/fudaa/crue/TestCrueDFRTFile.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/test/java/org/fudaa/fudaa/crue/TestCrueDRSOFile.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueFactoryDao.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/validatorXML/valideDPTI.xsd branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/validatorXML/valideTest.xsd branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/test/java/org/fudaa/fudaa/crue/TestClasse.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/test/java/org/fudaa/fudaa/crue/TestCrueDPTIFile.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/test/java/org/fudaa/fudaa/crue/componentTestClasse.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/test/java/org/fudaa/fudaa/crue/testXsd.java Removed Paths: ------------- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFillInfos.java Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Questions-ModelisationDonnees.txt =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Questions-ModelisationDonnees.txt 2009-03-06 14:58:09 UTC (rev 4515) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Questions-ModelisationDonnees.txt 2009-03-06 18:45:46 UTC (rev 4516) @@ -39,5 +39,7 @@ Est ce que cette r\xE8gle est g\xE9n\xE9rale? c'est \xE0 dire que tous les objets de dpti sont des r\xE9f\xE9rences de drso et qu'ils ont toujours le mot clef DRSO# devant ? - Balises <Branches>,fichier modele3.dpti.xml: la balise <BrancheOrifice> contient la balise <OuvPasseDessous> de plus que les autres types de branches. - Est-ce bien la seule \xE0 poss\xE9der ce type de balise ou toutes peuvent les poss\xE9der? y'a t'il d'autres cas particuliers comme celui-ci pour les branches ? + Est-ce bien la seule \xE0 poss\xE9der ce type de balise ou toutes peuvent les poss\xE9der? y'a t'il d'autres cas particuliers comme celui-ci pour les branches ? + - Balises <Sections>, fichier modele3.dpti.xml: les sections sont vides. Est ce normal ou cas particulier? Si non Quelles donn\xE9es fournit-on pour les sections dans le fichier dpti (pas d'autres fichier dpti exemples pour les mod\xE8les 4 et 5.) + \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDFRT.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDFRT.java 2009-03-06 14:58:09 UTC (rev 4515) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDFRT.java 2009-03-06 18:45:46 UTC (rev 4516) @@ -29,13 +29,13 @@ public void fillInfosWith(List<DonFrt> data,List<String> listeMessageError) { - listeFrottement=CrueDaoFillInfos.remplirPersistanceAvecFrottemetnsDFRT(data,listeMessageError); + listeFrottement=CrueFactoryDao.remplirPersistanceAvecFrottemetnsDFRT(data,listeMessageError); } - public List<DonFrt> fillInfosWithPersistant(List<String> listeMessageError) { - return CrueDaoFillInfos.remplirFrottemetnsAvecPersistanceDFRT(listeFrottement,listeMessageError); + public List<DonFrt> fillInfosWithPersistant(Object data,List<String> listeMessageError) { + return CrueFactoryDao.remplirFrottemetnsAvecPersistanceDFRT(listeFrottement,listeMessageError); } Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDPTI.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDPTI.java 2009-03-06 14:58:09 UTC (rev 4515) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDPTI.java 2009-03-06 18:45:46 UTC (rev 4516) @@ -1,8 +1,10 @@ package main.java.org.fudaa.dodico.crue.dao; +import java.util.ArrayList; import java.util.List; import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; import main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheAbstract; import main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.CasierAbstract; @@ -20,9 +22,11 @@ */ public class CrueDaoDPTI extends CrueDaoParsing<List<EMH>>{ + /** + * Suffixe ajout\xE9 aux r\xE9f\xE9rences des objets emh du fichier dpti pour indiquer qu'ils r\xE9f\xE8rent aux objets d\xE9finis dans DRSO. + */ + public static final String SUFFIXE_REF_DRSO="DRSO#"; - - /** * la liste des noeuds */ @@ -45,21 +49,55 @@ private List<SectionAbstract> Sections; @Override - void fillInfosWith(List<EMH> data, List<String> listeMessageError) { + public void fillInfosWith(List<EMH> data, List<String> listeMessageError) { // TODO Auto-generated method stub + //-- etape 1: on remplit les infso des noeuds --// + Noeuds=CrueFactoryDao.remplirPersistanceAvecNoeudDPTI(data,listeMessageError); + //-- etape 2: on remplit les infso des branches --// + Branches=CrueFactoryDao.remplirPersistanceAvecBrancheDPTI(data,listeMessageError); + + + //-- etape 3: on remplit les infso des casiers --// + Casiers=CrueFactoryDao.remplirPersistanceAvecCasierDPTI(data,listeMessageError); + + + //-- etape 4: on remplit les infso des sections --// + Sections=new ArrayList<SectionAbstract>(); } @Override - List<EMH> fillInfosWithPersistant(List<String> listeMessageError) { - // TODO Auto-generated method stub - return null; + List<EMH> fillInfosWithPersistant(Object data,List<String> listeMessageError) { + + if(data==null || ! (data instanceof List)){ + listeMessageError.add(CrueRessource.getS("Impossible de r\xE9cup\xE9rer les donn\xE9es r\xE9saux (DRSO). Les r\xE9f\xE9rences du fichier DPTI ne pourront etre utilis\xE9es.")); + return null; + } + List<EMH> listeEMHDRSO=(List<EMH> )data; + + //-- remplissage des noeuds --// + CrueFactoryDao.remplirNoeudAvecPersistanceDPTI(Noeuds,listeEMHDRSO,listeMessageError); + + //-- remplissage des branches --// + CrueFactoryDao.remplirBrancheAvecPersistanceDPTI(Branches, listeEMHDRSO,listeMessageError); + + + //-- remplissage des casiers --// + CrueFactoryDao.remplirCasierAvecPersistanceDPTI(Casiers, listeEMHDRSO, listeMessageError); + + //-- remplissage des sections --// + + //TODO pour le moment rien mais il faudrait demander des pr\xE9cisions --// + + return listeEMHDRSO; } @Override - XStream initXmlParser() { - // TODO Auto-generated method stub - return null; + public XStream initXmlParser() { + XStream xstream = new XStream(new DomDriver()); + //-- init du parser --// + (new DaoStructuresFormatDPTI()).initXmlParserForDPTI(xstream); + return xstream; } } Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDRSO.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDRSO.java 2009-03-06 14:58:09 UTC (rev 4515) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDRSO.java 2009-03-06 18:45:46 UTC (rev 4516) @@ -53,18 +53,18 @@ public void fillInfosWith(List<EMH> data,List<String> listeMessageError) { //-- etape 1: on remplit les infso des noeuds --// - Noeuds=CrueDaoFillInfos.remplirPersistanceAvecNoeudDRSO(data,listeMessageError); + Noeuds=CrueFactoryDao.remplirPersistanceAvecNoeudDRSO(data,listeMessageError); //-- etape 2: on remplit les infso des branches --// - Branches=CrueDaoFillInfos.remplirPersistanceAvecBrancheDRSO(data,listeMessageError); + Branches=CrueFactoryDao.remplirPersistanceAvecBrancheDRSO(data,listeMessageError); //-- etape 3: on remplit les infso des casiers --// - Casiers=CrueDaoFillInfos.remplirPersistanceAvecCasierDRSO(data,listeMessageError); + Casiers=CrueFactoryDao.remplirPersistanceAvecCasierDRSO(data,listeMessageError); //-- etape 4: on remplit les infso des sections --// - Sections=CrueDaoFillInfos.remplirPersistanceAvecSectionsDRSO(data,listeMessageError); + Sections=CrueFactoryDao.remplirPersistanceAvecSectionsDRSO(data,listeMessageError); @@ -72,23 +72,23 @@ } @Override - public List<EMH> fillInfosWithPersistant(List<String> listeMessageError) { + public List<EMH> fillInfosWithPersistant(Object data,List<String> listeMessageError) { List<EMH> listeCompleteEMH=new ArrayList<EMH>(); //-- etape 1: on remplit les infso des noeuds --// - List<EMH> listeNoeuds=CrueDaoFillInfos.remplirNoeudAvecPersistanceDRSO(Noeuds,listeMessageError); + List<EMH> listeNoeuds=CrueFactoryDao.remplirNoeudAvecPersistanceDRSO(Noeuds,listeMessageError); //-- etape 2: les casiers --// - List<EMH> listeCasiers=CrueDaoFillInfos.remplirCasierAvecPersistanceDRSO(Casiers, listeNoeuds,listeMessageError); + List<EMH> listeCasiers=CrueFactoryDao.remplirCasierAvecPersistanceDRSO(Casiers, listeNoeuds,listeMessageError); //-- etape 3: les branches et les sections de bransche --// - List<EMH> listeBranches=CrueDaoFillInfos.remplirBrancheAvecPersistanceDRSO(Branches, listeNoeuds,listeMessageError); + List<EMH> listeBranches=CrueFactoryDao.remplirBrancheAvecPersistanceDRSO(Branches, listeNoeuds,listeMessageError); //-- etape 3: les sections a partir des sections cr\xE9es lors du remplissage des branches --// - List<EMH> listeSections= CrueDaoFillInfos.remplirSectionsAvecPersistanceDRSO(Sections, listeBranches,listeMessageError); + List<EMH> listeSections= CrueFactoryDao.remplirSectionsAvecPersistanceDRSO(Sections, listeBranches,listeMessageError); Deleted: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFillInfos.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFillInfos.java 2009-03-06 14:58:09 UTC (rev 4515) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFillInfos.java 2009-03-06 18:45:46 UTC (rev 4516) @@ -1,566 +0,0 @@ -package main.java.org.fudaa.dodico.crue.dao; - -import java.awt.Point; -import java.util.ArrayList; -import java.util.List; - -import org.fudaa.ebli.geometrie.GrPoint; -import org.fudaa.ebli.ressource.EbliResource; - -import com.lowagie.text.Section; - -import main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDRSO.*; -import main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDFRT.*; -import main.java.org.fudaa.dodico.crue.metier.emh.CatEMHBranche; -import main.java.org.fudaa.dodico.crue.metier.emh.CatEMHCasier; -import main.java.org.fudaa.dodico.crue.metier.emh.CatEMHNoeud; -import main.java.org.fudaa.dodico.crue.metier.emh.CatEMHSection; -import main.java.org.fudaa.dodico.crue.metier.emh.DonFrt; -import main.java.org.fudaa.dodico.crue.metier.emh.EMH; -import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheBarrageFilEau; -import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheBarrageGenerique; -import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheBarrageRhone; -import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheEnchainement; -import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheNiveauxAssocies; -import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheOrifice; -import main.java.org.fudaa.dodico.crue.metier.emh.EMHBranchePdc; -import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheSaintVenant; -import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheSeuilLongitudinale; -import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheSeuilTransversal; -import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheStrickler; -import main.java.org.fudaa.dodico.crue.metier.emh.EMHCasierMNT; -import main.java.org.fudaa.dodico.crue.metier.emh.EMHCasierProfil; -import main.java.org.fudaa.dodico.crue.metier.emh.EMHSectionIdem; -import main.java.org.fudaa.dodico.crue.metier.emh.EMHSectionInterpolee; -import main.java.org.fudaa.dodico.crue.metier.emh.EMHSectionProfil; -import main.java.org.fudaa.dodico.crue.metier.emh.EMHSectionSansGeometrie; -import main.java.org.fudaa.dodico.crue.metier.emh.StriRefC; -import main.java.org.fudaa.dodico.crue.metier.emh.StriRefH; -import main.java.org.fudaa.dodico.crue.metier.emh.StriRefZ; - -/** - * Classe qui se charge de remplir les structures DAO avec els donn\xE9es m\xE9tier. - * @author Adrien Hadoux - * - */ -public class CrueDaoFillInfos { - - /** - * Methode qui remplit une arrayList d'objets persistants qui constituent la premiere partie du fichier DRSO: les Noeuds. - * @param data - * @return - */ - public static List remplirPersistanceAvecNoeudDRSO(List<EMH> data,List<String> listeMessageError){ - List listePersistante=new ArrayList(); - if(data==null || data.size()==0){ - listeMessageError.add(CrueRessource.getS("Noeuds: la liste est vide.")); - }else - for(EMH emh:data ){ - if(emh instanceof CatEMHNoeud){ - CatEMHNoeud noeud=(CatEMHNoeud) emh; - NoeudNiveauContinu noeudPersist=new NoeudNiveauContinu(); - noeudPersist.Nom=noeud.getNom(); - listePersistante.add(noeudPersist); - } - } - return listePersistante; - } - - - /** - * Methode qui remplit une arrayList d'objets m\xE9tier EMH noeuds a partir des donn\xE9es persistantes qui constituent la premiere partie du fichier DRSO: les Noeuds. - * @param data - * @return - */ - public static List<EMH> remplirNoeudAvecPersistanceDRSO(List listePersistants,List<String> listeMessageError ){ - List<EMH> listeEMH=new ArrayList(); - - if(listePersistants==null || listePersistants.size()==0){ - listeMessageError.add(CrueRessource.getS("Noeuds: la liste est vide.")); - }else - for(Object persist:listePersistants ){ - if(persist instanceof NoeudNiveauContinu){ - NoeudNiveauContinu noeudPersist=(NoeudNiveauContinu) persist; - CatEMHNoeud noeud=new CatEMHNoeud(noeudPersist.Nom); - listeEMH.add(noeud); - } - } - return listeEMH; - } - - - - /** - * Methode qui remplit une arrayList d'objets persistants qui constituent la deuxieme partie du fichier DRSO: les Branches. - * @param data - * @return - */ - public static List remplirPersistanceAvecBrancheDRSO(List<EMH> data,List<String> listeMessageError){ - List listePersistante=new ArrayList(); - if(data==null || data.size()==0){ - listeMessageError.add(CrueRessource.getS("Branches: la liste est vide.")); - }else - for(EMH emh:data ){ - if(emh instanceof CatEMHBranche){ - CatEMHBranche branche=(CatEMHBranche) emh; - BrancheAbstract branchePersist=null; - if (branche instanceof EMHBrancheBarrageFilEau) { - EMHBrancheBarrageFilEau new_name = (EMHBrancheBarrageFilEau) branche; - branchePersist=new BrancheBarrageFilEau(); - }else if (branche instanceof EMHBrancheBarrageGenerique) { - EMHBrancheBarrageGenerique new_name = (EMHBrancheBarrageGenerique) branche; - branchePersist=new BrancheBarrageGenerique(); - }else if (branche instanceof EMHBrancheBarrageRhone) { - EMHBrancheBarrageRhone new_name = (EMHBrancheBarrageRhone) branche; - branchePersist=new BrancheBarrageRhone(); - }else if (branche instanceof EMHBrancheEnchainement) { - EMHBrancheEnchainement new_name = (EMHBrancheEnchainement) branche; - branchePersist=new BrancheEnchainement(); - }else if (branche instanceof EMHBrancheNiveauxAssocies) { - EMHBrancheNiveauxAssocies new_name = (EMHBrancheNiveauxAssocies) branche; - branchePersist=new BrancheNiveauxAssocies(); - }else if (branche instanceof EMHBrancheOrifice) { - EMHBrancheOrifice new_name = (EMHBrancheOrifice) branche; - branchePersist=new BrancheOrifice(); - }else if (branche instanceof EMHBranchePdc) { - EMHBranchePdc new_name = (EMHBranchePdc) branche; - branchePersist=new BranchePdc(); - }else if (branche instanceof EMHBrancheSaintVenant) { - EMHBrancheSaintVenant new_name = (EMHBrancheSaintVenant) branche; - branchePersist=new BrancheSaintVenant(); - }else if (branche instanceof EMHBrancheSeuilLongitudinale) { - EMHBrancheSeuilLongitudinale new_name = (EMHBrancheSeuilLongitudinale) branche; - branchePersist=new BrancheSeuilLateral(); - }else if (branche instanceof EMHBrancheSeuilTransversal) { - EMHBrancheSeuilTransversal new_name = (EMHBrancheSeuilTransversal) branche; - branchePersist=new BrancheSeuilTransversal(); - }else if (branche instanceof EMHBrancheStrickler) { - EMHBrancheStrickler new_name = (EMHBrancheStrickler) branche; - branchePersist=new BrancheStrickler(); - } - - if(branchePersist!=null){ - //-- commun --// - BrancheAbstract br=(BrancheAbstract) branchePersist; - br.Active=branche.isActive(); - br.Nom=branche.getNom(); - if(branche.getNoeudAmont()!=null) - br.NdAm=new NdAm(branche.getNoeudAmont().getNom()); - if(branche.getNoeudAval()!=null) - br.NdAv=new NdAv(branche.getNoeudAval().getNom()); - //-- on remplit les sections persistantes avec celle de la branche --// - br.Sections=CrueDaoFillInfos.remplirPersistanceAvecSectionsBrancheDRSO(branche.getListeSections(),listeMessageError); - listePersistante.add(br); - } - } - } - return listePersistante; - } - - - public static List<EMH> remplirBrancheAvecPersistanceDRSO(List listePersistante,List<EMH> listeNoeuds,List<String> listeMessageError){ - List<EMH> data=new ArrayList(); - if(listePersistante==null || listePersistante.size()==0){ - listeMessageError.add(CrueRessource.getS("Branches: la liste est vide.")); - }else - for(Object objet:listePersistante ){ - if(objet instanceof BrancheAbstract){ - CatEMHBranche branche=null; - BrancheAbstract branchePersist=(BrancheAbstract) objet; - String nom=branchePersist.Nom; - if (branchePersist instanceof BrancheBarrageFilEau) { - branche = new EMHBrancheBarrageFilEau(nom); - - }else if (branchePersist instanceof BrancheBarrageGenerique) { - branche = new EMHBrancheBarrageGenerique(nom); - - }else if (branchePersist instanceof BrancheBarrageRhone) { - branche = new EMHBrancheBarrageRhone(nom); - - }else if (branchePersist instanceof BrancheEnchainement) { - branche = new EMHBrancheEnchainement(nom); - - }else if (branchePersist instanceof BrancheNiveauxAssocies) { - branche = new EMHBrancheNiveauxAssocies(nom); - - }else if (branchePersist instanceof BrancheOrifice) { - branche = new EMHBrancheOrifice(nom); - - }else if (branchePersist instanceof BranchePdc) { - branche = new EMHBranchePdc(nom); - - }else if (branchePersist instanceof BrancheSaintVenant) { - branche = new EMHBrancheSaintVenant(nom); - - }else if (branchePersist instanceof BrancheSeuilLateral) { - branche = new EMHBrancheSeuilLongitudinale(nom); - - }else if (branchePersist instanceof BrancheSeuilTransversal) { - branche = new EMHBrancheSeuilTransversal(nom); - - }else if (branchePersist instanceof BrancheStrickler) { - branche = new EMHBrancheStrickler(nom); - - } - - if(branche!=null){ - //-- commun --// - - branche.setActive(branchePersist.Active); - //branche.setNom(branchePersist.Nom); - if(branchePersist.NdAm!=null){ - CatEMHNoeud noeudAmont=CatEMHNoeud.findByReference(branchePersist.NdAm.NomRef, listeNoeuds); - if(noeudAmont!=null) - branche.setNoeudAmont(noeudAmont); - else - listeMessageError.add(CrueRessource.getS("Branches: Impossible de trouver le noeud avec la r\xE9f\xE9rence "+branchePersist.NdAm.NomRef)); - }else - listeMessageError.add(CrueRessource.getS("Branches: Il n'y a pas de noeud amont pour la branche "+branche.getNom())); - if(branchePersist.NdAv!=null){ - CatEMHNoeud noeudAval=CatEMHNoeud.findByReference(branchePersist.NdAv.NomRef, listeNoeuds); - if(noeudAval!=null) - branche.setNoeudAval(noeudAval); - else - listeMessageError.add(CrueRessource.getS("Branches: Impossible de trouver le noeud avec la r\xE9f\xE9rence "+branchePersist.NdAv.NomRef)); - }else - listeMessageError.add(CrueRessource.getS("Branches: Il n'y a pas de noeud aval pour la branche "+branche.getNom())); - - //-- on remplit les sections persistantes avec celle de la branche --// - if(branchePersist.Sections!=null) - branche.setListeSections(CrueDaoFillInfos.remplirSectionsBrancheAvecPersistanceDRSO(branchePersist.Sections,listeMessageError)); - - - data.add(branche); - } - } - } - return data; - } - - /** - * Methode qui remplit une arrayList d'objets persistants qui constituent la troisi\xE8me partie du fichier DRSO: les Casier. - * @param data - * @return - */ - public static List remplirPersistanceAvecCasierDRSO(List<EMH> data,List<String> listeMessageError){ - List listePersistante=new ArrayList(); - for(EMH emh:data ){ - if(emh instanceof CatEMHCasier){ - CatEMHCasier casier=(CatEMHCasier)emh; - CasierAbstract casierPersist=null; - if(casier instanceof EMHCasierMNT){ - casierPersist=new CasierMNT(); - }else if(casier instanceof EMHCasierProfil){ - casierPersist= new CasierProfil(); - EMHCasierProfil casierProfil=(EMHCasierProfil) casier; - - ((CasierProfil)casierPersist).Profil= new ReferenceProfil(); - ((CasierProfil)casierPersist).Profil.NomRef=casierProfil.getNomProfil(); - } - //-- commun --// - if(casierPersist!=null){ - casierPersist.Active=casier.isActive(); - if(casier.getNoeud()!=null) - casierPersist.Noeud=new ReferenceNoeud(casier.getNoeud().getNom()); - casierPersist.Nom=casier.getNom(); - listePersistante.add(casierPersist); - } - - - } - } - - return listePersistante; - } - - - /** - * Methode qui remplit une arrayList d'objets m\xE9tier EMH casier a partir des donn\xE9es persistantes qui constituent a troisi\xE8me partie du fichier DRSO: les Casier. - * @param data - * @return - */ - public static List<EMH> remplirCasierAvecPersistanceDRSO(List listePersistants,List<EMH> listeNoeuds ,List<String> listeMessageError){ - List<EMH> listeEMH=new ArrayList(); - if(listePersistants==null || listePersistants.size()==0){ - listeMessageError.add(CrueRessource.getS("Casiers: la liste est vide.")); - }else - for(Object persist:listePersistants ){ - if(persist instanceof CasierAbstract){ - CasierAbstract casierPersist=(CasierAbstract) persist; - String nom=casierPersist.Nom; - //-- on d\xE9clare une version abstraite EMH m\xE9tier du type --// - CatEMHCasier casier=null; - - //-- on recherche sa sp\xE9cialisation --// - if(casierPersist instanceof CasierProfil){ - casier=new EMHCasierProfil(nom); - if(((CasierProfil)casierPersist).Profil!=null) - ((EMHCasierProfil)casier).setNomProfil(((CasierProfil)casierPersist).Profil.NomRef); - }else if(casierPersist instanceof CasierMNT){ - casier=new EMHCasierMNT(nom); - } - - //-- commun aux objets --// - if(casier!=null){ - casier.setActive(casierPersist.Active); - if(casierPersist.Noeud!=null){ - String reference=casierPersist.Noeud.NomRef; - - - CatEMHNoeud noeudRef=CatEMHNoeud.findByReference(reference, listeNoeuds); - if(noeudRef!=null) - casier.setNoeud(noeudRef); - else - listeMessageError.add(CrueRessource.getS("Casier: Impossible de trouver le noeud avec la r\xE9f\xE9rence "+reference)); - } else - listeMessageError.add(CrueRessource.getS("Casier: Il n'y a pas de noeud pour le casier "+casier.getNom())); - - listeEMH.add(casier); - } - } - } - return listeEMH; - } - - - - /** - * Methode qui remplit une arrayList d'objets persistants qui constituent la quatri\xE8me partie du fichier DRSO: les Sections-references. - * @param data - * @return - */ - public static List remplirPersistanceAvecSectionsDRSO(List<EMH> data,List<String> listeMessageError){ - List listePersistante=new ArrayList(); - for(EMH emh:data ){ - if(emh instanceof CatEMHSection){ - CatEMHSection section=(CatEMHSection)emh; - SectionAbstract sectionPersist=null; - if(section instanceof EMHSectionIdem){ - sectionPersist=new SectionRefIdem(); - }else - if(section instanceof EMHSectionInterpolee){ - sectionPersist=new SectionRefInterpolee(); - }else - if(section instanceof EMHSectionProfil){ - sectionPersist=new SectionRefProfil(); - }else - if(section instanceof EMHSectionSansGeometrie){ - sectionPersist=new SectionRefSansGeometrie(); - } - - //-- commun --// - if(sectionPersist!=null){ - sectionPersist.NomRef=section.getNom(); - listePersistante.add(sectionPersist); - } - } - } - return listePersistante; - } - - /** - * Methode qui remplit une arrayList d'objets m\xE9tier EMH sections de branches a partir des donn\xE9es persistantes qui constituent la partie interne d'une partie Branche du fichier DRSO: les Sections. - * @param data - * @return - */ - public static List<CatEMHSection> remplirSectionsBrancheAvecPersistanceDRSO(List listePersistantsBranches,List<String> listeMessageError){ - List<CatEMHSection> listeEMH=new ArrayList<CatEMHSection>(); - if(listePersistantsBranches==null || listePersistantsBranches.size()==0){ - listeMessageError.add(CrueRessource.getS("Sections Branches: la liste est vide.")); - }else - for(Object persist:listePersistantsBranches ){ - if(persist instanceof SectionBrancheAbstract){ - SectionBrancheAbstract sectionPersist=(SectionBrancheAbstract) persist; - - //-- on d\xE9clare une version abstraite EMH m\xE9tier du type --// - CatEMHSection section=null; - String nom=sectionPersist.NomRef; - //-- on recherche sa sp\xE9cialisation --// - if(sectionPersist instanceof SectionIdem){ - section=new EMHSectionIdem(nom); - - }else if(sectionPersist instanceof SectionInterpolee){ - section=new EMHSectionInterpolee(nom); - }else if(sectionPersist instanceof SectionProfil){ - section=new EMHSectionProfil(nom); - }else if(sectionPersist instanceof SectionSansGeometrie){ - section=new EMHSectionSansGeometrie(nom); - } - - //-- commun aux objets --// - if(section!=null){ - - if(sectionPersist.Pos!=null) - section.setPosition(sectionPersist.Pos); - section.setXp(sectionPersist.Xp); - listeEMH.add(section); - } - } - } - return listeEMH; - } - - /** - * Methode qui remplit une arrayList d'objets m\xE9tier EMH sections a partir des donn\xE9es persistantes qui constituent a quatrieme partie du fichier DRSO: les Sections. - * @param data - * @return - */ - public static List<EMH> remplirSectionsAvecPersistanceDRSO(List listePersistantsSection,List<EMH> listeBranches,List<String> listeMessageError){ - List<EMH> listeEMH=new ArrayList<EMH>(); - if(listePersistantsSection==null || listePersistantsSection.size()==0){ - listeMessageError.add(CrueRessource.getS("Sections : la liste est vide.")); - }else - for(Object persist:listePersistantsSection ){ - if(persist instanceof SectionAbstract){ - SectionAbstract sectionPersist=(SectionAbstract) persist; - - //-- on d\xE9clare une version abstraite EMH m\xE9tier du type --// - CatEMHSection section=null; - String reference=sectionPersist.NomRef; - section=CatEMHSection.findByReferenceFromBrancheOrSectionEMH(reference, listeBranches); - - - - if(section!=null) - listeEMH.add(section); - else - listeMessageError.add(CrueRessource.getS("Sections : Impossible de trouver la section de r\xE9f\xE9rence "+reference)); - } - } - return listeEMH; - } - - - /** - * Remplit les don\xE9nes persistantes avec la liste des sections d'une branche. - * Remplit toutes les donn\xE9es associ\xE9es aux sections - * @param data - * @return - */ - public static List remplirPersistanceAvecSectionsBrancheDRSO(List<CatEMHSection> data,List<String> listeMessageError){ - List listePersistante=new ArrayList(); - for(EMH emh:data ){ - if(emh instanceof CatEMHSection){ - CatEMHSection section=(CatEMHSection)emh; - SectionBrancheAbstract sectionPersist=null; - if(section instanceof EMHSectionIdem){ - sectionPersist=new SectionIdem(); - }else - if(section instanceof EMHSectionInterpolee){ - sectionPersist=new SectionInterpolee(); - }else - if(section instanceof EMHSectionProfil){ - sectionPersist=new SectionProfil(); - }else - if(section instanceof EMHSectionSansGeometrie){ - sectionPersist=new SectionSansGeometrie(); - } - - //-- commun --// - if(sectionPersist!=null){ - sectionPersist.NomRef=section.getNom(); - - sectionPersist.Pos=section.getPosition(); - sectionPersist.Xp=section.getXp(); - - - listePersistante.add(sectionPersist); - } - } - } - return listePersistante; - } - - /** - * remplir le fichier DFRT avec les frottemetns - * @param data - * @return - */ - public static List<StriRefPersist> remplirPersistanceAvecFrottemetnsDFRT(List<DonFrt> data,List<String> listeMessageError){ - List<StriRefPersist> listeFrottement=new ArrayList<StriRefPersist>(); - for(DonFrt frt:data){ - StriRefPersist persist=null; - if(frt instanceof StriRefC) - persist=new StriRefCPersist(frt.getNom()); - else - if(frt instanceof StriRefH) - persist=new StriRefHPersist(frt.getNom()); - else - if(frt instanceof StriRefZ) - persist=new StriRefZPersist(frt.getNom()); - - //-- commun --// - if(persist!=null){ - if(frt.getListePoints()!=null && frt.getListePoints().size()>0){ - persist.listePoints=new ArrayList<StringBuffer>(); - for(GrPoint pt:frt.getListePoints()){ - StringBuffer buff=new StringBuffer(""+pt.x_+" "+pt.y_); - persist.listePoints.add(buff); - } - } - listeFrottement.add(persist); - } - - } - return listeFrottement; - } - - /** - * remplir le fichier DFRT avec les frottemetns - * @param data - * @return - */ - public static List<DonFrt> remplirFrottemetnsAvecPersistanceDFRT(List<StriRefPersist> persistListe,List<String> listeMessageError){ - List<DonFrt> data=new ArrayList<DonFrt>(); - if(persistListe==null || persistListe.size()==0){ - listeMessageError.add(CrueRessource.getS("Frottements : la liste est vide.")); - }else - for(StriRefPersist persist:persistListe){ - DonFrt frt=null; - if(persist instanceof StriRefCPersist) - frt=new StriRefC(persist.Nom); - else - if(persist instanceof StriRefHPersist) - frt=new StriRefH(persist.Nom); - else - if(persist instanceof StriRefZPersist) - frt=new StriRefZ(persist.Nom); - - //-- commun --// - if(persist!=null){ - if(persist.listePoints!=null){ - - List<GrPoint> listePoints=new ArrayList<GrPoint>(); - for(StringBuffer buff:persist.listePoints){ - - int indiceCesure=buff.lastIndexOf(" "); - String val1=buff.substring(0, indiceCesure); - String val2=buff.substring(indiceCesure+1, buff.length()); - double x=0; - try{ - x=Double.parseDouble(val1); - - }catch(NumberFormatException e){ - listeMessageError.add(CrueRessource.getS("Frottement: "+frt.getNom()+": impossible de r\xE9cup\xE9rer le r\xE9el du contenu: "+buff)); - } - double y=0; - try{ - y=Double.parseDouble(val2); - }catch(NumberFormatException e){ - listeMessageError.add(CrueRessource.getS("Frottement: "+frt.getNom()+": impossible de r\xE9cup\xE9rer le r\xE9el du contenu: "+buff)); - } - listePoints.add(new GrPoint(x,y,0)); - - } - - - frt.setListePoints(listePoints); - } - data.add(frt); - } - - } - return data; - } - -} Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoOPTG.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoOPTG.java 2009-03-06 14:58:09 UTC (rev 4515) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoOPTG.java 2009-03-06 18:45:46 UTC (rev 4516) @@ -54,7 +54,7 @@ } - public ElemSeuil fillInfosWithPersistant(List<String> listeMessageError) { + public ElemSeuil fillInfosWithPersistant(Object data,List<String> listeMessageError) { // TODO Auto-generated method stub return null; } Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoParsing.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoParsing.java 2009-03-06 14:58:09 UTC (rev 4515) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoParsing.java 2009-03-06 18:45:46 UTC (rev 4516) @@ -1,14 +1,24 @@ package main.java.org.fudaa.dodico.crue.dao; +import java.io.BufferedReader; import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; +import java.io.OutputStreamWriter; import java.util.ArrayList; +import java.util.Date; import java.util.List; +import org.fudaa.ctulu.CtuluLibFile; + +import main.java.org.fudaa.dodico.crue.dao.validatorXML.ValidatorXml; import main.java.org.fudaa.dodico.crue.metier.emh.ElemSeuil; import com.memoire.fu.FuLog; @@ -23,7 +33,7 @@ public abstract class CrueDaoParsing<T> { public String VersionCrue="0.0"; - public String Commentaire="G\xE9n\xE9r\xE9 par Fudaa "; + public String Commentaire="G\xE9n\xE9r\xE9 par Fudaa le "+new Date(System.currentTimeMillis()); /** * Initiazlise le parser xstream avec les bons alias des noms de balises. * @return @@ -39,10 +49,11 @@ /** * Cr\xE9e une structure m\xE9tier \xE0 partir des informations persistantes. - * Utiliser poru le remplissage de la structure m\xE9tier apr\xE8s lecture du fichier xml. + * Utiliser pour le remplissage de la structure m\xE9tier apr\xE8s lecture du fichier xml. + * Utilise en plus des donn\xE9es li\xE9es. * @return */ - abstract T fillInfosWithPersistant(List<String> listeMessageError); + abstract T fillInfosWithPersistant(Object dataLinked,List<String> listeMessageError); /** * Execute la persistance des donn\xE9es dans le fichier donn\xE9 en parametre. @@ -51,10 +62,13 @@ public boolean persistData(File fichier,List<String> listeMessageError) { boolean isOk=true; ObjectOutputStream out=null; + OutputStreamWriter writer=null; try { - out = initXmlParser().createObjectOutputStream(new FileWriter(fichier),"Fichier"); - //--on enregistre la donn\xE9e au bon format --// - out.writeObject(this); + writer=new OutputStreamWriter(new FileOutputStream(fichier),"UTF-8"); + XStream parser=initXmlParser(); + String contentXml=parser.toXML(this); + contentXml=ValidatorXml.enteteXml+"\n"+contentXml; + writer.write(contentXml); } catch (IOException e) { // TODO Auto-generated catch block FuLog.debug(e.getMessage()); @@ -63,7 +77,8 @@ } finally{ try { - out.close(); + //out.close(); + writer.close(); return isOk; } catch (IOException e) { // TODO Auto-generated catch block @@ -79,40 +94,27 @@ * @param fichier * @return */ - public T getPersistData(File fichier,List<String> listeMessageError){ + public T getPersistData(Object dataLinked,File fichier,List<String> listeMessageError){ //-- la data a r\xE9cup\xE9rer --// T newData=null; - boolean isOk=true; - ObjectInputStream in=null; try { - in = initXmlParser().createObjectInputStream(new FileReader(fichier)); + XStream parser=initXmlParser(); + String content=CtuluLibFile.litFichierTexte(fichier); //--on charge la donn\xE9e persistante au bon format --// - CrueDaoParsing<T> dataPersistante=(CrueDaoParsing<T>) in.readObject(); + CrueDaoParsing<T> dataPersistante=(CrueDaoParsing<T>)parser.fromXML(content); //-- on genere la donn\xE9es m\xE9tier a partir de la donnee persistante--// - newData=dataPersistante.fillInfosWithPersistant(listeMessageError); + newData=dataPersistante.fillInfosWithPersistant(dataLinked,listeMessageError); } catch (IOException e) { // TODO Auto-generated catch block FuLog.debug(e.getMessage()); listeMessageError.add(e.getMessage()); - isOk=false; - } catch (ClassNotFoundException e) { - // TODO Auto-generated catch block - FuLog.debug(e.getMessage()); - listeMessageError.add(e.getMessage()); - isOk=false; - } + + } finally{ - try { - in.close(); return newData; - } catch (IOException e) { - // TODO Auto-generated catch block - FuLog.debug(e.getMessage()); - listeMessageError.add(e.getMessage()); - } } - return null; + } } Copied: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueFactoryDao.java (from rev 4512, branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFillInfos.java) =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueFactoryDao.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueFactoryDao.java 2009-03-06 18:45:46 UTC (rev 4516) @@ -0,0 +1,773 @@ +package main.java.org.fudaa.dodico.crue.dao; + + +import java.util.ArrayList; +import java.util.List; +import org.fudaa.ebli.geometrie.GrPoint; +import main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDRSO.*; +import main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDFRT.*; +import main.java.org.fudaa.dodico.crue.metier.emh.CatEMHBranche; +import main.java.org.fudaa.dodico.crue.metier.emh.CatEMHCasier; +import main.java.org.fudaa.dodico.crue.metier.emh.CatEMHNoeud; +import main.java.org.fudaa.dodico.crue.metier.emh.CatEMHSection; +import main.java.org.fudaa.dodico.crue.metier.emh.DonFrt; +import main.java.org.fudaa.dodico.crue.metier.emh.EMH; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheBarrageFilEau; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheBarrageGenerique; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheBarrageRhone; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheEnchainement; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheNiveauxAssocies; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheOrifice; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBranchePdc; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheSaintVenant; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheSeuilLongitudinale; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheSeuilTransversal; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheStrickler; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHCasierMNT; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHCasierProfil; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHSectionIdem; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHSectionInterpolee; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHSectionProfil; +import main.java.org.fudaa.dodico.crue.metier.emh.EMHSectionSansGeometrie; +import main.java.org.fudaa.dodico.crue.metier.emh.StriRefC; +import main.java.org.fudaa.dodico.crue.metier.emh.StriRefH; +import main.java.org.fudaa.dodico.crue.metier.emh.StriRefZ; + +/** + * Factory qui se charge de remplir les structures DAO avec les donn\xE9es m\xE9tier et inversement. + * @author Adrien Hadoux + * + */ +public class CrueFactoryDao { + + /** + * Methode qui remplit une arrayList d'objets persistants qui constituent la premiere partie du fichier DRSO: les Noeuds. + * @param data + * @return + */ + public static List remplirPersistanceAvecNoeudDRSO(List<EMH> data,List<String> listeMessageError){ + List listePersistante=new ArrayList(); + if(data==null || data.size()==0){ + listeMessageError.add(CrueRessource.getS("Noeuds: la liste est vide.")); + }else + for(EMH emh:data ){ + if(emh instanceof CatEMHNoeud){ + CatEMHNoeud noeud=(CatEMHNoeud) emh; + NoeudNiveauContinu noeudPersist=new NoeudNiveauContinu(); + noeudPersist.Nom=noeud.getNom(); + listePersistante.add(noeudPersist); + } + } + return listePersistante; + } + + + /** + * Methode qui remplit une arrayList d'objets m\xE9tier EMH noeuds a partir des donn\xE9es persistantes qui constituent la premiere partie du fichier DRSO: les Noeuds. + * @param data + * @return + */ + public static List<EMH> remplirNoeudAvecPersistanceDRSO(List listePersistants,List<String> listeMessageError ){ + List<EMH> listeEMH=new ArrayList(); + + if(listePersistants==null || listePersistants.size()==0){ + listeMessageError.add(CrueRessource.getS("Noeuds: la liste est vide.")); + }else + for(Object persist:listePersistants ){ + if(persist instanceof NoeudNiveauContinu){ + NoeudNiveauContinu noeudPersist=(NoeudNiveauContinu) persist; + CatEMHNoeud noeud=new CatEMHNoeud(noeudPersist.Nom); + listeEMH.add(noeud); + } + } + return listeEMH; + } + + + + /** + * Methode qui remplit une arrayList d'objets persistants qui constituent la deuxieme partie du fichier DRSO: les Branches. + * @param data + * @return + */ + public static List remplirPersistanceAvecBrancheDRSO(List<EMH> data,List<String> listeMessageError){ + List listePersistante=new ArrayList(); + if(data==null || data.size()==0){ + listeMessageError.add(CrueRessource.getS("Branches: la liste est vide.")); + }else + for(EMH emh:data ){ + if(emh instanceof CatEMHBranche){ + CatEMHBranche branche=(CatEMHBranche) emh; + BrancheAbstract branchePersist=null; + if (branche instanceof EMHBrancheBarrageFilEau) { + EMHBrancheBarrageFilEau new_name = (EMHBrancheBarrageFilEau) branche; + branchePersist=new BrancheBarrageFilEau(); + }else if (branche instanceof EMHBrancheBarrageGenerique) { + EMHBrancheBarrageGenerique new_name = (EMHBrancheBarrageGenerique) branche; + branchePersist=new BrancheBarrageGenerique(); + }else if (branche instanceof EMHBrancheBarrageRhone) { + EMHBrancheBarrageRhone new_name = (EMHBrancheBarrageRhone) branche; + branchePersist=new BrancheBarrageRhone(); + }else if (branche instanceof EMHBrancheEnchainement) { + EMHBrancheEnchainement new_name = (EMHBrancheEnchainement) branche; + branchePersist=new BrancheEnchainement(); + }else if (branche instanceof EMHBrancheNiveauxAssocies) { + EMHBrancheNiveauxAssocies new_name = (EMHBrancheNiveauxAssocies) branche; + branchePersist=new BrancheNiveauxAssocies(); + }else if (branche instanceof EMHBrancheOrifice) { + EMHBrancheOrifice new_name = (EMHBrancheOrifice) branche; + branchePersist=new BrancheOrifice(); + }else if (branche instanceof EMHBranchePdc) { + EMHBranchePdc new_name = (EMHBranchePdc) branche; + branchePersist=new BranchePdc(); + }else if (branche instanceof EMHBrancheSaintVenant) { + EMHBrancheSaintVenant new_name = (EMHBrancheSaintVenant) branche; + branchePersist=new BrancheSaintVenant(); + }else if (branche instanceof EMHBrancheSeuilLongitudinale) { + EMHBrancheSeuilLongitudinale new_name = (EMHBrancheSeuilLongitudinale) branche; + branchePersist=new BrancheSeuilLateral(); + }else if (branche instanceof EMHBrancheSeuilTransversal) { + EMHBrancheSeuilTransversal new_name = (EMHBrancheSeuilTransversal) branche; + branchePersist=new BrancheSeuilTransversal(); + }else if (branche instanceof EMHBrancheStrickler) { + EMHBrancheStrickler new_name = (EMHBrancheStrickler) branche; + branchePersist=new BrancheStrickler(); + } + + if(branchePersist!=null){ + //-- commun --// + BrancheAbstract br=(BrancheAbstract) branchePersist; + br.Active=branche.isActive(); + br.Nom=branche.getNom(); + if(branche.getNoeudAmont()!=null) + br.NdAm=new NdAm(branche.getNoeudAmont().getNom()); + if(branche.getNoeudAval()!=null) + br.NdAv=new NdAv(branche.getNoeudAval().getNom()); + //-- on remplit les sections persistantes avec celle de la branche --// + br.Sections=CrueFactoryDao.remplirPersistanceAvecSectionsBrancheDRSO(branche.getListeSections(),listeMessageError); + listePersistante.add(br); + } + } + } + return listePersistante; + } + + + public static List<EMH> remplirBrancheAvecPersistanceDRSO(List listePersistante,List<EMH> listeNoeuds,List<String> listeMessageError){ + List<EMH> data=new ArrayList(); + if(listePersistante==null || listePersistante.size()==0){ + listeMessageError.add(CrueRessource.getS("Branches: la liste est vide.")); + }else + for(Object objet:listePersistante ){ + if(objet instanceof BrancheAbstract){ + CatEMHBranche branche=null; + BrancheAbstract branchePersist=(BrancheAbstract) objet; + String nom=branchePersist.Nom; + if (branchePersist instanceof BrancheBarrageFilEau) { + branche = new EMHBrancheBarrageFilEau(nom); + + }else if (branchePersist instanceof BrancheBarrageGenerique) { + branche = new EMHBrancheBarrageGenerique(nom); + + }else if (branchePersist instanceof BrancheBarrageRhone) { + branche = new EMHBrancheBarrageRhone(nom); + + }else if (branchePersist instanceof BrancheEnchainement) { + branche = new EMHBrancheEnchainement(nom); + + }else if (branchePersist instanceof BrancheNiveauxAssocies) { + branche = new EMHBrancheNiveauxAssocies(nom); + + }else if (branchePersist instanceof BrancheOrifice) { + branche = new EMHBrancheOrifice(nom); + + }else if (branchePersist instanceof BranchePdc) { + branche = new EMHBranchePdc(nom); + + }else if (branchePersist instanceof BrancheSaintVenant) { + branche = new EMHBrancheSaintVenant(nom); + + }else if (branchePersist instanceof BrancheSeuilLateral) { + branche = new EMHBrancheSeuilLongitudinale(nom); + + }else if (branchePersist instanceof BrancheSeuilTransversal) { + branche = new EMHBrancheSeuilTransversal(nom); + + }else if (branchePersist instanceof BrancheStrickler) { + branche = new EMHBrancheStrickler(nom); + + } + + if(branche!=null){ + //-- commun --// + + branche.setActive(branchePersist.Active); + //branche.setNom(branchePersist.Nom); + if(branchePersist.NdAm!=null){ + CatEMHNoeud noeudAmont=CatEMHNoeud.findByReference(branchePersist.NdAm.NomRef, listeNoeuds); + if(noeudAmont!=null) + branche.setNoeudAmont(noeudAmont); + else + listeMessageError.add(CrueRessource.getS("Branches: Impossible de trouver le noeud avec la r\xE9f\xE9rence "+branchePersist.NdAm.NomRef)); + }else + listeMessageError.add(CrueRessource.getS("Branches: Il n'y a pas de noeud amont pour la branche "+branche.getNom())); + if(branchePersist.NdAv!=null){ + CatEMHNoeud noeudAval=CatEMHNoeud.findByReference(branchePersist.NdAv.NomRef, listeNoeuds); + if(noeudAval!=null) + branche.setNoeudAval(noeudAval); + else + listeMessageError.add(CrueRessource.getS("Branches: Impossible de trouver le noeud avec la r\xE9f\xE9rence "+branchePersist.NdAv.NomRef)); + }else + listeMessageError.add(CrueRessource.getS("Branches: Il n'y a pas de noeud aval pour la branche "+branche.getNom())); + + //-- on remplit les sections persistantes avec celle de la branche --// + if(branchePersist.Sections!=null) + branche.setListeSections(CrueFactoryDao.remplirSectionsBrancheAvecPersistanceDRSO(branchePersist.Sections,listeMessageError)); + + + data.add(branche); + } + } + } + return data; + } + + /** + * Methode qui remplit une arrayList d'objets persistants qui constituent la troisi\xE8me partie du fichier DRSO: les Casier. + * @param data + * @return + */ + public static List remplirPersistanceAvecCasierDRSO(List<EMH> data,List<String> listeMessageError){ + List listePersistante=new ArrayList(); + for(EMH emh:data ){ + if(emh instanceof CatEMHCasier){ + CatEMHCasier casier=(CatEMHCasier)emh; + CasierAbstract casierPersist=null; + if(casier instanceof EMHCasierMNT){ + casierPersist=new CasierMNT(); + }else if(casier instanceof EMHCasierProfil){ + casierPersist= new CasierProfil(); + EMHCasierProfil casierProfil=(EMHCasierProfil) casier; + + ((CasierProfil)casierPersist).Profil= new ReferenceProfil(); + ((CasierProfil)casierPersist).Profil.NomRef=casierProfil.getNomProfil(); + } + //-- commun --// + if(casierPersist!=null){ + casierPersist.Active=casier.isActive(); + if(casier.getNoeud()!=null) + casierPersist.Noeud=new ReferenceNoeud(casier.getNoeud().getNom()); + casierPersist.Nom=casier.getNom(); + listePersistante.add(casierPersist); + } + + + } + } + + return listePersistante; + } + + + /** + * Methode qui remplit une arrayList d'objets m\xE9tier EMH casier a partir des donn\xE9es persistantes qui constituent a troisi\xE8me partie du fichier DRSO: les Casier. + * @param data + * @return + */ + public static List<EMH> remplirCasierAvecPersistanceDRSO(List listePersistants,List<EMH> listeNoeuds ,List<String> listeMessageError){ + List<EMH> listeEMH=new ArrayList(); + if(listePersistants==null || listePersistants.size()==0){ + listeMessageError.add(CrueRessource.getS("Casiers: la liste est vide.")); + }else + for(Object persist:listePersistants ){ + if(persist instanceof CasierAbstract){ + CasierAbstract casierPersist=(CasierAbstract) persist; + String nom=casierPersist.Nom; + //-- on d\xE9clare une version abstraite EMH m\xE9tier du type --// + CatEMHCasier casier=null; + + //-- on recherche sa sp\xE9cialisation --// + if(casierPersist instanceof CasierProfil){ + casier=new EMHCasierProfil(nom); + if(((CasierProfil)casierPersist).Profil!=null) + ((EMHCasierProfil)casier).setNomProfil(((CasierProfil)casierPersist).Profil.NomRef); + }else if(casierPersist instanceof CasierMNT){ + casier=new EMHCasierMNT(nom); + } + + //-- commun aux objets --// + if(casier!=null){ + casier.setActive(casierPersist.Active); + if(casierPersist.Noeud!=null){ + String reference=casierPersist.Noeud.NomRef; + + + CatEMHNoeud noeudRef=CatEMHNoeud.findByReference(reference, listeNoeuds); + if(noeudRef!=null) + casier.setNoeud(noeudRef); + else + listeMessageError.add(CrueRessource.getS("Casier: Impossible de trouver le noeud avec la r\xE9f\xE9rence "+reference)); + } else + listeMessageError.add(CrueRessource.getS("Casier: Il n'y a pas de noeud pour le casier "+casier.getNom())); + + listeEMH.add(casier); + } + } + } + return listeEMH; + } + + + + /** + * Methode qui remplit une arrayList d'objets persistants qui constituent la quatri\xE8me partie du fichier DRSO: les Sections-references. + * @param data + * @return + */ + public static List remplirPersistanceAvecSectionsDRSO(List<EMH> data,List<String> listeMessageError){ + List listePersistante=new ArrayList(); + for(EMH emh:data ){ + if(emh instanceof CatEMHSection){ + CatEMHSection section=(CatEMHSection)emh; + SectionAbstract sectionPersist=null; + if(section instanceof EMHSectionIdem){ + sectionPersist=new SectionRefIdem(); + }else + if(section instanceof EMHSectionInterpolee){ + sectionPersist=new SectionRefInterpolee(); + }else + if(section instanceof EMHSectionProfil){ + sectionPersist=new SectionRefProfil(); + }else + if(section instanceof EMHSectionSansGeometrie){ + sectionPersist=new SectionRefSansGeometrie(); + } + + //-- commun --// + if(sectionPersist!=null){ + sectionPersist.NomRef=section.getNom(); + listePersistante.add(sectionPersist); + } + } + } + return listePersistante; + } + + /** + * Methode qui remplit une arrayList d'objets m\xE9tier EMH sections de branches a partir des donn\xE9es persistantes qui constituent la partie interne d'une partie Branche du fichier DRSO: les Sections. + * @param data + * @return + */ + public static List<CatEMHSection> remplirSectionsBrancheAvecPersistanceDRSO(List listePersistantsBranches,List<String> listeMessageError){ + List<CatEMHSection> listeEMH=new ArrayList<CatEMHSection>(); + if(listePersistantsBranches==null || listePersistantsBranches.size()==0){ + listeMessageError.add(CrueRessource.getS("Sections Branches: la liste est vide.")); + }else + for(Object persist:listePersistantsBranches ){ + if(persist instanceof SectionBrancheAbstract){ + SectionBrancheAbstract sectionPersist=(SectionBrancheAbstract) persist; + + //-- on d\xE9clare une version abstraite EMH m\xE9tier du type --// + CatEMHSection section=null; + String nom=sectionPersist.NomRef; + //-- on recherche sa sp\xE9cialisation --// + if(sectionPersist instanceof SectionIdem){ + section=new EMHSectionIdem(nom); + + }else if(sectionPersist instanceof SectionInterpolee){ + section=new EMHSectionInterpolee(nom); + }else if(sectionPersist instanceof SectionProfil){ + section=new EMHSectionProfil(nom); + }else if(sectionPersist instanceof SectionSansGeometrie){ + section=new EMHSectionSansGeometrie(nom); + } + + //-- commun aux objets --// + if(section!=null){ + + if(sectionPersist.Pos!=null) + section.setPosition(sectionPersist.Pos); + section.setXp(sectionPersist.Xp); + listeEMH.add(section); + } + } + } + return listeEMH; + } + + /** + * Methode qui remplit une arrayList d'objets m\xE9tier EMH sections a partir des donn\xE9es persistantes qui constituent a quatrieme partie du fichier DRSO: les Sections. + * @param data + * @return + */ + public static List<EMH> remplirSectionsAvecPersistanceDRSO(List listePersistantsSection,List<EMH> listeBranches,List<String> listeMessageError){ + List<EMH> listeEMH=new ArrayList<EMH>(); + if(listePersistantsSection==null || listePersistantsSection.size()==0){ + listeMessageError.add(CrueRessource.getS("Sections : la liste est vide.")); + }else + for(Object persist:listePersistantsSection ){ + if(persist instanceof SectionAbstract){ + SectionAbstract sectionPersist=(SectionAbstract) persist; + + //-- on d\xE9clare une version abstraite EMH m\xE9tier du type --// + CatEMHSection section=null; + String reference=sectionPersist.NomRef; + section=CatEMHSection.findByReferenceFromBrancheOrSectionEMH(reference, listeBranches); + + + + if(section!=null) + listeEMH.add(section); + else + listeMessageError.add(CrueRessource.getS("Sections : Impossible de trouver la section de r\xE9f\xE9rence "+reference)); + } + } + return listeEMH; + } + + + /** + * Remplit les don\xE9nes persistantes avec la liste des sections d'une branche. + * Remplit toutes les donn\xE9es associ\xE9es aux sections + * @param data + * @return + */ + public static List remplirPersistanceAvecSectionsBrancheDRSO(List<CatEMHSection> data,List<String> listeMessageError){ + List listePersistante=new ArrayList(); + for(EMH emh:data ){ + if(emh instanceof CatEMHSection){ + CatEMHSection section=(CatEMHSection)emh; + SectionBrancheAbstract sectionPersist=null; + if(section instanceof EMHSectionIdem){ + sectionPersist=new SectionIdem(); + }else + if(section instanceof EMHSectionInterpolee){ + sectionPersist=new SectionInterpolee(); + }else + if(section instanceof EMHSectionProfil){ + sectionPersist=new SectionProfil(); + }else + if(section instanceof EMHSectionSansGeometrie){ + sectionPersist=new SectionSansGeometrie(); + } + + //-- commun --// + if(sectionPersist!=null){ + sectionPersist.NomRef=section.getNom(); + + sectionPersist.Pos=section.getPosition(); + sectionPersist.Xp=section.getXp(); + + + listePersistante.add(sectionPersist); + } + } + } + return listePersistante; + } + + /** + * remplir le fichier DFRT avec les frottemetns + * @param data + * @return + */ + public static List<StriRefPersist> remplirPersistanceAvecFrottemetnsDFRT(List<DonFrt> data,List<String> listeMessageError){ + List<StriRefPersist> listeFrottement=new ArrayList<StriRefPersist>(); + for(DonFrt frt:data){ + StriRefPersist persist=null; + if(frt instanceof StriRefC) + persist=new StriRefCPersist(frt.getNom()); + else + if(frt instanceof StriRefH) + persist=new StriRefHPersist(frt.getNom()); + else + if(frt instanceof StriRefZ) + persist=new StriRefZPersist(frt.getNom()); + + //-- commun --// + if(persist!=null){ + if(frt.getListePoints()!=null && frt.getListePoints().size()>0){ + persist.listePoints=new ArrayList<StringBuffer>(); + for(GrPoint pt:frt.getListePoints()){ + StringBuffer buff=new StringBuffer(""+pt.x_+" "+pt.y_); + persist.listePoints.add(buff); + } + } + listeFrottement.add(persist); + } + + } + return listeFrottement; + } + + /** + * remplir le fichier DFRT avec les frottemetns + * @param data + * @return + */ + public static List<DonFrt> remplirFrottemetnsAvecPersistanceDFRT(List<StriRefPersist> persistListe,List<String> listeMessageError){ + List<DonFrt> data=new ArrayList<DonFrt>(); + if(persistListe==null || persistListe.size()==0){ + listeMessageError.add(CrueRessource.getS("Frottements : la liste est vide.")); + }else + for(StriRefPersist persist:persistListe){ + DonFrt frt=null; + if(persist instanceof StriRefCPersist) + frt=new StriRefC(persist.Nom); + else + if(persist instanceof StriRefHPersist) + frt=new StriRefH(persist.Nom); + else + if(persist instanceof StriRefZPersist) + frt=new... [truncated message content] |