From: <had...@us...> - 2009-03-13 20:12:09
|
Revision: 4543 http://fudaa.svn.sourceforge.net/fudaa/?rev=4543&view=rev Author: hadouxad Date: 2009-03-13 20:12:02 +0000 (Fri, 13 Mar 2009) Log Message: ----------- IO fichier DPTG optimisation des algos de IO des autres fichiers. optimisation par structure ad?\195?\169quate Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/IO/Crue10reader.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/IO/Crue10writer.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryCommom.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDCSP.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDPTG.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDPTI.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDRSO.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoPersistDCSP.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoPersistDPTG.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoPersistDPTI.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoPersistDRSO.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDCSP.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDPTG.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/valideDCSP.xsd branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/validatorXML/valideDPTG.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/CatEMHSection.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/test/java/org/fudaa/fudaa/crue/TestCrueDCSPFile.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/src/main/java/org/fudaa/dodico/crue/metier/emh/CrueData.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/test/java/org/fudaa/fudaa/crue/TestCrueDPTGFile.java Removed Paths: ------------- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/IO/Crue10ReaderDependancesStructures.java Deleted: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/IO/Crue10ReaderDependancesStructures.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/IO/Crue10ReaderDependancesStructures.java 2009-03-13 16:16:15 UTC (rev 4542) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/IO/Crue10ReaderDependancesStructures.java 2009-03-13 20:12:02 UTC (rev 4543) @@ -1,28 +0,0 @@ -package main.java.org.fudaa.dodico.crue.IO; - -import java.util.List; - -import main.java.org.fudaa.dodico.crue.metier.emh.DonFrt; -import main.java.org.fudaa.dodico.crue.metier.emh.EMH; - -/** - * Liste des structures necessaires pour la lecture de certains fichiers qui contiennent plusieurs r\xE9f\xE9rences - * vers d'autres donn\xE9es m\xE9tier. - * @author Adrien Hadoux - * - */ -public class Crue10ReaderDependancesStructures { - - /** - * Structure utilis\xE9e pour le fichier DPTG: - * contient les infos DRSO et les infos DFRT - * pour bien g\xE9rer le contenu. - * @author Adrien Hadoux - * - */ -public static class StructDPTG{ - public List<EMH> listeEMHmetier; - public List<DonFrt> listeFrottements; -} - -} Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/IO/Crue10reader.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/IO/Crue10reader.java 2009-03-13 16:16:15 UTC (rev 4542) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/IO/Crue10reader.java 2009-03-13 20:12:02 UTC (rev 4543) @@ -5,12 +5,14 @@ import main.java.org.fudaa.dodico.crue.commun.CrueRessource; import main.java.org.fudaa.dodico.crue.dao.CrueDaoPersistDFRT; +import main.java.org.fudaa.dodico.crue.dao.CrueDaoPersistDPTG; import main.java.org.fudaa.dodico.crue.dao.CrueDaoPersistDPTI; import main.java.org.fudaa.dodico.crue.dao.CrueDaoPersistDRSO; import main.java.org.fudaa.dodico.crue.dao.CrueDaoPersistDCSP; import main.java.org.fudaa.dodico.crue.dao.CrueDaoPersistOPTG; import main.java.org.fudaa.dodico.crue.dao.CrueDaoParsing; import main.java.org.fudaa.dodico.crue.dao.validatorXML.ValidatorXml; +import main.java.org.fudaa.dodico.crue.metier.emh.CrueData; import main.java.org.fudaa.dodico.crue.metier.emh.DonFrt; import main.java.org.fudaa.dodico.crue.metier.emh.DonPrtReseau; import main.java.org.fudaa.dodico.crue.metier.emh.EMH; @@ -29,7 +31,7 @@ * @author Adrien Hadoux * */ - private static class ReaderWithExtra<T>{ + protected static class ReaderWithExtra<T>{ CrueDaoParsing<T> data; List<String> listeMessageError; Object dataLinked; @@ -73,10 +75,10 @@ * @param fichierDRSO * @return */ - public static List<EMH> readDRSOFile( File fichierDRSO,List<String> listeMessageError){ + public static CrueData readDRSOFile( File fichierDRSO,List<String> listeMessageError){ //-- remplissage des donnees m\xE9tier a partir des persistantes--// - return (new ReaderWithExtra<List<EMH>>(new CrueDaoPersistDRSO(),null,listeMessageError)).read(fichierDRSO, ValidatorXml.xsdDRSO); + return (new ReaderWithExtra<CrueData>(new CrueDaoPersistDRSO(),null,listeMessageError)).read(fichierDRSO, ValidatorXml.xsdDRSO); } @@ -88,12 +90,24 @@ * Attention, il faut fournir en entree les structures de donnees DRSO * car le fichier DPTI ne contient que des references vers les objets d\xE9crits dans DRSO. */ - public static void readDPTIFile( File fichierDPTI,List<EMH> dataDRSO,List<String> listeMessageError){ - (new ReaderWithExtra<List<EMH>>(new CrueDaoPersistDPTI(),dataDRSO,listeMessageError)).read(fichierDPTI, ValidatorXml.xsdDPTI); + public static void readDPTIFile( File fichierDPTI,CrueData dataDRSO,List<String> listeMessageError){ + (new ReaderWithExtra<CrueData>(new CrueDaoPersistDPTI(),dataDRSO,listeMessageError)).read(fichierDPTI, ValidatorXml.xsdDPTI); } + /** + * Lit le fichier xml \xE0 l'emplacement fichierDDPTG + * DPTG - Fichier des donn\xE9es de pr\xE9traitement g\xE9om\xE9trique (xml) + * a partir des donn\xE9es m\xE9tiers fournies. + * ATTENTION: DPTG a besoin du fichier DRSO et DFRT car il contient des r\xE9f\xE9rences vers ces objets. + */ + public static void readDPTGFile( File fichierDPTG,CrueData dataDRSOetDFRT, List<String> listeMessageError){ + + (new ReaderWithExtra<CrueData>(new CrueDaoPersistDPTG(),dataDRSOetDFRT,listeMessageError)).read(fichierDPTG, ValidatorXml.xsdDPTG); + } + + /** * lit le fichier xml DSCP * DSCP - Le fichier DSCP d\xE9crit les variables de calculs pour les branches. * et retourne les donn\xE9es m\xE9tier correspondantes. Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/IO/Crue10writer.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/IO/Crue10writer.java 2009-03-13 16:16:15 UTC (rev 4542) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/IO/Crue10writer.java 2009-03-13 20:12:02 UTC (rev 4543) @@ -4,10 +4,12 @@ import java.util.List; import main.java.org.fudaa.dodico.crue.dao.CrueDaoPersistDFRT; +import main.java.org.fudaa.dodico.crue.dao.CrueDaoPersistDPTG; import main.java.org.fudaa.dodico.crue.dao.CrueDaoPersistDPTI; import main.java.org.fudaa.dodico.crue.dao.CrueDaoPersistDRSO; import main.java.org.fudaa.dodico.crue.dao.CrueDaoPersistDCSP; import main.java.org.fudaa.dodico.crue.dao.CrueDaoPersistOPTG; +import main.java.org.fudaa.dodico.crue.metier.emh.CrueData; import main.java.org.fudaa.dodico.crue.metier.emh.DonFrt; import main.java.org.fudaa.dodico.crue.metier.emh.DonPrtReseau; import main.java.org.fudaa.dodico.crue.metier.emh.EMH; @@ -26,7 +28,7 @@ * DRSO - Fichier des donn\xE9es du r\xE9seau (xml) * a partir des donn\xE9es m\xE9tiers fournies. */ - public static boolean writeDRSOFile(List<EMH> data, File fichierDRSO,List<String> listeMessageError){ + public static boolean writeDRSOFile(CrueData data, File fichierDRSO,List<String> listeMessageError){ CrueDaoPersistDRSO dataPersistante=new CrueDaoPersistDRSO(); //-- remplissage des donnees persistantes avec les data --// dataPersistante.fillInfosWith(data,listeMessageError); @@ -39,7 +41,7 @@ * DPTI - Le fichier DPTI d\xE9crit les conditions initiales * a partir des donn\xE9es m\xE9tiers fournies. */ - public static boolean writeDPTIFile(List<EMH> data, File fichierDPTI,List<String> listeMessageError){ + public static boolean writeDPTIFile(CrueData data, File fichierDPTI,List<String> listeMessageError){ CrueDaoPersistDPTI dataPersistante=new CrueDaoPersistDPTI(); //-- remplissage des donnees persistantes avec les data --// dataPersistante.fillInfosWith(data,listeMessageError); @@ -72,6 +74,17 @@ } + /** + * Ecrit le fichier xml \xE0 l'emplacement fichierDDPTG + * DPTG - Fichier des donn\xE9es de pr\xE9traitement g\xE9om\xE9trique (xml) + * a partir des donn\xE9es m\xE9tiers fournies. + */ + public static boolean writeDPTGFile(CrueData data, File fichierDPTG,List<String> listeMessageError){ + CrueDaoPersistDPTG dataPersistante=new CrueDaoPersistDPTG(); + //-- remplissage des donnees persistantes avec les data --// + dataPersistante.fillInfosWith(data,listeMessageError); + return dataPersistante.persistData(fichierDPTG,listeMessageError); + } /** * ecrit le fichier xml OPTG Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryCommom.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryCommom.java 2009-03-13 16:16:15 UTC (rev 4542) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryCommom.java 2009-03-13 20:12:02 UTC (rev 4543) @@ -55,6 +55,12 @@ public static String unknowEMH(String balise,String nomEMH){ return CrueRessource.getS(balise+": Il n'existe pas de structure de donn\xE9e EMH pour l'objet "+nomEMH); } + + + public static String unknowdataFromFile(String balise,String FileType,String nomEMH){ + return CrueRessource.getS(balise+": Il n'existe pas de structure de donn\xE9e "+FileType+" pour l'objet "+nomEMH); + } + /** * Message qui indique la balise n'est pas reconnue par les structures de donn\xE9es EMH. * @param balise @@ -75,4 +81,10 @@ return CrueRessource.getS("Sections <"+balise+">: la liste est vide."); } + + public static String emhEmpty(String balise){ + return CrueRessource.getS("EMH: Aucune donn\xE9es EMH trouv\xE9e pour <"+balise+">."); + + } + } Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDCSP.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDCSP.java 2009-03-13 16:16:15 UTC (rev 4542) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDCSP.java 2009-03-13 20:12:02 UTC (rev 4543) @@ -17,6 +17,7 @@ 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.EMH; import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheBarrageFilEau; import main.java.org.fudaa.dodico.crue.metier.emh.EMHBrancheBarrageGenerique; @@ -33,253 +34,300 @@ 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.dao.CrueDaoStructuresFormatDCSP.*; + /** * Factory qui se charge de remplir les structures DAO du ficheir DCSP avec les donn\xE9es m\xE9tier et inversement. * @author Adrien Hadoux * */ public class CrueDaoFactoryDCSP { + + + /** - * Methode qui remplit une arrayList d'objets persistants qui constituent le fichier fichier DSCP: les Branches. + * Remplit completement la structure persistante a partir des objets DSCP. + * + * Optimise le remplissage en listante les donn\xE9es emh une seule fois et en forwardant les objets aux bons endroits + * + * @param persistance * @param data - * @return + * @param listeMessageError */ - public static List<BrancheAbstract> remplirPersistanceAvecBrancheDSCP(List<EMH> data,List<String> listeMessageError){ - String suffixe=CrueDaoPersistDRSO.SUFFIXE_REF_DRSO; - List<BrancheAbstract> listePersistante=new ArrayList<BrancheAbstract>(); + public static void remplirPersistanceDCSP(CrueDaoPersistDCSP persistance,List<EMH> data,List<String> listeMessageError){ + + persistance.Sections=new ArrayList<SectionBrancheAbstract>(); + persistance.Branches=new ArrayList<BrancheAbstract>(); + + + //CrueDaoFactoryDCSP.remplirPersistanceAvecBrancheDSCP(persistance.Branches,data,listeMessageError); + if(data==null || data.size()==0){ - listeMessageError.add(CrueRessource.getS("Branches: la liste est vide.")); + listeMessageError.add(CrueDaoFactoryCommom.emhEmpty("DCSP")); }else for(EMH emh:data ){ if(emh instanceof CatEMHBranche){ + //-- remplissage des sections de branches --// CatEMHBranche branche=(CatEMHBranche) emh; - DonCalcSansPrt dataCalc=null; - BrancheAbstract branchePersist=null; - if (branche instanceof EMHBrancheBarrageFilEau) { - EMHBrancheBarrageFilEau new_name = (EMHBrancheBarrageFilEau) branche; - branchePersist=new BrancheBarrageFilEau(); - //-- recuperation de la donnee de calcul de la branche --// - dataCalc=branche.getDSCP(); + List<DonCalcSansPrt> listeDoncalc=branche.getDSCP(); + for(DonCalcSansPrt dataCalc:listeDoncalc){ if(dataCalc!=null ){ + CrueDaoFactoryDCSP.remplirPersistanceAvecBrancheDSCP(persistance.Branches,branche,dataCalc,listeMessageError); + }else{ + listeMessageError.add(CrueDaoFactoryCommom.unknowdataFromFile("Branches", "DCSP", branche.getNom())); + } + } - if( dataCalc instanceof DonCalcSansPrtBarrageFilEau){ - BrancheBarrageFilEau br=(BrancheBarrageFilEau)branchePersist; + }else if(emh instanceof CatEMHSection){ + CatEMHSection section=(CatEMHSection) emh; + List<DonCalcSansPrt> listeDoncalc=section.getDSCP(); + for(DonCalcSansPrt dataCalc:listeDoncalc){ + if(dataCalc!=null && dataCalc instanceof DonCalcSansPrtSection){ + //-- remplissage des sections --// + remplirPersistanceAvecSectionsBrancheDSCP(persistance.Sections, section,(DonCalcSansPrtSection)dataCalc, listeMessageError); - //-- 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())); + listeMessageError.add(CrueDaoFactoryCommom.unknowdataFromFile("Section", "DCSP", section.getNom())); } - }else if (branche instanceof EMHBrancheBarrageGenerique) { - EMHBrancheBarrageGenerique new_name = (EMHBrancheBarrageGenerique) branche; - branchePersist=new BrancheBarrageGenerique(); - //-- recuperation de la donnee de calcul de la branche --// - dataCalc=branche.getDSCP(); - if(dataCalc!=null ){ - if( dataCalc instanceof DonCalcSansPrtBarrageFilEau){ - BrancheBarrageGenerique br=(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 BrancheBarrageRhone(); - //-- recuperation de la donnee de calcul de la branche --// - dataCalc=branche.getDSCP(); - if(dataCalc!=null ){ - if( dataCalc instanceof DonCalcSansPrtBarrageFilEau){ - BrancheBarrageRhone br=(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()); + /** + * Remplit completement la structure metier a partir des objets persistants DSCP. + * + * Optimise le remplissage en listante les donn\xE9es emh une seule fois et en forwardant les objets aux bons endroits + * + * @param persistance + * @param data + * @param listeMessageError + */ + public static void remplirMetierDCSP(CrueDaoPersistDCSP persistance,List<EMH> data,List<String> listeMessageError){ - }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) { + //-- remplissage des branches --// + CrueDaoFactoryDCSP.remplirBrancheAvecPersistanceDSCP(persistance.Branches, data,listeMessageError); - branchePersist=new BrancheOrifice(); - //-- recuperation de la donnee de calcul de la branche --// - dataCalc=branche.getDSCP(); - if(dataCalc!=null ){ - if( dataCalc instanceof DonCalcSansPrtBrancheOrifice){ - BrancheOrifice br=(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 BranchePdc(); + //-- remplissage des sections --// + CrueDaoFactoryDCSP.remplirSectionsAvecPersistanceDSCP(persistance.Sections, data, listeMessageError); - //-- recuperation de la donnee de calcul de la branche --// - dataCalc=branche.getDSCP(); - if(dataCalc!=null ){ + } - if( dataCalc instanceof DonCalcSansPrtBranchePDC){ - BranchePdc br=(BranchePdc)branchePersist; - //-- recuperation de la formule --// - if(((DonCalcSansPrtBranchePDC)dataCalc).getPdc_DZ()!=null) - br.Loi=((DonCalcSansPrtBranchePDC)dataCalc).getPdc_DZ().getNom(); + /** + * Methode qui remplit une arrayList d'objets persistants qui constituent le fichier fichier DSCP: les Branches. + * @param data + * @return + */ + public static void remplirPersistanceAvecBrancheDSCP(List<BrancheAbstract> listePersistante,CatEMHBranche branche,DonCalcSansPrt dataCalc,List<String> listeMessageError){ + String suffixe=CrueDaoPersistDRSO.SUFFIXE_REF_DRSO; + BrancheAbstract branchePersist=null; + if (branche instanceof EMHBrancheBarrageFilEau) { + EMHBrancheBarrageFilEau new_name = (EMHBrancheBarrageFilEau) branche; + branchePersist=new BrancheBarrageFilEau(); - }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())); - } + if( dataCalc instanceof DonCalcSansPrtBarrageFilEau){ + BrancheBarrageFilEau br=(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 --// - }else if (branche instanceof EMHBrancheSaintVenant) { - EMHBrancheSaintVenant new_name = (EMHBrancheSaintVenant) branche; - branchePersist=new BrancheSaintVenant(); - //-- recuperation de la donnee de calcul de la branche --// - dataCalc=branche.getDSCP(); - if(dataCalc!=null ){ + br.ElemSeuils=remplirPersistanceAvecSeuilsBarragesDSCP(((DonCalcSansPrtBarrageFilEau)dataCalc).getListElt()); - if( dataCalc instanceof DonCalcSansPrtBrancheSaintVenant){ - BrancheClassiqueAbstract br=(BrancheClassiqueAbstract)branchePersist; + }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())); + } - br.CoefBeta=((DonCalcSansPrtBrancheSaintVenant)dataCalc).getCoeffBeta(); - br.CoefRuis=((DonCalcSansPrtBrancheSaintVenant)dataCalc).getCoefRuis(); - br.CoefRuisQdm=((DonCalcSansPrtBrancheSaintVenant)dataCalc).getCoeffRuisQdm(); - //-- remplissage des sections de branches --// - br.Sections=remplirPersistanceAvecSectionsBrancheDSCP( branche.getListeSections(), listeMessageError); - }else{ - listeMessageError.add(CrueRessource.getS("Branche : Donnee DSCP incorrecte (attendu. donnees branche SaintVenant) 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 BrancheBarrageGenerique(); + //-- recuperation de la donnee de calcul de la branche --// + if( dataCalc instanceof DonCalcSansPrtBarrageFilEau){ + BrancheBarrageGenerique br=(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 if (branche instanceof EMHBrancheSeuilLongitudinale) { - EMHBrancheSeuilLongitudinale new_name = (EMHBrancheSeuilLongitudinale) branche; - branchePersist=new BrancheSeuilLateral(); + }else{ + listeMessageError.add(CrueRessource.getS("Branche : Donnee DSCP incorrecte (attendu. donnees branche barrage Generique) pour l'objet branche de r\xE9f\xE9rence"+branche.getNom())); + } - //-- recuperation de la donnee de calcul de la branche --// - dataCalc=branche.getDSCP(); - if(dataCalc!=null ){ - if( dataCalc instanceof DonCalcSansPrtBrancheSeuilLateral){ - BrancheSeuilLateral br=(BrancheSeuilLateral)branchePersist; + }else if (branche instanceof EMHBrancheBarrageRhone) { + EMHBrancheBarrageRhone new_name = (EMHBrancheBarrageRhone) branche; + branchePersist=new BrancheBarrageRhone(); + //-- recuperation de la donnee de calcul de la branche --// - //-- recuperation de la formule --// - br.FormulePdc=((DonCalcSansPrtBrancheSeuilLateral)dataCalc).getFormulePdc(); - //-- on remplit la liste des elements seuils --// - br.ElemSeuils=remplirPersistanceAvecSeuilsDSCP(((DonCalcSansPrtBrancheSeuilLateral)dataCalc).getListElt()); + if( dataCalc instanceof DonCalcSansPrtBarrageFilEau){ + BrancheBarrageRhone br=(BrancheBarrageRhone)branchePersist; - }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())); - } + //-- 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 --// - }else if (branche instanceof EMHBrancheSeuilTransversal) { - EMHBrancheSeuilTransversal new_name = (EMHBrancheSeuilTransversal) branche; - branchePersist=new BrancheSeuilTransversal(); + br.ElemSeuils=remplirPersistanceAvecSeuilsBarragesDSCP(((DonCalcSansPrtBarrageFilEau)dataCalc).getListElt()); - //-- recuperation de la donnee de calcul de la branche --// - dataCalc=branche.getDSCP(); - if(dataCalc!=null ){ - if( dataCalc instanceof DonCalcSansPrtBrancheSeuilTransversal){ - BrancheSeuilTransversal br=(BrancheSeuilTransversal)branchePersist; - //-- recuperation de la formule --// - br.FormulePdc=((DonCalcSansPrtBrancheSeuilTransversal)dataCalc).getFormulePdc(); - //-- on remplit la liste des elements seuils --// - br.ElemSeuils=remplirPersistanceAvecSeuilsDSCP(((DonCalcSansPrtBrancheSeuilTransversal)dataCalc).getListElt()); - }else{ - listeMessageError.add(CrueRessource.getS("Branche : Donnee DSCP incorrecte (attendu. donnees branche seuil transversal) 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{ + listeMessageError.add(CrueRessource.getS("Branche : Donnee DSCP incorrecte (attendu. donnees branche barrage Rhone) pour l'objet branche de r\xE9f\xE9rence"+branche.getNom())); + } - } - // else if (branche instanceof EMHBrancheStrickler) { - // EMHBrancheStrickler new_name = (EMHBrancheStrickler) branche; - // branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheStrickler(); - // } + } + // 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) { - if(branchePersist!=null){ - branchePersist.NomRef=suffixe+branche.getNom(); + branchePersist=new BrancheOrifice(); + //-- recuperation de la donnee de calcul de la branche --// + if( dataCalc instanceof DonCalcSansPrtBrancheOrifice){ + BrancheOrifice br=(BrancheOrifice)branchePersist; - listePersistante.add(branchePersist); - }else{ - listeMessageError.add(CrueRessource.getS("Branche : Type branche non reconnue pour l'objet branche de r\xE9f\xE9rence "+branche.getNom())); - } + //-- 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 if (branche instanceof EMHBranchePdc) { + EMHBranchePdc new_name = (EMHBranchePdc) branche; + branchePersist=new BranchePdc(); + + //-- recuperation de la donnee de calcul de la branche --// + + + if( dataCalc instanceof DonCalcSansPrtBranchePDC){ + BranchePdc br=(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())); } - return listePersistante; + + + + }else if (branche instanceof EMHBrancheSaintVenant) { + EMHBrancheSaintVenant new_name = (EMHBrancheSaintVenant) branche; + branchePersist=new BrancheSaintVenant(); + //-- recuperation de la donnee de calcul de la branche --// + + + if( dataCalc instanceof DonCalcSansPrtBrancheSaintVenant){ + BrancheClassiqueAbstract br=(BrancheClassiqueAbstract)branchePersist; + + br.CoefBeta=((DonCalcSansPrtBrancheSaintVenant)dataCalc).getCoeffBeta(); + br.CoefRuis=((DonCalcSansPrtBrancheSaintVenant)dataCalc).getCoefRuis(); + br.CoefRuisQdm=((DonCalcSansPrtBrancheSaintVenant)dataCalc).getCoeffRuisQdm(); + + // //-- remplissage des sections de branches --// + // br.Sections=remplirPersistanceAvecSectionsBrancheDSCP( branche.getListeSections(), listeMessageError); + }else{ + listeMessageError.add(CrueRessource.getS("Branche : Donnee DSCP incorrecte (attendu. donnees branche SaintVenant) pour l'objet branche de r\xE9f\xE9rence"+branche.getNom())); + } + + + + }else if (branche instanceof EMHBrancheSeuilLongitudinale) { + EMHBrancheSeuilLongitudinale new_name = (EMHBrancheSeuilLongitudinale) branche; + branchePersist=new BrancheSeuilLateral(); + + //-- recuperation de la donnee de calcul de la branche --// + + + if( dataCalc instanceof DonCalcSansPrtBrancheSeuilLateral){ + BrancheSeuilLateral br=(BrancheSeuilLateral)branchePersist; + + //-- recuperation de la formule --// + br.FormulePdc=((DonCalcSansPrtBrancheSeuilLateral)dataCalc).getFormulePdc(); + //-- on remplit la liste des elements seuils --// + br.ElemSeuils=remplirPersistanceAvecSeuilsDSCP(((DonCalcSansPrtBrancheSeuilLateral)dataCalc).getListElt()); + + }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 if (branche instanceof EMHBrancheSeuilTransversal) { + EMHBrancheSeuilTransversal new_name = (EMHBrancheSeuilTransversal) branche; + branchePersist=new BrancheSeuilTransversal(); + + //-- recuperation de la donnee de calcul de la branche --// + + if( dataCalc instanceof DonCalcSansPrtBrancheSeuilTransversal){ + BrancheSeuilTransversal br=(BrancheSeuilTransversal)branchePersist; + //-- recuperation de la formule --// + br.FormulePdc=((DonCalcSansPrtBrancheSeuilTransversal)dataCalc).getFormulePdc(); + //-- on remplit la liste des elements seuils --// + br.ElemSeuils=remplirPersistanceAvecSeuilsDSCP(((DonCalcSansPrtBrancheSeuilTransversal)dataCalc).getListElt()); + }else{ + listeMessageError.add(CrueRessource.getS("Branche : Donnee DSCP incorrecte (attendu. donnees branche seuil transversal) pour l'objet branche de r\xE9f\xE9rence"+branche.getNom())); + } + + + + } + // else if (branche instanceof EMHBrancheStrickler) { + // EMHBrancheStrickler new_name = (EMHBrancheStrickler) branche; + // branchePersist=new main.java.org.fudaa.dodico.crue.dao.DaoStructuresFormatDSCP.BrancheStrickler(); + // } + + if(branchePersist!=null){ + branchePersist.NomRef=suffixe+branche.getNom(); + + + + listePersistante.add(branchePersist); + }else{ + listeMessageError.add(CrueDaoFactoryCommom.unknowEMH("Branche", branche.getNom())); + } + + + + + } @@ -353,248 +401,241 @@ * @param data * @return */ - public static List<SectionBrancheAbstract> remplirPersistanceAvecSectionsBrancheDSCP(List<CatEMHSection> data,List<String> listeMessageError){ - List<SectionBrancheAbstract> listePersistante=new ArrayList<SectionBrancheAbstract>(); - 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(); - } + public static void remplirPersistanceAvecSectionsBrancheDSCP(List<SectionBrancheAbstract> listePersistante,CatEMHSection section,DonCalcSansPrtSection prtSection,List<String> listeMessageError){ - //-- commun --// - if(sectionPersist!=null ){ - if(section.getDataCalcul()!=null){ - sectionPersist.NomRef=CrueDaoPersistDRSO.SUFFIXE_REF_DRSO+section.getNom(); - sectionPersist.CoefConv=section.getDataCalcul().getCoeffConv(); - sectionPersist.CoefDiv=section.getDataCalcul().getCoeffDiv(); - sectionPersist.CoefPond=section.getDataCalcul().getCoeffPond(); - } - else{ - listeMessageError.add(CrueRessource.getS("Section : Type section non reconnue pour l'objet section de r\xE9f\xE9rence "+section.getNom())); - } - listePersistante.add(sectionPersist); - }else{ - listeMessageError.add(CrueRessource.getS("Section : Type section non reconnue pour l'objet section de r\xE9f\xE9rence "+section.getNom())); - } - } - } - return listePersistante; - } - - /** - * 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 remplirBrancheAvecPersistanceDSCP(List<BrancheAbstract> listePersistants,List<EMH> data,List<String> listeMessageError ){ - if(listePersistants==null || listePersistants.size()==0){ - listeMessageError.add(CrueRessource.getS("Branches: la liste est vide.")); + SectionBrancheAbstract sectionPersist=null; + if(section instanceof EMHSectionIdem){ + sectionPersist=new SectionIdem(); }else - for(Object persist:listePersistants ){ - if(persist instanceof BrancheAbstract){ - BrancheAbstract branchePersist=(BrancheAbstract) persist; - String reference=branchePersist.NomRef; - if(reference.contains(CrueDaoPersistDRSO.SUFFIXE_REF_DRSO)){ - reference=reference.replace(CrueDaoPersistDRSO.SUFFIXE_REF_DRSO,""); + if(section instanceof EMHSectionInterpolee){ + sectionPersist=new SectionInterpolee(); + }else + if(section instanceof EMHSectionProfil){ + sectionPersist=new SectionProfil(); + }else + if(section instanceof EMHSectionSansGeometrie){ + sectionPersist=new SectionSansGeometrie(); } - 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 instanceof BrancheClassiqueAbstract){ - BrancheClassiqueAbstract br=(BrancheClassiqueAbstract)branchePersist; - DonCalcSansPrtBrancheSaintVenant dataCalcul=new DonCalcSansPrtBrancheSaintVenant(); - dataCalcul.setCoeffBeta(br.CoefBeta); - dataCalcul.setCoefRuis(br.CoefRuis); - dataCalcul.setCoeffRuisQdm(br.CoefRuisQdm); - branche.addDSCP(dataCalcul); - //-- remplissage des sections --// - remplirSectionsAvecPersistanceDSCP(br.Sections, branche, listeMessageError); - } - //-- branche seuil --// - else if(branchePersist instanceof BrancheSeuilAbstract){ - BrancheSeuilAbstract br=(BrancheSeuilAbstract)branchePersist; - if((branche instanceof EMHBrancheSeuilLongitudinale) ){ - DonCalcSansPrtBrancheSeuilLateral dataCalcul=new DonCalcSansPrtBrancheSeuilLateral(); - //-- recuperation de la formule --// - dataCalcul.setFormulePdc(br.FormulePdc); - //-- on remplit la liste des elements seuils --// - dataCalcul.setListElt(remplirSeuilsAvecPersistanceDSCP(br.ElemSeuils)); - branche.addDSCP(dataCalcul); - } - else if( (branche instanceof EMHBrancheSeuilTransversal)){ - DonCalcSansPrtBrancheSeuilTransversal dataCalcul=new DonCalcSansPrtBrancheSeuilTransversal(); - //-- recuperation de la formule --// - dataCalcul.setFormulePdc(br.FormulePdc); - //-- on remplit la liste des elements seuils --// - dataCalcul.setListElt(remplirSeuilsAvecPersistanceDSCP(br.ElemSeuils)); - branche.addDSCP(dataCalcul); - }else{ - listeMessageError.add(CrueRessource.getS("Branche : Les donnees de la branche de r\xE9f\xE9rence "+reference+" doivent \xEAtre de type Transversal ou Longitudinal (liste de seuils+ formule pdc)")); - } + if(section.getDataCalcul()!=null){ + sectionPersist.NomRef=CrueDaoPersistDRSO.SUFFIXE_REF_DRSO+section.getNom(); + sectionPersist.CoefConv=prtSection.getCoeffConv(); + sectionPersist.CoefDiv=prtSection.getCoeffDiv(); + sectionPersist.CoefPond=prtSection.getCoeffPond(); + } - } - //-- branche seuils orifices --// - else if(branchePersist instanceof BrancheSeuilOrificeAbstract){ - BrancheSeuilOrificeAbstract br=(BrancheSeuilOrificeAbstract)branchePersist; - DonCalcSansPrtBrancheOrifice dataCalcul=new DonCalcSansPrtBrancheOrifice(); + listePersistante.add(sectionPersist); + +} + + + + +/** + * 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 remplirBrancheAvecPersistanceDSCP(List<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 BrancheAbstract){ + BrancheAbstract branchePersist=(BrancheAbstract) persist; + String reference=branchePersist.NomRef; + if(reference.contains(CrueDaoPersistDRSO.SUFFIXE_REF_DRSO)){ + reference=reference.replace(CrueDaoPersistDRSO.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 instanceof BrancheClassiqueAbstract){ + BrancheClassiqueAbstract br=(BrancheClassiqueAbstract)branchePersist; + DonCalcSansPrtBrancheSaintVenant dataCalcul=new DonCalcSansPrtBrancheSaintVenant(); + dataCalcul.setCoeffBeta(br.CoefBeta); + dataCalcul.setCoefRuis(br.CoefRuis); + dataCalcul.setCoeffRuisQdm(br.CoefRuisQdm); + branche.addDSCP(dataCalcul); + //-- remplissage des sections --// + // remplirSectionsAvecPersistanceDSCP(br.Sections, branche, listeMessageError); + } + //-- branche seuil --// + else if(branchePersist instanceof BrancheSeuilAbstract){ + BrancheSeuilAbstract br=(BrancheSeuilAbstract)branchePersist; + + if((branche instanceof EMHBrancheSeuilLongitudinale) ){ + DonCalcSansPrtBrancheSeuilLateral dataCalcul=new DonCalcSansPrtBrancheSeuilLateral(); + //-- recuperation de la formule --// dataCalcul.setFormulePdc(br.FormulePdc); //-- on remplit la liste des elements seuils --// - dataCalcul.setElement(remplirOrificesSeuilsAvecPersistanceDSCP(br.ElemOrifices)); + dataCalcul.setListElt(remplirSeuilsAvecPersistanceDSCP(br.ElemSeuils)); branche.addDSCP(dataCalcul); - } - //-- branche seuils PDC --// - else if(branchePersist instanceof BranchePDCAbstract){ - BranchePDCAbstract br=(BranchePDCAbstract)branchePersist; - DonCalcSansPrtBranchePDC dataCalcul=new DonCalcSansPrtBranchePDC(); + } + else if( (branche instanceof EMHBrancheSeuilTransversal)){ + DonCalcSansPrtBrancheSeuilTransversal dataCalcul=new DonCalcSansPrtBrancheSeuilTransversal(); + //-- recuperation de la formule --// - Loi newLoi=new Loi(); - newLoi.setNom(br.Loi); - dataCalcul.setPdc_DZ(newLoi); + dataCalcul.setFormulePdc(br.FormulePdc); + //-- on remplit la liste des elements seuils --// + dataCalcul.setListElt(remplirSeuilsAvecPersistanceDSCP(br.ElemSeuils)); branche.addDSCP(dataCalcul); + }else{ + listeMessageError.add(CrueRessource.getS("Branche : Les donnees de la branche de r\xE9f\xE9rence "+reference+" doivent \xEAtre de type Transversal ou Longitudinal (liste de seuils+ formule pdc)")); } - else if(branchePersist instanceof BrancheBarrageFilEauAbstract){ - BrancheBarrageFilEauAbstract br=(BrancheBarrageFilEauAbstract)branchePersist; - DonCalcSansPrtBarrageFilEau dataCalcul=new DonCalcSansPrtBarrageFilEau(); - //-- recuperation de la formule --// - Loi newLoi=new Loi(); - newLoi.setNom(br.Loi); - dataCalcul.setRegimeDenove_Zam(newLoi); - dataCalcul.setQLimInf(br.QLimInf); - dataCalcul.setQLimSup(br.QLimSup); + } + //-- branche seuils orifices --// + else if(branchePersist instanceof BrancheSeuilOrificeAbstract){ + BrancheSeuilOrificeAbstract br=(BrancheSeuilOrificeAbstract)branchePersist; + DonCalcSansPrtBrancheOrifice dataCalcul=new DonCalcSansPrtBrancheOrifice(); + //-- recuperation de la formule --// + dataCalcul.setFormulePdc(br.FormulePdc); + //-- on remplit la liste des elements seuils --// + dataCalcul.setElement(remplirOrificesSeuilsAvecPersistanceDSCP(br.ElemOrifices)); + branche.addDSCP(dataCalcul); + } + //-- branche seuils PDC --// + else if(branchePersist instanceof BranchePDCAbstract){ + BranchePDCAbstract br=(BranchePDCAbstract)branchePersist; + DonCalcSansPrtBranchePDC dataCalcul=new DonCalcSansPrtBranchePDC(); + //-- recuperation de la formule --// + Loi newLoi=new Loi(); + newLoi.setNom(br.Loi); + dataCalcul.setPdc_DZ(newLoi); + branche.addDSCP(dataCalcul); + } + else if(branchePersist instanceof BrancheBarrageFilEauAbstract){ + BrancheBarrageFilEauAbstract br=(BrancheBarrageFilEauAbstract)branchePersist; + DonCalcSansPrtBarrageFilEau dataCalcul=new DonCalcSansPrtBarrageFilEau(); - //-- on remplit la liste des elements seuils --// - dataCalcul.setListElt(remplirSeuilsBarragesAvecPersistanceDSCP(br.ElemSeuils)); - branche.addDSCP(dataCalcul); + //-- recuperation de la formule --// + Loi newLoi=new Loi(); + newLoi.setNom(br.Loi); + dataCalcul.setRegimeDenove_Zam(newLoi); + dataCalcul.setQLimInf(br.QLimInf); + dataCalcul.setQLimSup(br.QLimSup); - } + //-- on remplit la liste des elements seuils --// + dataCalcul.setListElt(remplirSeuilsBarragesAvecPersistanceDSCP(br.ElemSeuils)); + branche.addDSCP(dataCalcul); + } - else{ - listeMessageError.add(CrueRessource.getS("Branche : Donn\xE9es non correcte. La branche de r\xE9f\xE9rence "+reference+" contient des \xE9l\xE9ments de calcul innatendu.")); - } + + else{ + listeMessageError.add(CrueRessource.getS("Branche : Donn\xE9es non correcte. La branche de r\xE9f\xE9rence "+reference+" contient des \xE9l\xE9ments de calcul innatendu.")); } + } - } } + } - } +} - /** - * Genere une liste d'elements seuils persistante a partir de la liste m\xE9tier lue. - * @param listeEltSeuilsPersist - * @return - */ - public static List<ElemSeuilAvecPdc> remplirSeuilsAvecPersistanceDSCP(List< ElemSeuilPdc > listeSeuilsPersist){ - List<ElemSeuilAvecPdc> listeEltSeuilsEMH =new ArrayList<ElemSeuilAvecPdc>(); - for(ElemSeuilPdc seuilPersist:listeSeuilsPersist ){ - ElemSeuilAvecPdc seuilMetier =new ElemSeuilAvecPdc(); - seuilMetier.setCoeffD(seuilPersist.CoefD); - seuilMetier.setCoeffPdc(seuilPersist.CoefPdc); - seuilMetier.setLarg(seuilPersist.Larg); - seuilMetier.setZSeuil(seuilPersist.Zseuil); +/** + * Genere une liste d'elements seuils persistante a partir de la liste m\xE9tier lue. + * @param listeEltSeuilsPersist + * @return + */ +public static List<ElemSeuilAvecPdc> remplirSeuilsAvecPersistanceDSCP(List< ElemSeuilPdc > listeSeuilsPersist){ + List<ElemSeuilAvecPdc> listeEltSeuilsEMH =new ArrayList<ElemSeuilAvecPdc>(); + for(ElemSeuilPdc seuilPersist:listeSeuilsPersist ){ + ElemSeuilAvecPdc seuilMetier =new ElemSeuilAvecPdc(); + seuilMetier.setCoeffD(seuilPersist.CoefD); + seuilMetier.setCoeffPdc(seuilPersist.CoefPdc); + seuilMetier.setLarg(seuilPersist.Larg); + seuilMetier.setZSeuil(seuilPersist.Zseuil); - listeEltSeuilsEMH.add(seuilMetier); - } - - return listeEltSeuilsEMH; + listeEltSeuilsEMH.add(seuilMetier); } - /** - * Genere une liste d'elements seuils persistante a partir de la liste m\xE9tier lue. - * @param listeEltSeuilsPersist - * @return - */ - public static List<main.java.org.fudaa.dodico.crue.metier.emh.ElemSeuil> remplirSeuilsBarragesAvecPersistanceDSCP(List< ElemSeuil > listeSeuilsPersist){ - List<main.java.org.fudaa.dodico.crue.metier.emh.ElemSeuil> listeEltSeuilsEMH =new ArrayList<main.java.org.fudaa.dodico.crue.metier.emh.ElemSeuil>(); - for(ElemSeuil seuilPersist:listeSeuilsPersist ){ - main.java.org.fudaa.dodico.crue.metier.emh.ElemSeuil seuilMetier =new main.java.org.fudaa.dodico.crue.metier.emh.ElemSeuil(); - seuilMetier.setCoeffD(seuilPersist.CoefD); - seuilMetier.setLarg(seuilPersist.Larg); - seuilMetier.setZSeuil(seuilPersist.Zseuil); + return listeEltSeuilsEMH; +} +/** + * Genere une liste d'elements seuils persistante a partir de la liste m\xE9tier lue. + * @param listeEltSeuilsPersist + * @return + */ +public static List<main.java.org.fudaa.dodico.crue.metier.emh.ElemSeuil> remplirSeuilsBarragesAvecPersistanceDSCP(List< ElemSeuil > listeSeuilsPersist){ + List<main.java.org.fudaa.dodico.crue.metier.emh.ElemSeuil> listeEltSeuilsEMH =new ArrayList<main.java.org.fudaa.dodico.crue.metier.emh.ElemSeuil>(); + for(ElemSeuil seuilPersist:listeSeuilsPersist ){ + main.java.org.fudaa.dodico.crue.metier.emh.ElemSeuil seuilMetier =new main.java.org.fudaa.dodico.crue.metier.emh.ElemSeuil(); + seuilMetier.setCoeffD(seuilPersist.CoefD); - listeEltSeuilsEMH.add(seuilMetier); - } + seuilMetier.setLarg(seuilPersist.Larg); + seuilMetier.setZSeuil(seuilPersist.Zseuil); - return listeEltSeuilsEMH; + listeEltSeuilsEMH.add(seuilMetier); } - /** - * Genere une liste d'elements seuils m\xE9tier a partir de la liste persistante lue. - * @param listeEltSeuilsPersist - * @return - */ - public static List<main.java.org.fudaa.dodico.crue.metier.emh.ElemOrifice> remplirOrificesSeuilsAvecPersistanceDSCP(List<ElemSeuilOrifice> listeEltSeuilsPersist){ - List<main.java.org.fudaa.dodico.crue.metier.emh.ElemOrifice> listeEMhSeuils=new ArrayList<main.java.org.fudaa.dodico.crue.metier.emh.ElemOrifice>(); - for(ElemSeuilOrifice seuilPersist:listeEltSeuilsPersist ){ - main.java.org.fudaa.dodico.crue.metier.emh.ElemOrifice seuilMetier=new main.java.org.fudaa.dodico.crue.metier.emh.ElemOrifice(); - seuilMetier.setCoeffQ(seuilPersist.CoefD); - seuilMetier.setLarg(seuilPersist.Larg); - seuilMetier.setZSeuil(seuilPersist.Zseuil); - seuilMetier.setCoeffCtrLim(seuilPersist.CoefCtrLim); - seuilMetier.setSens(seuilPersist.Sens); + return listeEltSeuilsEMH; +} +/** + * Genere une liste d'elements seuils m\xE9tier a partir de la liste persistante lue. + * @param listeEltSeuilsPersist + * @return + */ +public static List<main.java.org.fudaa.dodico.crue.metier.emh.ElemOrifice> remplirOrificesSeuilsAvecPersistanceDSCP(List<ElemSeuilOrifice> listeEltSeuilsPersist){ + List<main.java.org.fudaa.dodico.crue.metier.emh.ElemOrifice> listeEMhSeuils=new ArrayList<main.java.org.fudaa.dodico.crue.metier.emh.ElemOrifice>(); + for(ElemSeuilOrifice seuilPersist:listeEltSeuilsPersist ){ + main.java.org.fudaa.dodico.crue.metier.emh.ElemOrifice seuilMetier=new main.java.org.fudaa.dodico.crue.metier.emh.ElemOrifice(); + seuilMetier.setCoeffQ(seuilPersist.CoefD); + seuilMetier.setLarg(seuilPersist.Larg); + seuilMetier.setZSeuil(seuilPersist.Zseuil); - listeEMhSeuils.add(seuilMetier); - } + seuilMetier.setCoeffCtrLim(seuilPersist.CoefCtrLim); + seuilMetier.setSens(seuilPersist.Sens); - return listeEMhSeuils; + listeEMhSeuils.add(seuilMetier); } - /** - * Methode qui met a jour les objets m\xE9tier EMH sections de branches a partir des donn\xE9es persistantes qui constituent a quatrieme partie du fichier DSCP: les Sections. - * @param data - * @return - */ - public static void remplirSectionsAvecPersistanceDSCP(List<SectionBrancheAbstract> listePersistantsSection,CatEMHBranche branche,List<String> listeMessageError){ + return listeEMhSeuils; +} - if(listePersistantsSection==null || listePersistantsSection.size()==0){ - listeMessageError.add(CrueRessource.getS("Sections : la liste est vide.")); - }else - for(Object persist:listePersistantsSection ){ - if(persist instanceof SectionBrancheAbstract){ - SectionBrancheAbstract sectionPersist=(SectionBrancheAbstract) persist; +/** + * Methode qui met a jour les objets m\xE9tier EMH sections de branches a partir des donn\xE9es persistantes qui constituent a quatrieme partie du fichier DSCP: les Sections. + * @param data + * @return + */ +public static void remplirSectionsAvecPersistanceDSCP(List<SectionBrancheAbstract> listePersistantsSection,List<EMH> data,List<String> listeMessageError){ - //-- on d\xE9clare une version abstraite EMH m\xE9tier du type --// - CatEMHSection section=null; - String reference=sectionPersist.NomRef; + if(listePersistantsSection==null || listePersistantsSection.size()==0){ + listeMessageError.add(CrueRessource.getS("Sections : la liste est vide.")); + }else + for(Object persist:listePersistantsSection ){ + if(persist instanceof SectionBrancheAbstract){ + SectionBrancheAbstract sectionPersist=(SectionBrancheAbstract) persist; - if(reference.contains(CrueDaoPersistDRSO.SUFFIXE_REF_DRSO)){ - reference=reference.replace(CrueDaoPersistDRSO.SUFFIXE_REF_DRSO,""); - } - section=CatEMHSection.findByReference(reference, branche.getListeSections()); + //-- on d\xE9clare une version abstraite EMH m\xE9tier du type --// + CatEMHSection section=null; + String reference=sectionPersist.NomRef; - if(section!=null){ - DonCalcSansPrtSection dataCalcul=new DonCalcSansPrtSection(); + if(reference.contains(CrueDaoPersistDRSO.SUFFIXE_REF_DRSO)){ + reference=reference.replace(CrueDaoPersistDRSO.SUFFIXE_REF_DRSO,""); + } + section=CatEMHSection.findByReference(reference,data); - dataCalcul.setCoeffConv(sectionPersist.CoefConv); - dataCalcul.setCoeffDiv(sectionPersist.CoefDiv); - dataCalcul.setCoeffPond(sectionPersist.CoefPond); - section.addDSCP(dataCalcul); - } - else - listeMessageError.add(CrueRessource.getS("Sections de la branche "+branche.getNom()+" : Impossible de trouver la section de r\xE9f\xE9rence "+reference)); + if(section!=null){ + DonCalcSansPrtSection dataCalcul=new DonCalcSansPrtSection(); + + dataCalcul.setCoeffConv(sectionPersist.CoefConv); + dataCalcul.setCoeffDiv(sectionPersist.CoefDiv); + dataCalcul.setCoeffPond(sectionPersist.CoefPond); + section.addDSCP(dataCalcul); } + else + listeMessageError.add(CrueDaoFactoryCommom.unknowReference("Section",reference)); } + } - } +} } Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDPTG.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDPTG.java 2009-03-13 16:16:15 UTC (rev 4542) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDPTG.java 2009-03-13 20:12:02 UTC (rev 4543) @@ -13,6 +13,7 @@ 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.CrueData; import main.java.org.fudaa.dodico.crue.metier.emh.DonFrt; import main.java.org.fudaa.dodico.crue.metier.emh.DonPrtGeo; import main.java.org.fudaa.dodico.crue.metier.emh.DonPrtGeoBrancheSaintVenant; @@ -45,18 +46,25 @@ * @param data * @param listeMessageError */ - public static void remplirPersistanceDPTG(CrueDaoPersistDPTG persistance,List<EMH> data,List<String> listeMessageError){ + public static void remplirPersistanceDPTG(CrueDaoPersistDPTG persistance,CrueData data,List<String> listeMessageError){ //-- liste qui assure d'ajouter une seule r\xE9f\xE9rence de profil: car un meme profil peut etre referenc\xE9 plusieurs fois List<DonPrtGeoProfilCommun> listeProfilUniqueReference=new ArrayList<DonPrtGeoProfilCommun>(); - if(data==null || data.size()==0){ + persistance.Profils=new ArrayList<profilDPTG>(); + persistance.Branches=new ArrayList<BrancheSaintVenant>(); + persistance.Sections=new ArrayList<SectionIdem>(); + + if(data.getAllEMH()==null || data.getAllEMH().size()==0){ listeMessageError.add(CrueRessource.getS("DPTG: la liste est vide.")); }else - for(EMH emh:data ){ + for(EMH emh:data.getAllEMH() ){ if(emh.getDPTG()!=null){ - DonPrtGeo donnee=emh.getDPTG(); + List<DonPrtGeo> donnees=emh.getDPTG(); + + for(DonPrtGeo donnee:donnees){ + //-- c'est un profil if(donnee instanceof DonPrtGeoProfilCommun){ if(!listeProfilUniqueReference.contains((DonPrtGeoProfilCommun)donnee)){ @@ -72,7 +80,7 @@ } } - + } } } @@ -84,6 +92,8 @@ * @return */ public static void remplirPersistanceAvecProfilsDPTG(List<profilDPTG> listePersistante,DonPrtGeoProfilCommun prtgeo,List<String> listeMessageError){ + + profilDPTG profilPersistant=null; if(prtgeo instanceof DonPrtGeoCasierProfil){ profilPersistant=new ProfilCasier(); @@ -147,6 +157,7 @@ public static void remplirPersistanceAvecSectionsDPTG(List<SectionIdem> listePersistante,DonPrtGeoSectionIdem prtgeo,EMH emh,List<String> listeMessageError){ + SectionIdem sectionPersist=new SectionIdem(); sectionPersist.NomRef=CrueDaoPersistDRSO.SUFFIXE_REF_DRSO+emh.getNom(); sectionPersist.Dz=prtgeo.getDW(); @@ -173,19 +184,19 @@ * @param frottements * @param listeMessageError */ - public static void remplirMetierDPTG(CrueDaoPersistDPTG persistance,List<EMH> data,List<DonFrt> frottements,List<String> listeMessageError){ + public static void remplirMetierDPTG(CrueDaoPersistDPTG persistance,CrueData data,List<String> listeMessageError){ if(persistance==null ){ listeMessageError.add(CrueRessource.getS("DPTG: Aucunes donn\xE9es DPTG.")); }else { //-- cas des Profils --// - remplirProf... [truncated message content] |