|
From: <had...@us...> - 2009-04-03 16:08:43
|
Revision: 4611
http://fudaa.svn.sourceforge.net/fudaa/?rev=4611&view=rev
Author: hadouxad
Date: 2009-04-03 16:08:15 +0000 (Fri, 03 Apr 2009)
Log Message:
-----------
* Refactorisation de l'application:
o les fichiers de tests sont dans le package des tests, plus de chemins en dur...
o Refactorisation des finder dans un package helper, ces m?\195?\169thodes statiques sont appel?\195?\169es pour r?\195?\169cup?\195?\169rer les emh.
o Rennomage de certaines classes (factory->converter...)
* Mise en place des tests unitaires
o Mise en place des tests unitaires dans le sous projet dodico
o Ecriture d'une interface qui d?\195?\169finit le contrat minimal de m?\195?\169thodes ?\195?\160 tester pour les tests unitaires (lecture,ecriture, les 2 , ecriture d'au moins une methode de test asser en lecture et ecriture)
o Mise en place du r?\195?\169pertoire de fichiers de tests utilis?\195?\169s par tous les tests unitaires : le r?\195?\169pertoire se nomme fichierTest et situe dans le package de test org.fudaa.dodico.crue.dao
o Exemples mis en place pour les tests DRSO et ETU.
Modified Paths:
--------------
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoPersistDCSP.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoPersistDFRT.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoPersistDPTG.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoPersistDPTI.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoPersistDRSO.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoPersistETU.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoPersistOPTG.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDCSP.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDFRT.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDPTG.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDPTI.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDRSO.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatETU.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/validatorXml/ValidatorXml.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/inout/fileformat/EtuFileFormat.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHBranche.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHCasier.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHNoeud.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/metier/emh/CatEMHSection.java
trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/dao/AppCrueTest.java
trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/dao/TestCrueDCSPFile.java
trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/dao/TestCrueDFRTFile.java
trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/dao/TestCrueDPTGFile.java
trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/dao/TestCrueDPTIFile.java
trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/dao/TestCrueDRSOFile.java
trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/dao/TestCrueETU.java
trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/dao/TestCrueInterface.java
trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/dao/TestCrueOPTGFile.java
trunk/soft/fudaa-crue/fudaa/src/main/java/org/fudaa/fudaa/test/AppCrueTest.java
Added Paths:
-----------
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterCommon.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterDCSP.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterDFRT.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterDPTG.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterDPTI.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterDRSO.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterETU.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/metier/helper/
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/metier/helper/EMHBrancheHelper.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/metier/helper/EMHCasierHelper.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/metier/helper/EMHNoeudHelper.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/metier/helper/EMHSectionHelper.java
trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/dao/fichierTest/
trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/dao/fichierTest/Etude.etu.xml
Removed Paths:
-------------
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryCommon.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDCSP.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDFRT.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDPTG.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDPTI.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDRSO.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryETU.java
trunk/soft/fudaa-crue/fudaa/src/main/java/org/fudaa/fudaa/test/java/org/fudaa/
Copied: trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterCommon.java (from rev 4607, trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryCommon.java)
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterCommon.java (rev 0)
+++ trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterCommon.java 2009-04-03 16:08:15 UTC (rev 4611)
@@ -0,0 +1,145 @@
+package org.fudaa.dodico.crue.dao;
+
+import java.util.Date;
+
+import org.fudaa.ctulu.CtuluAnalyze;
+import org.fudaa.dodico.crue.common.CrueResource;
+import org.fudaa.dodico.crue.metier.emh.PtProfil;
+
+/**
+ * Plusieurs m\xE9thodes et classes communes utilis\xE9es pour les factory.
+ *
+ * @author Adrien Hadoux
+ */
+public class CrueDaoConverterCommon {
+
+ public static String VersionCrue = "0.0";
+ public static String Commentaire = "Genere par Fudaa le " + new Date(System.currentTimeMillis());
+
+ // -- listing des diff\xE9rents fichiers et leur noms utilis\xE9s --//
+ public static String ETU = "ETU";
+
+ public static String DRSO = "DRSO";
+ public static String ORES = "ORES";
+ public static String OCAL = "OCAL";
+ public static String PCAL = "PCAL";
+ public static String DCLM = "DCLM";
+ public static String DLHY = "DLHY";
+ public static String OPTR = "OPTR";
+ public static String OPTG = "OPTG";
+ public static String OPTI = "OPTI";
+ public static String PNUM = "PNUM";
+ public static String DPTI = "DPTI";
+ public static String DCSP = "DCSP";
+ public static String DPTG = "DPTG";
+ public static String DFRT = "DFRT";
+ public static String DC = "DC";
+ public static String DH = "DH";
+
+ // -- fichiers de resultats --//
+ public static String FICHIERRESULTAT = "RESULTAT";
+
+ public static String RPTR = "RPTR";
+ public static String RPTG = "RPTG";
+ public static String RPTI = "RPTI";
+ public static String RCAL = "RCAL";
+
+ /**
+ * Construit un ptProfil a partir d'une chaine de caracteres. Utilis\xE9 pour DPTG
+ *
+ * @param buff
+ * @param listeMessageError
+ * @param nameError
+ * @return
+ */
+ public static PtProfil createFormString(final StringBuffer buff, final CtuluAnalyze analyser, final String nameError) {
+ final int indiceCesure = buff.lastIndexOf(" ");
+ final String val1 = buff.substring(0, indiceCesure);
+ final String val2 = buff.substring(indiceCesure + 1, buff.length());
+ double x = 0;
+ try {
+ x = Double.parseDouble(val1);
+
+ } catch (final NumberFormatException e) {
+ analyser.addInfo(CrueResource.getS("Profil: " + nameError + ": impossible de r\xE9cup\xE9rer la lim debut du contenu: "
+ + buff));
+ }
+ double y = 0;
+ try {
+ y = Double.parseDouble(val2);
+ } catch (final NumberFormatException e) {
+ analyser.addInfo(CrueResource.getS("Profil: " + nameError + ": impossible de r\xE9cup\xE9rer la lim debut du contenu: "
+ + buff));
+ }
+
+ final PtProfil profil = new PtProfil(x, y);
+ return profil;
+ }
+
+ public static PtProfil createFormString(final String buff, final CtuluAnalyze analyser, final String nameError) {
+ return createFormString(new StringBuffer(buff), analyser, nameError);
+ }
+
+ /**
+ * Message qui indique la balise n'est pas reconnue par les structures de donn\xE9es EMH.
+ *
+ * @param balise
+ * @param nomRef
+ * @return
+ */
+ public static String unknowEMH(final String balise, final String nomEMH) {
+ return CrueResource.getS(balise + ": Il n'existe pas de structure de donn\xE9e EMH pour l'objet " + nomEMH);
+ }
+
+ public static String unknowdataFromFile(final String balise, final String FileType, final String nomEMH) {
+ return CrueResource.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
+ * @param nomRef
+ * @return
+ */
+ public static String unknowReference(final String balise, final String nomRef) {
+ return CrueResource.getS(balise + ": Impossible de trouver " + balise + " de r\xE9f\xE9rence " + nomRef);
+
+ }
+
+ /**
+ * Envoie un message formatt\xE9 pour une erreur de doublons d'id
+ *
+ * @param balise
+ * @param nomRef
+ * @return
+ */
+ public static String errorIdNonUnique(final String balise, final String nomRef) {
+ return CrueResource.getS("<" + balise + ">: l'id " + nomRef + " est en doublon, il ne sera donc pas ");
+
+ }
+
+ public static String messageBaliseError(final String balise, final String message) {
+ return CrueResource.getS(balise + ": " + message);
+
+ }
+
+ /**
+ * Message qui indique la balise n'est pas reconnue par les structures de donn\xE9es EMH.
+ *
+ * @param balise
+ * @param nomRef
+ * @return
+ */
+ public static String listEmpty(final String balise) {
+ return CrueResource.getS("Sections <" + balise + ">: la liste est vide.");
+
+ }
+
+ public static String emhEmpty(final String balise) {
+ return CrueResource.getS("EMH: Aucune donn\xE9es EMH trouv\xE9e pour <" + balise + ">.");
+
+ }
+
+}
Property changes on: trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterCommon.java
___________________________________________________________________
Added: svn:mergeinfo
+
Copied: trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterDCSP.java (from rev 4607, trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDCSP.java)
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterDCSP.java (rev 0)
+++ trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterDCSP.java 2009-04-03 16:08:15 UTC (rev 4611)
@@ -0,0 +1,670 @@
+package org.fudaa.dodico.crue.dao;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.fudaa.ctulu.CtuluAnalyze;
+import org.fudaa.dodico.crue.common.CrueResource;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.BrancheAbstract;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.BrancheBarrageFilEau;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.BrancheBarrageFilEauAbstract;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.BrancheBarrageGenerique;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.BrancheBarrageRhone;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.BrancheClassiqueAbstract;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.BrancheOrifice;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.BranchePDCAbstract;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.BranchePdc;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.BrancheSaintVenant;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.BrancheSeuilAbstract;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.BrancheSeuilLateral;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.BrancheSeuilOrificeAbstract;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.BrancheSeuilTransversal;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.ElemSeuil;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.ElemSeuilOrifice;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.ElemSeuilPdc;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.SectionBrancheAbstract;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.SectionIdem;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.SectionInterpolee;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.SectionProfil;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDCSP.SectionSansGeometrie;
+import org.fudaa.dodico.crue.metier.emh.CatEMHBranche;
+import org.fudaa.dodico.crue.metier.emh.CatEMHSection;
+import org.fudaa.dodico.crue.metier.emh.DonCalcSansPrt;
+import org.fudaa.dodico.crue.metier.emh.DonCalcSansPrtBarrageFilEau;
+import org.fudaa.dodico.crue.metier.emh.DonCalcSansPrtBrancheOrifice;
+import org.fudaa.dodico.crue.metier.emh.DonCalcSansPrtBranchePDC;
+import org.fudaa.dodico.crue.metier.emh.DonCalcSansPrtBrancheSaintVenant;
+import org.fudaa.dodico.crue.metier.emh.DonCalcSansPrtBrancheSeuilLateral;
+import org.fudaa.dodico.crue.metier.emh.DonCalcSansPrtBrancheSeuilTransversal;
+import org.fudaa.dodico.crue.metier.emh.DonCalcSansPrtSection;
+import org.fudaa.dodico.crue.metier.emh.EMH;
+import org.fudaa.dodico.crue.metier.emh.EMHBrancheBarrageFilEau;
+import org.fudaa.dodico.crue.metier.emh.EMHBrancheBarrageGenerique;
+import org.fudaa.dodico.crue.metier.emh.EMHBrancheBarrageRhone;
+import org.fudaa.dodico.crue.metier.emh.EMHBrancheOrifice;
+import org.fudaa.dodico.crue.metier.emh.EMHBranchePdc;
+import org.fudaa.dodico.crue.metier.emh.EMHBrancheSaintVenant;
+import org.fudaa.dodico.crue.metier.emh.EMHBrancheSeuilLongitudinale;
+import org.fudaa.dodico.crue.metier.emh.EMHBrancheSeuilTransversal;
+import org.fudaa.dodico.crue.metier.emh.EMHSectionIdem;
+import org.fudaa.dodico.crue.metier.emh.EMHSectionInterpolee;
+import org.fudaa.dodico.crue.metier.emh.EMHSectionProfil;
+import org.fudaa.dodico.crue.metier.emh.EMHSectionSansGeometrie;
+import org.fudaa.dodico.crue.metier.emh.ElemSeuilAvecPdc;
+import org.fudaa.dodico.crue.metier.emh.Loi;
+import org.fudaa.dodico.crue.metier.helper.EMHBrancheHelper;
+import org.fudaa.dodico.crue.metier.helper.EMHSectionHelper;
+
+/**
+ * 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 CrueDaoConverterDCSP {
+
+ public static int cptEntries = 1;
+
+ /**
+ * 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
+ * @param listeMessageError
+ */
+ public static void remplirPersistanceDCSP(final CrueDaoPersistDCSP persistance, final List<EMH> data,
+ final CtuluAnalyze analyser) {
+
+ persistance.Sections = new ArrayList<SectionBrancheAbstract>();
+ persistance.Branches = new ArrayList<BrancheAbstract>();
+
+ // CrueDaoFactoryDCSP.remplirPersistanceAvecBrancheDSCP(persistance.Branches,data,listeMessageError);
+
+ if (data == null || data.size() == 0) {
+ analyser.addError(CrueDaoConverterCommon.emhEmpty(CrueDaoConverterCommon.DCSP), cptEntries++);
+ } else for (final EMH emh : data) {
+ if (emh instanceof CatEMHBranche) {
+ // -- remplissage des sections de branches --//
+ final CatEMHBranche branche = (CatEMHBranche) emh;
+
+ final List<DonCalcSansPrt> listeDoncalc = branche.getDSCP();
+ for (final DonCalcSansPrt dataCalc : listeDoncalc) {
+ if (dataCalc != null) {
+ CrueDaoConverterDCSP.remplirPersistanceAvecBrancheDSCP(persistance.Branches, branche, dataCalc, analyser);
+ } else {
+ analyser.addError(CrueDaoConverterCommon.unknowdataFromFile("Branches", CrueDaoConverterCommon.DCSP, branche
+ .getNom()), cptEntries++);
+ }
+ }
+
+ } else if (emh instanceof CatEMHSection) {
+ final CatEMHSection section = (CatEMHSection) emh;
+ final List<DonCalcSansPrt> listeDoncalc = section.getDSCP();
+ for (final DonCalcSansPrt dataCalc : listeDoncalc) {
+ if (dataCalc != null && dataCalc instanceof DonCalcSansPrtSection) {
+ // -- remplissage des sections --//
+ remplirPersistanceAvecSectionsBrancheDSCP(persistance.Sections, section, (DonCalcSansPrtSection) dataCalc,
+ analyser);
+
+ } else {
+ analyser.addError(CrueDaoConverterCommon.unknowdataFromFile("Section", CrueDaoConverterCommon.DCSP, section
+ .getNom()), cptEntries++);
+ }
+
+ }
+
+ }
+
+ }
+
+ }
+
+ /**
+ * 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 analyser
+ */
+ public static void remplirMetierDCSP(final CrueDaoPersistDCSP persistance, final List<EMH> data,
+ final CtuluAnalyze analyser) {
+
+ // -- remplissage des branches --//
+ CrueDaoConverterDCSP.remplirBrancheAvecPersistanceDSCP(persistance.Branches, data, analyser);
+
+ // -- remplissage des sections --//
+ CrueDaoConverterDCSP.remplirSectionsAvecPersistanceDSCP(persistance.Sections, data, analyser);
+
+ }
+
+ /**
+ * Methode qui remplit une arrayList d'objets persistants qui constituent le fichier fichier DSCP: les Branches.
+ *
+ * @param data
+ * @return
+ */
+ public static void remplirPersistanceAvecBrancheDSCP(final List<BrancheAbstract> listePersistante,
+ final CatEMHBranche branche, final DonCalcSansPrt dataCalc, final CtuluAnalyze analyser) {
+ final String suffixe = CrueDaoPersistDRSO.SUFFIXE_REF_DRSO;
+ BrancheAbstract branchePersist = null;
+ if (branche instanceof EMHBrancheBarrageFilEau) {
+ final EMHBrancheBarrageFilEau new_name = (EMHBrancheBarrageFilEau) branche;
+ branchePersist = new BrancheBarrageFilEau();
+
+ if (dataCalc instanceof DonCalcSansPrtBarrageFilEau) {
+ final 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 --//
+
+ br.ElemSeuils = remplirPersistanceAvecSeuilsBarragesDSCP(((DonCalcSansPrtBarrageFilEau) dataCalc).getListElt());
+
+ } else {
+ analyser
+ .addError(
+ CrueResource
+ .getS("Branche : Donnee DSCP incorrecte (attendu. donnees branche barrage Fil d'eau) pour l'objet branche de r\xE9f\xE9rence"
+ + branche.getNom()), cptEntries++);
+ }
+
+ } else if (branche instanceof EMHBrancheBarrageGenerique) {
+ final EMHBrancheBarrageGenerique new_name = (EMHBrancheBarrageGenerique) branche;
+ branchePersist = new BrancheBarrageGenerique();
+ // -- recuperation de la donnee de calcul de la branche --//
+ if (dataCalc instanceof DonCalcSansPrtBarrageFilEau) {
+ final 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 {
+ analyser
+ .addError(
+ CrueResource
+ .getS("Branche : Donnee DSCP incorrecte (attendu. donnees branche barrage Generique) pour l'objet branche de r\xE9f\xE9rence"
+ + branche.getNom()), cptEntries++);
+ }
+
+ } else if (branche instanceof EMHBrancheBarrageRhone) {
+ final EMHBrancheBarrageRhone new_name = (EMHBrancheBarrageRhone) branche;
+ branchePersist = new BrancheBarrageRhone();
+ // -- recuperation de la donnee de calcul de la branche --//
+
+ if (dataCalc instanceof DonCalcSansPrtBarrageFilEau) {
+ final 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());
+
+ } else {
+ analyser
+ .addError(
+ CrueResource
+ .getS("Branche : Donnee DSCP incorrecte (attendu. donnees branche barrage Rhone) pour l'objet branche de r\xE9f\xE9rence"
+ + branche.getNom()), cptEntries++);
+ }
+
+ }
+ // 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 BrancheOrifice();
+
+ // -- recuperation de la donnee de calcul de la branche --//
+
+ if (dataCalc instanceof DonCalcSansPrtBrancheOrifice) {
+ final 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 {
+ analyser
+ .addError(
+ CrueResource
+ .getS("Branche : Donnee DSCP incorrecte (attendu. donnees branche Orifice) pour l'objet branche de r\xE9f\xE9rence"
+ + branche.getNom()), cptEntries++);
+ }
+
+ } else if (branche instanceof EMHBranchePdc) {
+ final EMHBranchePdc new_name = (EMHBranchePdc) branche;
+ branchePersist = new BranchePdc();
+
+ // -- recuperation de la donnee de calcul de la branche --//
+
+ if (dataCalc instanceof DonCalcSansPrtBranchePDC) {
+ final BranchePdc br = (BranchePdc) branchePersist;
+
+ // -- recuperation de la formule --//
+ if (((DonCalcSansPrtBranchePDC) dataCalc).getPdc_DZ() != null) br.Loi = ((DonCalcSansPrtBranchePDC) dataCalc)
+ .getPdc_DZ().getNom();
+
+ } else {
+ analyser
+ .addError(
+ CrueResource
+ .getS("Branche : Donnee DSCP incorrecte (attendu. donnees branche seuil Longitudinal) pour l'objet branche de r\xE9f\xE9rence"
+ + branche.getNom()), cptEntries++);
+ }
+
+ } else if (branche instanceof EMHBrancheSaintVenant) {
+ final EMHBrancheSaintVenant new_name = (EMHBrancheSaintVenant) branche;
+ branchePersist = new BrancheSaintVenant();
+ // -- recuperation de la donnee de calcul de la branche --//
+
+ if (dataCalc instanceof DonCalcSansPrtBrancheSaintVenant) {
+ final 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(), analyser);
+ } else {
+ analyser
+ .addError(
+ CrueResource
+ .getS("Branche : Donnee DSCP incorrecte (attendu. donnees branche SaintVenant) pour l'objet branche de r\xE9f\xE9rence"
+ + branche.getNom()), cptEntries++);
+ }
+
+ } else if (branche instanceof EMHBrancheSeuilLongitudinale) {
+ final EMHBrancheSeuilLongitudinale new_name = (EMHBrancheSeuilLongitudinale) branche;
+ branchePersist = new BrancheSeuilLateral();
+
+ // -- recuperation de la donnee de calcul de la branche --//
+
+ if (dataCalc instanceof DonCalcSansPrtBrancheSeuilLateral) {
+ final 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 {
+ analyser
+ .addError(
+ CrueResource
+ .getS("Branche : Donnee DSCP incorrecte (attendu. donnees branche seuil Longitudinal) pour l'objet branche de r\xE9f\xE9rence"
+ + branche.getNom()), cptEntries++);
+ }
+
+ } else if (branche instanceof EMHBrancheSeuilTransversal) {
+ final EMHBrancheSeuilTransversal new_name = (EMHBrancheSeuilTransversal) branche;
+ branchePersist = new BrancheSeuilTransversal();
+
+ // -- recuperation de la donnee de calcul de la branche --//
+
+ if (dataCalc instanceof DonCalcSansPrtBrancheSeuilTransversal) {
+ final 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 {
+ analyser
+ .addError(
+ CrueResource
+ .getS("Branche : Donnee DSCP incorrecte (attendu. donnees branche seuil transversal) pour l'objet branche de r\xE9f\xE9rence"
+ + branche.getNom()), cptEntries++);
+ }
+
+ }
+ // 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 {
+ analyser.addError(CrueDaoConverterCommon.unknowEMH("Branche", branche.getNom()), cptEntries++);
+ }
+
+ }
+
+ /**
+ * Genere une liste d'elements seuils persistante a partir de la liste m\xE9tier lue.
+ *
+ * @param listeEltSeuilsPersist
+ * @return
+ */
+ public static List<ElemSeuilPdc> remplirPersistanceAvecSeuilsDSCP(final List<ElemSeuilAvecPdc> listeEltSeuilsEMH) {
+ final List<ElemSeuilPdc> listeSeuilsPersist = new ArrayList<ElemSeuilPdc>();
+ for (final ElemSeuilAvecPdc seuilMetier : listeEltSeuilsEMH) {
+ final ElemSeuilPdc seuilPersist = new ElemSeuilPdc();
+ seuilPersist.CoefD = seuilMetier.getCoeffD();
+ seuilPersist.CoefPdc = seuilMetier.getCoeffPdc();
+ seuilPersist.Larg = seuilMetier.getLarg();
+ seuilPersist.Zseuil = seuilMetier.getZSeuil();
+
+ listeSeuilsPersist.add(seuilPersist);
+ }
+
+ return listeSeuilsPersist;
+ }
+
+ /**
+ * Genere une liste d'elements seuils persistante a partir de la liste m\xE9tier lue.
+ *
+ * @param listeEltSeuilsPersist
+ * @return
+ */
+ public static List<ElemSeuil> remplirPersistanceAvecSeuilsBarragesDSCP(
+ final List<org.fudaa.dodico.crue.metier.emh.ElemSeuil> listeEltSeuilsEMH) {
+ final List<ElemSeuil> listeSeuilsPersist = new ArrayList<ElemSeuil>();
+ for (final org.fudaa.dodico.crue.metier.emh.ElemSeuil seuilMetier : listeEltSeuilsEMH) {
+ final ElemSeuil seuilPersist = new ElemSeuil();
+ seuilPersist.CoefD = seuilMetier.getCoeffD();
+
+ seuilPersist.Larg = seuilMetier.getLarg();
+ seuilPersist.Zseuil = seuilMetier.getZSeuil();
+
+ listeSeuilsPersist.add(seuilPersist);
+ }
+
+ return listeSeuilsPersist;
+ }
+
+ /**
+ * Genere une liste d'elements seuils persistante a partir de la liste metier lue.
+ *
+ * @param listeEltSeuilsPersist
+ * @return
+ */
+ public static List<ElemSeuilOrifice> remplirPersistanceAvecOrificesSeuilsDSCP(
+ final List<org.fudaa.dodico.crue.metier.emh.ElemOrifice> listeEMhSeuils) {
+ final List<ElemSeuilOrifice> listeEltSeuilsPersist = new ArrayList<ElemSeuilOrifice>();
+ for (final org.fudaa.dodico.crue.metier.emh.ElemOrifice seuilMetier : listeEMhSeuils) {
+ final ElemSeuilOrifice seuilPersist = new ElemSeuilOrifice();
+ seuilPersist.CoefD = seuilMetier.getCoeffQ();
+ seuilPersist.Larg = seuilMetier.getLarg();
+ seuilPersist.Zseuil = seuilMetier.getZSeuil();
+
+ seuilPersist.CoefCtrLim = seuilMetier.getCoeffCtrLim();
+ seuilPersist.Sens = seuilMetier.getSens();
+
+ listeEltSeuilsPersist.add(seuilPersist);
+ }
+
+ return listeEltSeuilsPersist;
+ }
+
+ /**
+ * Methode qui remplit une arrayList d'objets persistants Sections qui sont contenues dans une branche: concerne le
+ * fichier fichier DSCP: les Branches.
+ *
+ * @param data
+ * @return
+ */
+ public static void remplirPersistanceAvecSectionsBrancheDSCP(final List<SectionBrancheAbstract> listePersistante,
+ final CatEMHSection section, final DonCalcSansPrtSection prtSection, final CtuluAnalyze analyser) {
+
+ 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();
+ }
+
+ if (section.getDataCalcul() != null) {
+ sectionPersist.NomRef = CrueDaoPersistDRSO.SUFFIXE_REF_DRSO + section.getNom();
+ sectionPersist.CoefConv = prtSection.getCoeffConv();
+ sectionPersist.CoefDiv = prtSection.getCoeffDiv();
+ sectionPersist.CoefPond = prtSection.getCoeffPond();
+ }
+
+ 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(final List<BrancheAbstract> listePersistants,
+ final List<EMH> data, final CtuluAnalyze analyser) {
+ if (listePersistants == null || listePersistants.size() == 0) {
+ analyser.addError(CrueResource.getS("Branches: la liste est vide."), cptEntries++);
+ } else for (final Object persist : listePersistants) {
+ if (persist instanceof BrancheAbstract) {
+ final BrancheAbstract branchePersist = (BrancheAbstract) persist;
+ String reference = branchePersist.NomRef;
+ if (reference.contains(CrueDaoPersistDRSO.SUFFIXE_REF_DRSO)) {
+ reference = reference.replace(CrueDaoPersistDRSO.SUFFIXE_REF_DRSO, "");
+ }
+ final CatEMHBranche branche = EMHBrancheHelper.findByReference(reference, data);
+ if (branche == null) {
+ analyser.addError(CrueResource.getS("Branche : Impossible de trouver la branche de r\xE9f\xE9rence " + reference),
+ cptEntries++);
+ } else {
+ if (branchePersist instanceof BrancheClassiqueAbstract) {
+ final BrancheClassiqueAbstract br = (BrancheClassiqueAbstract) branchePersist;
+ final 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, analyser);
+ }
+ // -- branche seuil --//
+ else if (branchePersist instanceof BrancheSeuilAbstract) {
+ final BrancheSeuilAbstract br = (BrancheSeuilAbstract) branchePersist;
+
+ if ((branche instanceof EMHBrancheSeuilLongitudinale)) {
+ final 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)) {
+ final 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 {
+ analyser.addError(CrueResource.getS("Branche : Les donnees de la branche de r\xE9f\xE9rence " + reference
+ + " doivent \xEAtre de type Transversal ou Longitudinal (liste de seuils+ formule pdc)"), cptEntries++);
+ }
+
+ }
+ // -- branche seuils orifices --//
+ else if (branchePersist instanceof BrancheSeuilOrificeAbstract) {
+ final BrancheSeuilOrificeAbstract br = (BrancheSeuilOrificeAbstract) branchePersist;
+ final 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) {
+ final BranchePDCAbstract br = (BranchePDCAbstract) branchePersist;
+ final DonCalcSansPrtBranchePDC dataCalcul = new DonCalcSansPrtBranchePDC();
+ // -- recuperation de la formule --//
+ final Loi newLoi = new Loi();
+ newLoi.setNom(br.Loi);
+ dataCalcul.setPdc_DZ(newLoi);
+ branche.addDSCP(dataCalcul);
+ } else if (branchePersist instanceof BrancheBarrageFilEauAbstract) {
+ final BrancheBarrageFilEauAbstract br = (BrancheBarrageFilEauAbstract) branchePersist;
+ final DonCalcSansPrtBarrageFilEau dataCalcul = new DonCalcSansPrtBarrageFilEau();
+
+ // -- recuperation de la formule --//
+ final 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 {
+ analyser.addError(CrueResource.getS("Branche : Donn\xE9es non correcte. La branche de r\xE9f\xE9rence " + reference
+ + " contient des \xE9l\xE9ments de calcul innatendu."), cptEntries++);
+ }
+ }
+
+ }
+ }
+
+ }
+
+ /**
+ * Genere une liste d'elements seuils persistante a partir de la liste m\xE9tier lue.
+ *
+ * @param listeEltSeuilsPersist
+ * @return
+ */
+ public static List<ElemSeuilAvecPdc> remplirSeuilsAvecPersistanceDSCP(final List<ElemSeuilPdc> listeSeuilsPersist) {
+ final List<ElemSeuilAvecPdc> listeEltSeuilsEMH = new ArrayList<ElemSeuilAvecPdc>();
+ for (final ElemSeuilPdc seuilPersist : listeSeuilsPersist) {
+ final 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;
+ }
+
+ /**
+ * Genere une liste d'elements seuils persistante a partir de la liste m\xE9tier lue.
+ *
+ * @param listeEltSeuilsPersist
+ * @return
+ */
+ public static List<org.fudaa.dodico.crue.metier.emh.ElemSeuil> remplirSeuilsBarragesAvecPersistanceDSCP(
+ final List<ElemSeuil> listeSeuilsPersist) {
+ final List<org.fudaa.dodico.crue.metier.emh.ElemSeuil> listeEltSeuilsEMH = new ArrayList<org.fudaa.dodico.crue.metier.emh.ElemSeuil>();
+ for (final ElemSeuil seuilPersist : listeSeuilsPersist) {
+ final org.fudaa.dodico.crue.metier.emh.ElemSeuil seuilMetier = new org.fudaa.dodico.crue.metier.emh.ElemSeuil();
+ seuilMetier.setCoeffD(seuilPersist.CoefD);
+
+ seuilMetier.setLarg(seuilPersist.Larg);
+ seuilMetier.setZSeuil(seuilPersist.Zseuil);
+
+ listeEltSeuilsEMH.add(seuilMetier);
+ }
+
+ return listeEltSeuilsEMH;
+ }
+
+ /**
+ * Genere une liste d'elements seuils m\xE9tier a partir de la liste persistante lue.
+ *
+ * @param listeEltSeuilsPersist
+ * @return
+ */
+ public static List<org.fudaa.dodico.crue.metier.emh.ElemOrifice> remplirOrificesSeuilsAvecPersistanceDSCP(
+ final List<ElemSeuilOrifice> listeEltSeuilsPersist) {
+ final List<org.fudaa.dodico.crue.metier.emh.ElemOrifice> listeEMhSeuils = new ArrayList<org.fudaa.dodico.crue.metier.emh.ElemOrifice>();
+ for (final ElemSeuilOrifice seuilPersist : listeEltSeuilsPersist) {
+ final org.fudaa.dodico.crue.metier.emh.ElemOrifice seuilMetier = new 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);
+
+ listeEMhSeuils.add(seuilMetier);
+ }
+
+ return listeEMhSeuils;
+ }
+
+ /**
+ * 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(final List<SectionBrancheAbstract> listePersistantsSection,
+ final List<EMH> data, final CtuluAnalyze analyser) {
+
+ if (listePersistantsSection == null || listePersistantsSection.size() == 0) {
+ analyser.addError(CrueResource.getS("Sections : la liste est vide."), cptEntries++);
+ } else for (final Object persist : listePersistantsSection) {
+ if (persist instanceof SectionBrancheAbstract) {
+ final SectionBrancheAbstract sectionPersist = (SectionBrancheAbstract) persist;
+
+ // -- on d\xE9clare une version abstraite EMH m\xE9tier du type --//
+ CatEMHSection section = null;
+ String reference = sectionPersist.NomRef;
+
+ if (reference.contains(CrueDaoPersistDRSO.SUFFIXE_REF_DRSO)) {
+ reference = reference.replace(CrueDaoPersistDRSO.SUFFIXE_REF_DRSO, "");
+ }
+ section = EMHSectionHelper.findByReference(reference, data);
+
+ if (section != null) {
+ final DonCalcSansPrtSection dataCalcul = new DonCalcSansPrtSection();
+
+ dataCalcul.setCoeffConv(sectionPersist.CoefConv);
+ dataCalcul.setCoeffDiv(sectionPersist.CoefDiv);
+ dataCalcul.setCoeffPond(sectionPersist.CoefPond);
+ section.addDSCP(dataCalcul);
+ } else analyser.addError(CrueDaoConverterCommon.unknowReference("Section", reference), cptEntries++);
+ }
+ }
+
+ }
+
+}
Property changes on: trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterDCSP.java
___________________________________________________________________
Added: svn:mergeinfo
+
Copied: trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterDFRT.java (from rev 4607, trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDFRT.java)
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterDFRT.java (rev 0)
+++ trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterDFRT.java 2009-04-03 16:08:15 UTC (rev 4611)
@@ -0,0 +1,112 @@
+package org.fudaa.dodico.crue.dao;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.fudaa.ctulu.CtuluAnalyze;
+import org.fudaa.dodico.crue.common.CrueResource;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDFRT.StriRefCPersist;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDFRT.StriRefHPersist;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDFRT.StriRefPersist;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDFRT.StriRefZPersist;
+import org.fudaa.dodico.crue.metier.emh.DonFrt;
+import org.fudaa.dodico.crue.metier.emh.FrottementPoint;
+import org.fudaa.dodico.crue.metier.emh.StriRefC;
+import org.fudaa.dodico.crue.metier.emh.StriRefH;
+import org.fudaa.dodico.crue.metier.emh.StriRefZ;
+
+/**
+ * Factory qui se charge de remplir les structures DAO dufichier DFRT avec les donn\xE9es m\xE9tier et inversement.
+ *
+ * @author Adrien Hadoux
+ */
+public class CrueDaoConverterDFRT {
+
+ public static int cptEntries = 1;
+
+ /**
+ * remplir le fichier DFRT avec les frottemetns
+ *
+ * @param data
+ * @return
+ */
+ public static List<StriRefPersist> remplirPersistanceAvecFrottemetnsDFRT(final List<DonFrt> data,
+ final CtuluAnalyze analyser) {
+ final List<StriRefPersist> listeFrottement = new ArrayList<StriRefPersist>();
+ for (final 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<String>();
+ for (final FrottementPoint pt : frt.getListePoints()) {
+ persist.listePoints.add(pt.getX() + " " + pt.getY());
+ }
+ }
+ listeFrottement.add(persist);
+ }
+
+ }
+ return listeFrottement;
+ }
+
+ /**
+ * remplir le fichier DFRT avec les frottemetns
+ *
+ * @param data
+ * @return
+ */
+ public static List<DonFrt> remplirFrottemetnsAvecPersistanceDFRT(final List<StriRefPersist> persistListe,
+ final CtuluAnalyze analyser) {
+ final List<DonFrt> data = new ArrayList<DonFrt>();
+ if (persistListe == null || persistListe.size() == 0) {
+ analyser.addError(CrueResource.getS("Frottements : la liste est vide."), cptEntries++);
+ } else for (final 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) {
+
+ final List<FrottementPoint> listePoints = new ArrayList<FrottementPoint>();
+ for (final String buff : persist.listePoints) {
+
+ final int indiceCesure = buff.lastIndexOf(" ");
+ final String val1 = buff.substring(0, indiceCesure);
+ final String val2 = buff.substring(indiceCesure + 1, buff.length());
+ double x = 0;
+ try {
+ x = Double.parseDouble(val1);
+
+ } catch (final NumberFormatException e) {
+ analyser.addError(CrueResource.getS("Frottement: " + frt.getNom()
+ + ": impossible de r\xE9cup\xE9rer le r\xE9el du contenu: " + buff), cptEntries++);
+ }
+ double y = 0;
+ try {
+ y = Double.parseDouble(val2);
+ } catch (final NumberFormatException e) {
+ analyser.addError(CrueResource.getS("Frottement: " + frt.getNom()
+ + ": impossible de r\xE9cup\xE9rer le r\xE9el du contenu: " + buff), cptEntries++);
+ }
+ listePoints.add(new FrottementPoint(x, y));
+
+ }
+
+ frt.setListePoints(listePoints);
+ }
+ data.add(frt);
+ }
+
+ }
+ return data;
+ }
+
+}
Property changes on: trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterDFRT.java
___________________________________________________________________
Added: svn:mergeinfo
+
Copied: trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterDPTG.java (from rev 4607, trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDPTG.java)
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterDPTG.java (rev 0)
+++ trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoConverterDPTG.java 2009-04-03 16:08:15 UTC (rev 4611)
@@ -0,0 +1,366 @@
+package org.fudaa.dodico.crue.dao;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.fudaa.ctulu.CtuluAnalyze;
+import org.fudaa.dodico.crue.common.CrueResource;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDPTG.BrancheSaintVenant;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDPTG.Frottement;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDPTG.Lit;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDPTG.ProfilCasier;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDPTG.ProfilSection;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDPTG.SectionIdem;
+import org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDPTG.profilDPTG;
+import org.fudaa.dodico.crue.metier.emh.CatEMHBranche;
+import org.fudaa.dodico.crue.metier.emh.CatEMHCasier;
+import org.fudaa.dodico.crue.metier.emh.CatEMHSection;
+import org.fudaa.dodico.crue.metier.emh.CrueData;
+import org.fudaa.dodico.crue.metier.emh.DonFrt;
+import org.fudaa.dodico.crue.metier.emh.DonPrtGeo;
+import org.fudaa.dodico.crue.metier.emh.DonPrtGeoBrancheSaintVenant;
+import org.fudaa.dodico.crue.metier.emh.DonPrtGeoCasierProfil;
+import org.fudaa.dodico.crue.metier.emh.DonPrtGeoProfilCommun;
+import org.fudaa.dodico.crue.metier.emh.DonPrtGeoSectionIdem;
+import org.fudaa.dodico.crue.metier.emh.DonPrtGeoSectionProfil;
+import org.fudaa.dodico.crue.metier.emh.EMH;
+import org.fudaa.dodico.crue.metier.emh.EMHCasierProfil;
+import org.fudaa.dodico.crue.metier.emh.EMHSectionProfil;
+import org.fudaa.dodico.crue.metier.emh.LitNumerote;
+import org.fudaa.dodico.crue.metier.emh.PtProfil;
+import org.fudaa.dodico.crue.metier.helper.EMHBrancheHelper;
+import org.fudaa.dodico.crue.metier.helper.EMHCasierHelper;
+import org.fudaa.dodico.crue.metier.helper.EMHSectionHelper;
+
+/**
+ * Factory qui se charge de remplir les structures DAO du fichier DPTG avec les donn\xE9es m\xE9tier et inversement.
+ *
+ * @author Adrien Hadoux
+ */
+public class CrueDaoConverterDPTG {
+
+ public static int cptEntries = 1;
+
+ /**
+ * Remplit completement la structure persistante a partir des objets donPrtGeo. 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 remplirPersistanceDPTG(final CrueDaoPersistDPTG persistance, final CrueData data,
+ final CtuluAnalyze analyser) {
+
+ // -- liste qui assure d'ajouter une seule r\xE9f\xE9rence de profil: car un meme profil peut etre referenc\xE9 plusieurs
+ // fois
+ final List<DonPrtGeoProfilCommun> listeProfilUniqueReference = new ArrayList<DonPrtGeoProfilCommun>();
+
+ persistance.Profils = new ArrayList<profilDPTG>();
+ persistance.Branches = new ArrayList<BrancheSaintVenant>();
+ persistance.Sections = new ArrayList<SectionIdem>();
+
+ if (data.getAllEMH() == null || data.getAllEMH().size() == 0) {
+ analyser.addError(CrueResource.getS("DPTG: la liste est vide."), cptEntries++);
+ } else for (final EMH emh : data.getAllEMH()) {
+ if (emh.getDPTG() != null) {
+
+ final List<DonPrtGeo> donnees = emh.getDPTG();
+
+ for (final DonPrtGeo donnee : donnees) {
+
+ // -- c'est un profil
+ if (donnee instanceof DonPrtGeoProfilCommun) {
+ if (!listeProfilUniqueReference.contains(donnee)) {
+ remplirPersistanceAvecProfilsDPTG(persistance.Profils, (DonPrtGeoProfilCommun) donnee, analyser);
+ // -- on enregistre la reference --//
+ listeProfilUniqueReference.add((DonPrtGeoProfilCommun) donnee);
+
+ }
+ } else if (donnee instanceof DonPrtGeoSectionIdem) {
+ remplirPersistanceAvecSectionsDPTG(persistance.Sections, (DonPrtGeoSectionIdem) donnee, emh, analyser);
+ } else if (donnee instanceof DonPrtGeoBrancheSaintVenant) {
+ remplirPersistanceAvecBranchesDPTG(persistance.Branches, emh, (DonPrtGeoBrancheSaintVenant) donnee,
+ analyser);
+ }
+
+ }
+ }
+ }
+ }
+
+ /**
+ * Remplit la premiere partie du fichier DPTG avec les 2 types d'objets: casiers profils ou sections profils.
+ *
+ * @param data
+ * @param analyser
+ * @return
+ */
+ public static void remplirPersistanceAvecProfilsDPTG(final List<profilDPTG> listePersistante,
+ final DonPrtGeoProfilCommun prtgeo, final CtuluAnalyze analyser) {
+
+ profilDPTG profilPersistant = null;
+ if (prtgeo instanceof DonPrtGeoCasierProfil) {
+ profilPersistant = new ProfilCasier();
+ // -- donneee specifique pour le profil casier --//
+ ((ProfilCasier) profilPersistant).Long = ((DonPrtGeoCasierProfil) prtgeo).getLongueur();
+
+ } else {
+ profilPersistant = new ProfilSection();
+ }
+ profilPersistant.Nom = prtgeo.getNom();
+
+ // -- Ecriture des lits numerotes --//
+ if (prtgeo.getMLitNumerotes() != null && prtgeo.getMLitNumerotes().size() > 0) {
+ profilPersistant.Lits = new ArrayList<Lit>();
+ for (final LitNumerote litMetier : prtgeo.getMLitNumerotes()) {
+ final Lit litPersist = new Lit();
+ litPersist.IsActif = litMetier.getEstActif();
+ litPersist.IsMineur = litMetier.getEstMineur();
+ if (litMetier.getDebut() != null) litPersist.LimDeb = "" + litMetier.getDebut().getYP() + " "
+ + litMetier.getDebut().getZ();
+ else litPersist.LimFin = "";
+ if (litMetier.getFin() != null) litPersist.LimFin = "" + litMetier.getFin().getYP() + " "
+ + litMetier.getFin().getZ();
+ else litPersist.LimFin = "";
+
+ if (litMetier.getMDonFrt() != null) {
+ litPersist.Frot = new Frottement();
+ // -- on ajoute le nom avec un suffixe --//
+ litPersist.Frot.NomRef = CrueDaoPersistDFRT.SUFFIXE_REF_DFRT + litMetier.getMDonFrt().getNom();
+ } else {
+ analyser.addError(CrueResource.getS("LitNumerote du casierProfil" + prtgeo.getNom()
+ + ": pas de frottement existant"), cptEntries++);
+ }
+
+ // -- ajout du lit persistant --//
+ profilPersistant.Lits.add(litPersist);
+ }
+
+ } else {
+ analyser.addError(CrueResource.getS("Profil " + prtgeo.getNom() + ": aucun litNumerotes existant"), cptEntries++);
+ }
+
+ // -- ecriture des series pt --//
+ if (prtgeo.getListeProfils() != null && prtgeo.getListeProfils().size() > 0) {
+ profilPersistant.Serie = new ArrayList<StringBuffer>();
+ for (final PtProfil serie : prtgeo.getListeProfils()) {
+ final StringBuffer buff = new StringBuffer("" + serie.getYP() + " " + serie.getZ());
+ profilPersistant.Serie.add(buff);
+ }
+ } else {
+ analyser.addError(CrueResource.getS("Profil " + prtgeo.getNom() + ": aucune s\xE9rie existante"), cptEntries++);
+ }
+
+ // -- ajout du profil persistant --//
+ listePersistante.add(profilPersistant);
+ }
+
+ public static void remplirPersistanceAvecSectionsDPTG(final List<SectionIdem> listePersistante,
+ final DonPrtGeoSectionIdem prtgeo, final EMH emh, final CtuluAnalyze analyser) {
+
+ final SectionIdem sectionPersist = new SectionIdem();
+ sectionPersist.NomRef = CrueDaoPersistDRSO.SUFFIXE_REF_DRSO + emh.getNom();
+ sectionPersist.Dz = prtgeo.getDW();
+ listePersistante.add(sectionPersist);
+ }
+
+ public static void remplirPersistanceAvecBranchesDPTG(final List<BrancheSaintVenant> listePersistante, final EMH emh,
+ final DonPrtGeoBrancheSaintVenant prtgeo, final CtuluAnalyze analyser) {
+ final BrancheSaintVenant branchePersist = new BrancheSaintVenant();
+ branchePersist.NomRef = CrueDaoPersistDRSO.SUFFIXE_REF_DRSO + emh.getNom();
+ branchePersist.CoefSinuo = prtgeo.getCoefSinuo();
+
+ listePersistante.add(branchePersist);
+
+ }
+
+ /**
+ * S'occupe de remplir les donn\xE9es m\xE9tier a partir des donn\xE9es persistantes. ATTENTION: n\xE9cessite de charger les
+ * fichiers DRSO et DFRT: ces donn\xE9es sont n\xE9cessaires car des r\xE9f\xE9rences sont pr\xE9sentes dans le fichier DPTG.
+ *
+ * @param persistance
+ * @param data
+ * @param frottements
+ * @param analyser
+ */
+ public static void remplirMetierDPTG(final CrueDaoPersistDPTG persistance, final CrueData data,
+ final CtuluAnalyze analyser) {
+ if (persistance == null) {
+ analyser.addError(CrueResource.getS("DPTG: Aucunes donn\xE9es DPTG."), cptEntries++);
+ } else {
+ // -- cas des Profils --//
+ remplirProfilsAvecPersistencaDPTG(persistance.Profils, data.getAllEMH(), data.getFrottements(), analyser);
+
+ // -- cas des Sections --//
+ remplirSectionsAvecPersistencaDPTG(persistance.Sections, data.getSections(), analyser);
+
+ // -- cas des branches --//
+ remplirBranchesAvecPersistanceDPTG(persistance.Branches, data.getBranches(), analyser);
+
+ }
+ }
+
+ public static void remplirProfilsAvecPersistencaDPTG(final List<profilDPTG> listePersistante, final List<EMH> data,
+ final List<DonFrt> frottements, final CtuluAnalyze analyser) {
+
+ if (listePersistante == null || listePersistante.size() == 0) {
+ analyser.addError(CrueResource.getS("DPTG: Aucunes donn\xE9es pour les profils."), cptEntries++);
+ return;
+ }
+ for (final profilDPTG profilPersist : listePersistante) {
+
+ // -- on recupere la branche qu'il faut --//
+ String profil = profilPersist.Nom;
+ if (profil.contains(CrueDaoPersistDRSO.SUFFIXE_REF_DRSO)) {
+ profil = profil.replace(CrueDaoPersistDRSO.SUFFIXE_REF_DRSO, "");
+ }
+ // -- on tente de trouver tous les objets referenc\xE9 par ce profil --//
+ final List<EMH> listeEMHUtilisantProfil = new ArrayList<EMH>();
+ final List<EMHCasierProfil> emhProfilcasier = EMHCasierHelper.findByProfil(profil, data);
+ final List<EMHSectionProfil> emhProfilsection = EMHSectionHelper.findByProfil(profil, data);
+
+ listeEMHUtilisantProfil.addAll(emhProfilcasier);
+ listeEMHUtilisantProfil.addAll(emhProfilsection);
+
+ if (listeEMHUtilisantProfil == null || listeEMHUtilisantProfil.size() == 0) {
+ analyser.addError(CrueResource.getS("Reference Profil DPTG : Impossible de trouver le profil de nom " + profil
+ + " dans la liste des casier profils et sections profils de DRSO."), cptEntries++);
+ } else {
+
+ // -- on r\xE9cup\xE8re le casier ou le profil et on le stocke dans le emh --//
+ DonPrtGeoProfilCommun profilGeo = null;
+ if (profilPersist instanceof ProfilCasier) {
+ profilGeo = new DonPrtGeoCasierProfil();
+ // -- donnee particulieres a ProfilCasier --//
+ ((DonPrtGeoCasierProfil) profilGeo).setLongueur(((ProfilCasier) profilPersist).Long);
+ } else profilGeo = new DonPrtGeoSectionProfil();
+
+ // -- on remplit son contenu --//
+ profilGeo.setNom(profilPersist.Nom);
+
+ // -- on remplit les litsNommes --//
+ if (profilPersist.Lits != null) {
+ final List<LitNumerote> listeLits = new ArrayList<LitNumerote>();
+
+ for (final Lit litPersis...
[truncated message content] |