From: <had...@us...> - 2009-03-10 18:01:29
|
Revision: 4525 http://fudaa.svn.sourceforge.net/fudaa/?rev=4525&view=rev Author: hadouxad Date: 2009-03-10 18:01:18 +0000 (Tue, 10 Mar 2009) Log Message: ----------- Fichier DSCP 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/CrueDaoParsing.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/DaoStructuresFormatDRSO.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/metier/emh/CatEMHBranche.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHSection.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrt.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBrancheOrifice.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBrancheSaintVenant.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DonCalcSansPrtBrancheSeuilLateral.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/EMH.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/metier/emh/ElemOrifice.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/Loi.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/TestClasse.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/TestCrueDPTIFile.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/Modifications-Obligatoires.txt branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDSCP.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactory.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/DaoStructuresFormatDSCP.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/validatorXML/valideDRSO.xsd branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/validatorXML/valideDSCP.xsd branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/emh/DefaultEMHValues.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/fudaa/crue/CruePersistanceErrorManager.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/test/java/org/fudaa/fudaa/crue/TestCrueDSCPFile.java Removed 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/test/java/org/fudaa/fudaa/crue/CruePersistanceErrorManager.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-10 17:43:46 UTC (rev 4524) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Questions-ModelisationDonnees.txt 2009-03-10 18:01:18 UTC (rev 4525) @@ -15,6 +15,7 @@ <SectionProfil-ref> <SectionInterpolee-ref> ... + - Les lois, dans quels fichiers sont d\xE9crites les lois ? par exemple dans DSCP, pour les cas Pdc et BarrageFilEau, on a des lois, ou sont-elles d\xE9finies ? ***** FICHIERS XML CRUE 10***** - Fichier DRSO: @@ -41,5 +42,12 @@ - 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 ? - 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 + + +- Fichier DSCP: + + - Contenu des balises <branche>: + - Seules les balises <BrancheOrifice> contiennent des \xE9l\xE9ments <ElemOrifice> ? <BrancheOrifice> peuvent-elles contenir des balises <sections> ? + - Seules les balises <BrancheSeuilLateral> et <BrancheSeuilTransversal> contiennent des \xE9l\xE9ments <ElemSeuil> et pr\xE9c\xE9d\xE9 de <FormulePdc>? <BrancheSeuilLateral> et <BrancheSeuilTransversal> peuvent-elles contenir des balises <sections> ? + - Pour les balises <BranchesBarrageFilEau> et <BranchePDC>:Peut on avoir un exemple ? Comment persister l'objet loi (r\xE9f\xE9rence, loi compl\xE8te ?) ? + - Pour les balises <BrancheStrickler> et <BrancheBarrageRhone>, sont elles autoris\xE9es dans DSCP ?Dans ce cas quelle est leur structure DSCP car il n'y a pas de donn\xE9es DonCalcSansPrt pour ces branches... \ No newline at end of file Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Modifications-Obligatoires.txt =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Modifications-Obligatoires.txt (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Modifications-Obligatoires.txt 2009-03-10 18:01:18 UTC (rev 4525) @@ -0,0 +1,20 @@ +-- Modifications mod\xE9lisations \xE0 soumettre au CNR -- + +- G\xE9n\xE9ral: Important R\xE8gle \xE0 appliquer pour tous les fichiers xml + - Il faut appliquer les 2 r\xE8gles suivantes: + - le nom de balise < > doit \xEAtre unique par fichier. + - pour les occurences d'une m\xEAme balise: suffixer les autres balises r\xE9f\xE9rences par <balise-ref>. + + exemple: fichier DRSO: + les balises sections sont pr\xE9sentes \xE0 la fois a l'int\xE9rieur de <Sections> et de <Branches> avec les m\xEAmes noms. + puisque dans la partie section <Sections> les balises sont des r\xE9f\xE9rences, elles seront suffix\xE9es en + <SectionProfil-ref> <SectionInterpolee-ref> ... + +- Fichier DRSO: + cf exemple ci dessus. + +- Fichier DSCP + + - balise <BrancheSeuilTransversal> et <BrancheSeuilLateral> contiennent des \xE9l\xE9ments <ElemSeuilPdc> au lieu de <ElemSeuil> + car ce sont les balises <BrancheBarrageFilEau> qui contiennent des \xE9l\xE9ments <ElemSeuil> (sans pdc) + En effet avant la contrainte d'unicit\xE9 n'est pas appliqu\xE9e. \ 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-10 17:43:46 UTC (rev 4524) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDFRT.java 2009-03-10 18:01:18 UTC (rev 4525) @@ -29,13 +29,13 @@ public void fillInfosWith(List<DonFrt> data,List<String> listeMessageError) { - listeFrottement=CrueFactoryDao.remplirPersistanceAvecFrottemetnsDFRT(data,listeMessageError); + listeFrottement=CrueDaoFactory.remplirPersistanceAvecFrottemetnsDFRT(data,listeMessageError); } public List<DonFrt> fillInfosWithPersistant(Object data,List<String> listeMessageError) { - return CrueFactoryDao.remplirFrottemetnsAvecPersistanceDFRT(listeFrottement,listeMessageError); + return CrueDaoFactory.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-10 17:43:46 UTC (rev 4524) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDPTI.java 2009-03-10 18:01:18 UTC (rev 4525) @@ -22,12 +22,8 @@ */ 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 */ private List<NoeudNiveauContinu> Noeuds; @@ -52,14 +48,14 @@ 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); + Noeuds=CrueDaoFactory.remplirPersistanceAvecNoeudDPTI(data,listeMessageError); //-- etape 2: on remplit les infso des branches --// - Branches=CrueFactoryDao.remplirPersistanceAvecBrancheDPTI(data,listeMessageError); + Branches=CrueDaoFactory.remplirPersistanceAvecBrancheDPTI(data,listeMessageError); //-- etape 3: on remplit les infso des casiers --// - Casiers=CrueFactoryDao.remplirPersistanceAvecCasierDPTI(data,listeMessageError); + Casiers=CrueDaoFactory.remplirPersistanceAvecCasierDPTI(data,listeMessageError); //-- etape 4: on remplit les infso des sections --// @@ -76,14 +72,14 @@ List<EMH> listeEMHDRSO=(List<EMH> )data; //-- remplissage des noeuds --// - CrueFactoryDao.remplirNoeudAvecPersistanceDPTI(Noeuds,listeEMHDRSO,listeMessageError); + CrueDaoFactory.remplirNoeudAvecPersistanceDPTI(Noeuds,listeEMHDRSO,listeMessageError); //-- remplissage des branches --// - CrueFactoryDao.remplirBrancheAvecPersistanceDPTI(Branches, listeEMHDRSO,listeMessageError); + CrueDaoFactory.remplirBrancheAvecPersistanceDPTI(Branches, listeEMHDRSO,listeMessageError); //-- remplissage des casiers --// - CrueFactoryDao.remplirCasierAvecPersistanceDPTI(Casiers, listeEMHDRSO, listeMessageError); + CrueDaoFactory.remplirCasierAvecPersistanceDPTI(Casiers, listeEMHDRSO, listeMessageError); //-- remplissage des sections --// 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-10 17:43:46 UTC (rev 4524) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDRSO.java 2009-03-10 18:01:18 UTC (rev 4525) @@ -17,6 +17,11 @@ */ public class CrueDaoDRSO 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#"; + //-- variables qui correspondent \xE0 celle du fichier xml --// // public String VersionCrue="10"; // public String Commentaire="G\xE9n\xE9r\xE9 par Fudaa "; @@ -53,18 +58,18 @@ public void fillInfosWith(List<EMH> data,List<String> listeMessageError) { //-- etape 1: on remplit les infso des noeuds --// - Noeuds=CrueFactoryDao.remplirPersistanceAvecNoeudDRSO(data,listeMessageError); + Noeuds=CrueDaoFactory.remplirPersistanceAvecNoeudDRSO(data,listeMessageError); //-- etape 2: on remplit les infso des branches --// - Branches=CrueFactoryDao.remplirPersistanceAvecBrancheDRSO(data,listeMessageError); + Branches=CrueDaoFactory.remplirPersistanceAvecBrancheDRSO(data,listeMessageError); //-- etape 3: on remplit les infso des casiers --// - Casiers=CrueFactoryDao.remplirPersistanceAvecCasierDRSO(data,listeMessageError); + Casiers=CrueDaoFactory.remplirPersistanceAvecCasierDRSO(data,listeMessageError); //-- etape 4: on remplit les infso des sections --// - Sections=CrueFactoryDao.remplirPersistanceAvecSectionsDRSO(data,listeMessageError); + Sections=CrueDaoFactory.remplirPersistanceAvecSectionsDRSO(data,listeMessageError); @@ -77,18 +82,18 @@ List<EMH> listeCompleteEMH=new ArrayList<EMH>(); //-- etape 1: on remplit les infso des noeuds --// - List<EMH> listeNoeuds=CrueFactoryDao.remplirNoeudAvecPersistanceDRSO(Noeuds,listeMessageError); + List<EMH> listeNoeuds=CrueDaoFactory.remplirNoeudAvecPersistanceDRSO(Noeuds,listeMessageError); //-- etape 2: les casiers --// - List<EMH> listeCasiers=CrueFactoryDao.remplirCasierAvecPersistanceDRSO(Casiers, listeNoeuds,listeMessageError); + List<EMH> listeCasiers=CrueDaoFactory.remplirCasierAvecPersistanceDRSO(Casiers, listeNoeuds,listeMessageError); //-- etape 3: les branches et les sections de bransche --// - List<EMH> listeBranches=CrueFactoryDao.remplirBrancheAvecPersistanceDRSO(Branches, listeNoeuds,listeMessageError); + List<EMH> listeBranches=CrueDaoFactory.remplirBrancheAvecPersistanceDRSO(Branches, listeNoeuds,listeMessageError); //-- etape 3: les sections a partir des sections cr\xE9es lors du remplissage des branches --// - List<EMH> listeSections= CrueFactoryDao.remplirSectionsAvecPersistanceDRSO(Sections, listeBranches,listeMessageError); + List<EMH> listeSections= CrueDaoFactory.remplirSectionsAvecPersistanceDRSO(Sections, listeBranches,listeMessageError); Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDSCP.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDSCP.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoDSCP.java 2009-03-10 18:01:18 UTC (rev 4525) @@ -0,0 +1,64 @@ +package main.java.org.fudaa.dodico.crue.dao; + +import java.util.ArrayList; +import java.util.List; + + +import main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheAbstract; +import main.java.org.fudaa.dodico.crue.metier.emh.EMH; + +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; + +/** + * Classe persistante qui reprend la meme structure que le fichier xml + * DSCP - Fichier des donn\xE9es de calcul (xml) + * A persister telle qu'elle. + * @author Adrien Hadoux + * + */ +public class CrueDaoDSCP extends CrueDaoParsing<List<EMH>>{ + + + + + /** + * la liste des branches + */ + private List<BrancheAbstract> Branches; + + + + @Override + public void fillInfosWith(List<EMH> data, List<String> listeMessageError) { + // TODO Auto-generated method stub + //-- etape 1: on remplit les infso des branches --// + Branches=CrueDaoFactory.remplirPersistanceAvecBrancheDSCP(data,listeMessageError); + + } + + @Override + 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 DSCP ne pourront etre utilis\xE9es.")); + return null; + } + List<EMH> listeEMHDRSO=(List<EMH> )data; + + + //-- remplissage des branches --// + CrueDaoFactory.remplirBrancheAvecPersistanceDSCP(Branches, listeEMHDRSO,listeMessageError); + + return listeEMHDRSO; + } + + @Override + public XStream initXmlParser() { + XStream xstream = new XStream(new DomDriver()); + //-- init du parser --// + (new DaoStructuresFormatDSCP()).initXmlParserForDSCP(xstream); + return xstream; + } + +} \ No newline at end of file Copied: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactory.java (from rev 4516, 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/CrueDaoFactory.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactory.java 2009-03-10 18:01:18 UTC (rev 4525) @@ -0,0 +1,1350 @@ +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.DaoStructuresFormatDSCP.ElemSeuil; +import main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.ElemSeuilPdc; +import main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.ElemSeuilOrifice; +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.DonCalcSansPrt; +import main.java.org.fudaa.dodico.crue.metier.emh.DonCalcSansPrtBarrageFilEau; +import main.java.org.fudaa.dodico.crue.metier.emh.DonCalcSansPrtBrancheOrifice; +import main.java.org.fudaa.dodico.crue.metier.emh.DonCalcSansPrtBranchePDC; +import main.java.org.fudaa.dodico.crue.metier.emh.DonCalcSansPrtBrancheSaintVenant; +import main.java.org.fudaa.dodico.crue.metier.emh.DonCalcSansPrtBrancheSeuilLateral; +import main.java.org.fudaa.dodico.crue.metier.emh.DonCalcSansPrtBrancheSeuilTransversal; +import main.java.org.fudaa.dodico.crue.metier.emh.DonCalcSansPrtSection; +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.ElemSeuilAvecPdc; +import main.java.org.fudaa.dodico.crue.metier.emh.Loi; +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 CrueDaoFactory { + + /** + * 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=CrueDaoFactory.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(CrueDaoFactory.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.Nom=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.Nom; + 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; + } + + + /** + * Remplit les donn\xE9es persistante avec les conditions initiales des noeuds + * @param data + * @param listeMessageError + * @return + */ + public static List remplirPersistanceAvecNoeudDPTI(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; + main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.NoeudNiveauContinu noeudPersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.NoeudNiveauContinu(); + noeudPersist.NomRef=CrueDaoDRSO.SUFFIXE_REF_DRSO+noeud.getNom(); + noeudPersist.Zini=noeud.getZini(); + listePersistante.add(noeudPersist); + } + } + return listePersistante; + } + + /** + * Methode qui remplit une arrayList d'objets persistants qui constituent la deuxieme partie du fichier DRSO: les Branches. + * @param data + * @return + */ + public static List<main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheAbstract> remplirPersistanceAvecBrancheDPTI(List<EMH> data,List<String> listeMessageError){ + String suffixe=CrueDaoDRSO.SUFFIXE_REF_DRSO; + List<main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheAbstract> listePersistante=new ArrayList<main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheAbstract>(); + 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; + main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheAbstract branchePersist=null; + if (branche instanceof EMHBrancheBarrageFilEau) { + EMHBrancheBarrageFilEau new_name = (EMHBrancheBarrageFilEau) branche; + branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheBarrageFilEau(); + }else if (branche instanceof EMHBrancheBarrageGenerique) { + EMHBrancheBarrageGenerique new_name = (EMHBrancheBarrageGenerique) branche; + branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheBarrageGenerique(); + }else if (branche instanceof EMHBrancheBarrageRhone) { + EMHBrancheBarrageRhone new_name = (EMHBrancheBarrageRhone) branche; + branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheBarrageRhone(); + }else if (branche instanceof EMHBrancheEnchainement) { + EMHBrancheEnchainement new_name = (EMHBrancheEnchainement) branche; + branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheEnchainement(); + }else if (branche instanceof EMHBrancheNiveauxAssocies) { + EMHBrancheNiveauxAssocies new_name = (EMHBrancheNiveauxAssocies) branche; + branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheNiveauxAssocies(); + }else if (branche instanceof EMHBrancheOrifice) { + EMHBrancheOrifice new_name = (EMHBrancheOrifice) branche; + branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheOrifice(); + + (( main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheOrifice)branchePersist).OuvPasseDessous=new_name.getOuvPasseDessous(); + + }else if (branche instanceof EMHBranchePdc) { + EMHBranchePdc new_name = (EMHBranchePdc) branche; + branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BranchePdc(); + }else if (branche instanceof EMHBrancheSaintVenant) { + EMHBrancheSaintVenant new_name = (EMHBrancheSaintVenant) branche; + branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheSaintVenant(); + }else if (branche instanceof EMHBrancheSeuilLongitudinale) { + EMHBrancheSeuilLongitudinale new_name = (EMHBrancheSeuilLongitudinale) branche; + branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheSeuilLateral(); + }else if (branche instanceof EMHBrancheSeuilTransversal) { + EMHBrancheSeuilTransversal new_name = (EMHBrancheSeuilTransversal) branche; + branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheSeuilTransversal(); + }else if (branche instanceof EMHBrancheStrickler) { + EMHBrancheStrickler new_name = (EMHBrancheStrickler) branche; + branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheStrickler(); + } + + if(branchePersist!=null){ + //-- commun --// + + branchePersist.NomRef=suffixe+branche.getNom(); + + branchePersist.Qini=new Double(branche.getQini()); + branchePersist.Qruis=new Double(branche.getQruis()); + + + listePersistante.add(branchePersist); + } + } + } + return listePersistante; + } + + /** + * 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<main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.CasierAbstract> remplirPersistanceAvecCasierDPTI(List<EMH> data,List<String> listeMessageError){ + List<main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.CasierAbstract> listePersistante=new ArrayList<main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.CasierAbstract>(); + for(EMH emh:data ){ + if(emh instanceof CatEMHCasier){ + CatEMHCasier casier=(CatEMHCasier)emh; + main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.CasierAbstract casierPersist=null; + if(casier instanceof EMHCasierMNT){ + casierPersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.CasierMNT(); + }else if(casier instanceof EMHCasierProfil){ + casierPersist= new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.CasierProfil(); + } + //-- commun --// + if(casierPersist!=null){ + casierPersist.NomRef=CrueDaoDRSO.SUFFIXE_REF_DRSO+casier.getNom(); + casierPersist.Qruis=casier.getQruis(); + listePersistante.add(casierPersist); + } + } + } + return listePersistante; + } + + /** + * Methode qui met a jour les objets m\xE9tier EMH noeuds a partir des donn\xE9es persistantes de DPTI et les pr\xE9chargements de DRSO + * @param data + * @return + */ + public static void remplirNoeudAvecPersistanceDPTI(List<main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.NoeudNiveauContinu> listePersistants,List<EMH> data,List<String> listeMessageError ){ + if(listePersistants==null || listePersistants.size()==0){ + listeMessageError.add(CrueRessource.getS("Noeuds: la liste est vide.")); + }else + for(Object persist:listePersistants ){ + if(persist instanceof main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.NoeudNiveauContinu){ + main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.NoeudNiveauContinu noeudPersist=(main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.NoeudNiveauContinu) persist; + String reference=noeudPersist.NomRef; + if(reference.contains(CrueDaoDRSO.SUFFIXE_REF_DRSO)){ + reference=reference.replace(CrueDaoDRSO.SUFFIXE_REF_DRSO,""); + } + CatEMHNoeud noeud=CatEMHNoeud.findByReference(reference, data); + if(noeud==null){ + listeMessageError.add(CrueRessource.getS("Noeuds : Impossible de trouver le noeud de r\xE9f\xE9rence "+reference)); + }else{ + noeud.setZini(noeudPersist.Zini); + } + } + } + + } + /** + * Methode qui met a jour les objets m\xE9tier EMH branches a partir des donn\xE9es persistantes de DPTI et les pr\xE9chargements de DRSO + * @param data + * @return + */ + public static void remplirBrancheAvecPersistanceDPTI(List<main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheAbstract> listePersistants,List<EMH> data,List<String> listeMessageError ){ + if(listePersistants==null || listePersistants.size()==0){ + listeMessageError.add(CrueRessource.getS("Branches: la liste est vide.")); + }else + for(Object persist:listePersistants ){ + if(persist instanceof main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheAbstract){ + main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheAbstract branchePersist=(main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheAbstract) persist; + String reference=branchePersist.NomRef; + if(reference.contains(CrueDaoDRSO.SUFFIXE_REF_DRSO)){ + reference=reference.replace(CrueDaoDRSO.SUFFIXE_REF_DRSO,""); + } + CatEMHBranche branche=CatEMHBranche.findByReference(reference, data); + if(branche==null){ + listeMessageError.add(CrueRessource.getS("Branche : Impossible de trouver la branche de r\xE9f\xE9rence "+reference)); + }else{ + if(branchePersist.Qini!=null) + branche.setQini(branchePersist.Qini); + if(branchePersist.Qruis!=null) + branche.setQruis(branchePersist.Qruis); + + //-- cas particuliers --// + if(branchePersist instanceof main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheOrifice){ + EMHBrancheOrifice br=(EMHBrancheOrifice)branche; + main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheOrifice orif=(main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.BrancheOrifice) branchePersist; + if(orif.OuvPasseDessous!=null) + br.setOuvPasseDessous(orif.OuvPasseDessous); + } + } + } + } + } + + + /** + * Methode qui met a jour les objets m\xE9tier EMH noeuds a partir des donn\xE9es persistantes de DPTI et les pr\xE9chargements de DRSO + * @param data + * @return + */ + public static void remplirCasierAvecPersistanceDPTI(List<main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.CasierAbstract> listePersistants,List<EMH> data,List<String> listeMessageError ){ + if(listePersistants==null || listePersistants.size()==0){ + listeMessageError.add(CrueRessource.getS("Casiers: la liste est vide.")); + }else + for(Object persist:listePersistants ){ + if(persist instanceof main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.CasierAbstract){ + main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.CasierAbstract casierPersist=(main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDPTI.CasierAbstract) persist; + String reference=casierPersist.NomRef; + if(reference.contains(CrueDaoDRSO.SUFFIXE_REF_DRSO)){ + reference=reference.replace(CrueDaoDRSO.SUFFIXE_REF_DRSO,""); + } + CatEMHCasier casier=CatEMHCasier.findByReference(reference, data); + if(casier==null){ + listeMessageError.add(CrueRessource.getS("Casiers : Impossible de trouver le casier de r\xE9f\xE9rence "+reference)); + }else{ + if(casierPersist.Qruis!=null) + casier.setQruis(casierPersist.Qruis); + } + } + } + + } + + + /** + * Methode qui remplit une arrayList d'objets persistants qui constituent le fichier fichier DSCP: les Branches. + * @param data + * @return + */ + public static List<main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheAbstract> remplirPersistanceAvecBrancheDSCP(List<EMH> data,List<String> listeMessageError){ + String suffixe=CrueDaoDRSO.SUFFIXE_REF_DRSO; + List<main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheAbstract> listePersistante=new ArrayList<main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheAbstract>(); + 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; + DonCalcSansPrt dataCalc=null; + main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheAbstract branchePersist=null; + if (branche instanceof EMHBrancheBarrageFilEau) { + EMHBrancheBarrageFilEau new_name = (EMHBrancheBarrageFilEau) branche; + branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheBarrageFilEau(); + + //-- recuperation de la donnee de calcul de la branche --// + dataCalc=branche.getDSCP(); + if(dataCalc!=null ){ + + if( dataCalc instanceof DonCalcSansPrtBarrageFilEau){ + main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheBarrageFilEau br=(main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheBarrageFilEau)branchePersist; + + //-- recuperation de la formule --// + if(((DonCalcSansPrtBarrageFilEau)dataCalc).getRegimeDenove_Zam()!=null) + br.Loi=((DonCalcSansPrtBarrageFilEau)dataCalc).getRegimeDenove_Zam().getNom(); + br.QLimInf=((DonCalcSansPrtBarrageFilEau)dataCalc).getQLimInf(); + br.QLimSup=((DonCalcSansPrtBarrageFilEau)dataCalc).getQLimSup(); + //-- on remplit la liste des elements seuils --// + + br.ElemSeuils=remplirPersistanceAvecSeuilsBarragesDSCP(((DonCalcSansPrtBarrageFilEau)dataCalc).getListElt()); + + }else{ + listeMessageError.add(CrueRessource.getS("Branche : Donnee DSCP incorrecte (attendu. donnees branche barrage Fil d'eau) pour l'objet branche de r\xE9f\xE9rence"+branche.getNom())); + } + }else{ + listeMessageError.add(CrueRessource.getS("Branche : Aucune donnee DSCP pour l'objet branche de r\xE9f\xE9rence"+branche.getNom())); + } + + }else if (branche instanceof EMHBrancheBarrageGenerique) { + EMHBrancheBarrageGenerique new_name = (EMHBrancheBarrageGenerique) branche; + branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheBarrageGenerique(); + //-- recuperation de la donnee de calcul de la branche --// + dataCalc=branche.getDSCP(); + if(dataCalc!=null ){ + + if( dataCalc instanceof DonCalcSansPrtBarrageFilEau){ + main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheBarrageGenerique br=(main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheBarrageGenerique)branchePersist; + + //-- recuperation de la formule --// + if(((DonCalcSansPrtBarrageFilEau)dataCalc).getRegimeDenove_Zam()!=null) + br.Loi=((DonCalcSansPrtBarrageFilEau)dataCalc).getRegimeDenove_Zam().getNom(); + br.QLimInf=((DonCalcSansPrtBarrageFilEau)dataCalc).getQLimInf(); + br.QLimSup=((DonCalcSansPrtBarrageFilEau)dataCalc).getQLimSup(); + //-- on remplit la liste des elements seuils --// + + br.ElemSeuils=remplirPersistanceAvecSeuilsBarragesDSCP(((DonCalcSansPrtBarrageFilEau)dataCalc).getListElt()); + + }else{ + listeMessageError.add(CrueRessource.getS("Branche : Donnee DSCP incorrecte (attendu. donnees branche barrage Generique) pour l'objet branche de r\xE9f\xE9rence"+branche.getNom())); + } + }else{ + listeMessageError.add(CrueRessource.getS("Branche : Aucune donnee DSCP pour l'objet branche de r\xE9f\xE9rence"+branche.getNom())); + } + + }else if (branche instanceof EMHBrancheBarrageRhone) { + EMHBrancheBarrageRhone new_name = (EMHBrancheBarrageRhone) branche; + branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheBarrageRhone(); + //-- recuperation de la donnee de calcul de la branche --// + dataCalc=branche.getDSCP(); + if(dataCalc!=null ){ + + if( dataCalc instanceof DonCalcSansPrtBarrageFilEau){ + main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheBarrageRhone br=(main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheBarrageRhone)branchePersist; + + //-- recuperation de la formule --// + if(((DonCalcSansPrtBarrageFilEau)dataCalc).getRegimeDenove_Zam()!=null) + br.Loi=((DonCalcSansPrtBarrageFilEau)dataCalc).getRegimeDenove_Zam().getNom(); + br.QLimInf=((DonCalcSansPrtBarrageFilEau)dataCalc).getQLimInf(); + br.QLimSup=((DonCalcSansPrtBarrageFilEau)dataCalc).getQLimSup(); + //-- on remplit la liste des elements seuils --// + + br.ElemSeuils=remplirPersistanceAvecSeuilsBarragesDSCP(((DonCalcSansPrtBarrageFilEau)dataCalc).getListElt()); + + }else{ + listeMessageError.add(CrueRessource.getS("Branche : Donnee DSCP incorrecte (attendu. donnees branche barrage Rhone) pour l'objet branche de r\xE9f\xE9rence"+branche.getNom())); + } + }else{ + listeMessageError.add(CrueRessource.getS("Branche : Aucune donnee DSCP pour l'objet branche de r\xE9f\xE9rence"+branche.getNom())); + } + + } +// else if (branche instanceof EMHBrancheBarrageRhone) { +// EMHBrancheBarrageRhone new_name = (EMHBrancheBarrageRhone) branche; +// branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheBarrageRhone(); +// } +// else if (branche instanceof EMHBrancheEnchainement) { +// EMHBrancheEnchainement new_name = (EMHBrancheEnchainement) branche; +// branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheEnchainement(); +// }else if (branche instanceof EMHBrancheNiveauxAssocies) { +// EMHBrancheNiveauxAssocies new_name = (EMHBrancheNiveauxAssocies) branche; +// branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheNiveauxAssocies(); +// } + else if (branche instanceof EMHBrancheOrifice) { + + branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheOrifice(); + + //-- recuperation de la donnee de calcul de la branche --// + dataCalc=branche.getDSCP(); + if(dataCalc!=null ){ + + if( dataCalc instanceof DonCalcSansPrtBrancheOrifice){ + main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheOrifice br=(main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheOrifice)branchePersist; + + //-- recuperation de la formule --// + br.FormulePdc=((DonCalcSansPrtBrancheOrifice)dataCalc).getFormulePdc(); + //-- on remplit la liste des elements seuils --// + br.ElemOrifices =remplirPersistanceAvecOrificesSeuilsDSCP(((DonCalcSansPrtBrancheOrifice)dataCalc).getElement()); + }else{ + listeMessageError.add(CrueRessource.getS("Branche : Donnee DSCP incorrecte (attendu. donnees branche Orifice) pour l'objet branche de r\xE9f\xE9rence"+branche.getNom())); + } + }else{ + listeMessageError.add(CrueRessource.getS("Branche : Aucune donnee DSCP pour l'objet branche de r\xE9f\xE9rence"+branche.getNom())); + } + + }else if (branche instanceof EMHBranchePdc) { + EMHBranchePdc new_name = (EMHBranchePdc) branche; + branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BranchePdc(); + + //-- recuperation de la donnee de calcul de la branche --// + dataCalc=branche.getDSCP(); + if(dataCalc!=null ){ + + if( dataCalc instanceof DonCalcSansPrtBranchePDC){ + main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BranchePdc br=(main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BranchePdc)branchePersist; + + //-- recuperation de la formule --// + if(((DonCalcSansPrtBranchePDC)dataCalc).getPdc_DZ()!=null) + br.Loi=((DonCalcSansPrtBranchePDC)dataCalc).getPdc_DZ().getNom(); + + }else{ + listeMessageError.add(CrueRessource.getS("Branche : Donnee DSCP incorrecte (attendu. donnees branche seuil Longitudinal) pour l'objet branche de r\xE9f\xE9rence"+branche.getNom())); + } + }else{ + listeMessageError.add(CrueRessource.getS("Branche : Aucune donnee DSCP pour l'objet branche de r\xE9f\xE9rence"+branche.getNom())); + } + + + }else if (branche instanceof EMHBrancheSaintVenant) { + EMHBrancheSaintVenant new_name = (EMHBrancheSaintVenant) branche; + branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheSaintVenant(); + //-- recuperation de la donnee de calcul de la branche --// + dataCalc=branche.getDSCP(); + if(dataCalc!=null ){ + + if( dataCalc instanceof DonCalcSansPrtBrancheSaintVenant){ + main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheClassiqueAbstract br=(main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheClassiqueAbstract)branchePersist; + + br... [truncated message content] |