From: Frederic D. <de...@us...> - 2004-04-27 16:34:36
|
Update of /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7049/src/org/fudaa/dodico/mascaret Modified Files: CConversionHydraulique1d.java ConvMasc_H1D.java DescriptionVariables.java Log Message: Maj pour boony Index: DescriptionVariables.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/DescriptionVariables.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** DescriptionVariables.java 12 Mar 2004 19:38:24 -0000 1.2 --- DescriptionVariables.java 27 Apr 2004 16:34:26 -0000 1.3 *************** *** 1,194 **** ! /* ! * @file DescriptionVariables.java ! * @creation 2004-03-01 ! * @modification $Date$ ! * @license GNU General Public License 2 ! * @copyright (c)1998-2004 EDF/LNHE ! * @mail de...@fu... ! */ ! package org.fudaa.dodico.mascaret; ! import java.util.Iterator; ! import java.util.List; ! import java.util.ResourceBundle; ! import java.util.StringTokenizer; ! import org.fudaa.dodico.corba.hydraulique1d.IDescriptionVariable; ! import org.fudaa.dodico.corba.mascaret.SParametresVarStock; ! import org.fudaa.dodico.corba.mascaret.SResultatsVariable; ! import org.fudaa.dodico.objet.CDodico; ! /** ! * Classes permettant de gérer les descriptions de variables et notament ! * d'utiliser le fichier "DescriptionVariables.properties". ! * ! * @version $Revision$ $Date$ by $Author$ ! * @author Jean-Marc Lacombe ! */ ! public class DescriptionVariables { ! ! public static final int MASCARET=0; ! public static final int CASIER=1; ! public static final int LIAISON=2; ! private static final ResourceBundle RESOURCE = ResourceBundle.getBundle("org.fudaa.dodico.mascaret.DescriptionVariables"); ! ! public static IDescriptionVariable[] conversion(SResultatsVariable[] descVars) { ! IDescriptionVariable[] res= new IDescriptionVariable[descVars.length]; ! for (int i= 0; i < descVars.length; i++) { ! if ("".equals(descVars[i].nomLong)) { ! res[i]=creerDescriptionVariable(descVars[i].nomCourt); ! } else { ! res[i]= CDodico.findUsine().creeHydraulique1dDescriptionVariable(); ! res[i].description(descVars[i].nomLong); ! res[i].nom(descVars[i].nomCourt); ! res[i].nbDecimales(descVars[i].nbDecimal); ! String unite = descVars[i].unite; ! res[i].unite(ConvUnite.convertitUnite(unite)); ! } ! } ! return res; ! } ! public static IDescriptionVariable creerDescriptionVariable(String nomCourt) { ! IDescriptionVariable res = CDodico.findUsine().creeHydraulique1dDescriptionVariable(); ! res.nom(nomCourt); ! ! String resource = null; ! try { ! resource = RESOURCE.getString(nomCourt); ! StringTokenizer stk = new StringTokenizer(resource, ","); ! res.description(stk.nextToken()); ! res.unite(ConvUnite.convertitUnite(stk.nextToken())); ! res.nbDecimales(Integer.parseInt(stk.nextToken())); ! } ! catch (Exception ex) { ! if ("Variable".equals(res.description())) res.description(nomCourt); ! res.nbDecimales(3); ! } ! return res; ! } ! static final SParametresVarStock convertirParametresVarStock(IDescriptionVariable[] varRes) { ! boolean[] varStock= new boolean[42]; ! for (int i= 0; i < 42; i++) { ! varStock[i]= false; ! } ! for (int i= 0; i < varRes.length; i++) { ! int indiceVar = getIndiceStock(varRes[i].nom()); ! if ( (indiceVar>=0) && (indiceVar<varStock.length) ) { ! varStock[indiceVar]= true; ! } ! } ! return new SParametresVarStock(varStock); ! } ! ! /** ! * Permet de savoir si la liste contient des noms de variable spécifique ! * d'un fichier résultat CASIER. ! * @param nomsVar la liste des noms de variable. ! * @return true s'il existe au moins un nom de variable CASIER, false sinon. ! */ ! public static final boolean isContientNomsCasier(List nomsVar) { ! Iterator ite = nomsVar.iterator(); ! while(ite.hasNext()) { ! int origine = getOrigineVar(ite.next()); ! if (origine == CASIER) return true; ! } ! return false; ! } ! /** ! * Permet de savoir si la liste contient des noms de variable spécifique ! * d'un fichier résultat LIAISON. ! * @param nomsVar la liste des noms de variable. ! * @return true s'il existe au moins un nom de variable LIAISON, false sinon. ! */ ! public static final boolean isContientNomsLiaison(List nomsVar) { ! Iterator ite = nomsVar.iterator(); ! while(ite.hasNext()) { ! int origine = getOrigineVar(ite.next()); ! if (origine == LIAISON) return true; ! } ! return false; ! } ! ! static final int getOrigineVar(Object var){ ! if (var instanceof String) { ! return getOrigineVar((String) var); ! } else if (var instanceof SResultatsVariable) { ! return getOrigineVar((SResultatsVariable) var); ! } else { ! throw new IllegalArgumentException("var n'est pas une String ni une SResultatsVariable"); ! } ! } ! ! /** ! * Permet de récupérer l'origine de variable (MASCARET, LIAISON ou CASIER). ! * @param nomVar l'identifiant de la variable dans le fichier de properties. ! * @return l'origine de la variable pouvant prendre les valeurs MASCARET, LIAISON ou CASIER. ! */ ! static final int getOrigineVar(String nomVar){ ! try { ! String type = RESOURCE.getString(nomVar + ".type"); ! if ("liaison".equals(type)) return LIAISON; ! else if ("casier".equals(type)) return CASIER; ! else return MASCARET; ! } ! catch (Exception ex) { ! return MASCARET; ! } ! } ! ! /** ! * Permet de récupérer l'origine de variable (MASCARET, LIAISON ou CASIER). ! * @param var la variable dont le nom court est l'identifiant dans le fichier de properties. ! * @return l'origine de la variable pouvant prendre les valeurs MASCARET, LIAISON ou CASIER. ! */ ! static final int getOrigineVar(SResultatsVariable var){ ! try { ! ! String type = RESOURCE.getString(var.nomCourt + ".type"); ! if ("liaison".equals(type)) return LIAISON; ! else if ("casier".equals(type)) return CASIER; ! else return MASCARET; ! } ! catch (Exception ex) { ! return MASCARET; ! } ! } ! ! /** ! * Permet de récupérer l'indice de stockage de la variable dans SParametresVarStock. ! * @param nomVar l'identifiant de la variable dans le fichier de properties. ! * @return l'indice de stockage s'il existe, -1 sinon. ! */ ! private static final int getIndiceStock(String nomVar){ ! try { ! String indiceChaine = RESOURCE.getString(nomVar + ".iStock"); ! return Integer.parseInt(indiceChaine); ! } ! catch (Exception ex) { ! return -1; ! } ! } ! ! /** ! * Permet de savoir si la variable est indépendante du temps. ! * @param nomVar l'identifiant de la variable dans le fichier de properties. ! * @return true si la variable est indépendante du temps, false sinon. ! */ ! public static final boolean isIndependantTps(String nomVar){ ! try { ! String valeurChaine = RESOURCE.getString(nomVar + ".IndependantTps"); ! if ("Vrai".equalsIgnoreCase(valeurChaine.trim())) return true; ! return false; ! } ! catch (Exception ex) { ! return false; ! } ! } ! /** ! * Permet de savoir si la variable est indépendante du temps. ! * @param var la variable dont le nom court est l'identifiant dans le fichier de properties. ! * @return true si la variable est indépendante du temps, false sinon. ! */ ! public static final boolean isIndependantTps(SResultatsVariable var){ ! String nomVar = var.nomCourt; ! return isIndependantTps(nomVar); ! } ! ! } --- 1,196 ---- ! /* ! * @file DescriptionVariables.java ! * @creation 2004-03-01 ! * @modification $Date$ ! * @license GNU General Public License 2 ! * @copyright (c)1998-2004 EDF/LNHE ! * @mail de...@fu... ! */ ! package org.fudaa.dodico.mascaret; ! import java.util.Iterator; ! import java.util.List; ! import java.util.ResourceBundle; ! import java.util.StringTokenizer; ! ! import org.fudaa.dodico.boony.BoonyLib; ! import org.fudaa.dodico.corba.hydraulique1d.IDescriptionVariable; ! import org.fudaa.dodico.corba.mascaret.SParametresVarStock; ! import org.fudaa.dodico.corba.mascaret.SResultatsVariable; ! import org.fudaa.dodico.objet.CDodico; ! /** ! * Classes permettant de gérer les descriptions de variables et notament ! * d'utiliser le fichier "DescriptionVariables.properties". ! * ! * @version $Revision$ $Date$ by $Author$ ! * @author Jean-Marc Lacombe ! */ ! public class DescriptionVariables { ! ! public static final int MASCARET=0; ! public static final int CASIER=1; ! public static final int LIAISON=2; ! private static final ResourceBundle RESOURCE = ResourceBundle.getBundle("org.fudaa.dodico.mascaret.DescriptionVariables"); ! ! public static IDescriptionVariable[] conversion(SResultatsVariable[] descVars) { ! IDescriptionVariable[] res= new IDescriptionVariable[descVars.length]; ! for (int i= 0; i < descVars.length; i++) { ! if ("".equals(descVars[i].nomLong)) { ! res[i]=creerDescriptionVariable(descVars[i].nomCourt); ! } else { ! res[i]= BoonyLib.findUsine().creeHydraulique1dDescriptionVariable(); ! res[i].description(descVars[i].nomLong); ! res[i].nom(descVars[i].nomCourt); ! res[i].nbDecimales(descVars[i].nbDecimal); ! String unite = descVars[i].unite; ! res[i].unite(ConvUnite.convertitUnite(unite)); ! } ! } ! return res; ! } ! public static IDescriptionVariable creerDescriptionVariable(String nomCourt) { ! IDescriptionVariable res = BoonyLib.findUsine().creeHydraulique1dDescriptionVariable(); ! res.nom(nomCourt); ! ! String resource = null; ! try { ! resource = RESOURCE.getString(nomCourt); ! StringTokenizer stk = new StringTokenizer(resource, ","); ! res.description(stk.nextToken()); ! res.unite(ConvUnite.convertitUnite(stk.nextToken())); ! res.nbDecimales(Integer.parseInt(stk.nextToken())); ! } ! catch (Exception ex) { ! if ("Variable".equals(res.description())) res.description(nomCourt); ! res.nbDecimales(3); ! } ! return res; ! } ! static final SParametresVarStock convertirParametresVarStock(IDescriptionVariable[] varRes) { ! boolean[] varStock= new boolean[42]; ! for (int i= 0; i < 42; i++) { ! varStock[i]= false; ! } ! for (int i= 0; i < varRes.length; i++) { ! int indiceVar = getIndiceStock(varRes[i].nom()); ! if ( (indiceVar>=0) && (indiceVar<varStock.length) ) { ! varStock[indiceVar]= true; ! } ! } ! return new SParametresVarStock(varStock); ! } ! ! /** ! * Permet de savoir si la liste contient des noms de variable spécifique ! * d'un fichier résultat CASIER. ! * @param nomsVar la liste des noms de variable. ! * @return true s'il existe au moins un nom de variable CASIER, false sinon. ! */ ! public static final boolean isContientNomsCasier(List nomsVar) { ! Iterator ite = nomsVar.iterator(); ! while(ite.hasNext()) { ! int origine = getOrigineVar(ite.next()); ! if (origine == CASIER) return true; ! } ! return false; ! } ! /** ! * Permet de savoir si la liste contient des noms de variable spécifique ! * d'un fichier résultat LIAISON. ! * @param nomsVar la liste des noms de variable. ! * @return true s'il existe au moins un nom de variable LIAISON, false sinon. ! */ ! public static final boolean isContientNomsLiaison(List nomsVar) { ! Iterator ite = nomsVar.iterator(); ! while(ite.hasNext()) { ! int origine = getOrigineVar(ite.next()); ! if (origine == LIAISON) return true; ! } ! return false; ! } ! ! static final int getOrigineVar(Object var){ ! if (var instanceof String) { ! return getOrigineVar((String) var); ! } else if (var instanceof SResultatsVariable) { ! return getOrigineVar((SResultatsVariable) var); ! } else { ! throw new IllegalArgumentException("var n'est pas une String ni une SResultatsVariable"); ! } ! } ! ! /** ! * Permet de récupérer l'origine de variable (MASCARET, LIAISON ou CASIER). ! * @param nomVar l'identifiant de la variable dans le fichier de properties. ! * @return l'origine de la variable pouvant prendre les valeurs MASCARET, LIAISON ou CASIER. ! */ ! static final int getOrigineVar(String nomVar){ ! try { ! String type = RESOURCE.getString(nomVar + ".type"); ! if ("liaison".equals(type)) return LIAISON; ! else if ("casier".equals(type)) return CASIER; ! else return MASCARET; ! } ! catch (Exception ex) { ! return MASCARET; ! } ! } ! ! /** ! * Permet de récupérer l'origine de variable (MASCARET, LIAISON ou CASIER). ! * @param var la variable dont le nom court est l'identifiant dans le fichier de properties. ! * @return l'origine de la variable pouvant prendre les valeurs MASCARET, LIAISON ou CASIER. ! */ ! static final int getOrigineVar(SResultatsVariable var){ ! try { ! ! String type = RESOURCE.getString(var.nomCourt + ".type"); ! if ("liaison".equals(type)) return LIAISON; ! else if ("casier".equals(type)) return CASIER; ! else return MASCARET; ! } ! catch (Exception ex) { ! return MASCARET; ! } ! } ! ! /** ! * Permet de récupérer l'indice de stockage de la variable dans SParametresVarStock. ! * @param nomVar l'identifiant de la variable dans le fichier de properties. ! * @return l'indice de stockage s'il existe, -1 sinon. ! */ ! private static final int getIndiceStock(String nomVar){ ! try { ! String indiceChaine = RESOURCE.getString(nomVar + ".iStock"); ! return Integer.parseInt(indiceChaine); ! } ! catch (Exception ex) { ! return -1; ! } ! } ! ! /** ! * Permet de savoir si la variable est indépendante du temps. ! * @param nomVar l'identifiant de la variable dans le fichier de properties. ! * @return true si la variable est indépendante du temps, false sinon. ! */ ! public static final boolean isIndependantTps(String nomVar){ ! try { ! String valeurChaine = RESOURCE.getString(nomVar + ".IndependantTps"); ! if ("Vrai".equalsIgnoreCase(valeurChaine.trim())) return true; ! return false; ! } ! catch (Exception ex) { ! return false; ! } ! } ! /** ! * Permet de savoir si la variable est indépendante du temps. ! * @param var la variable dont le nom court est l'identifiant dans le fichier de properties. ! * @return true si la variable est indépendante du temps, false sinon. ! */ ! public static final boolean isIndependantTps(SResultatsVariable var){ ! String nomVar = var.nomCourt; ! return isIndependantTps(nomVar); ! } ! ! } Index: ConvMasc_H1D.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/ConvMasc_H1D.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ConvMasc_H1D.java 5 Mar 2004 15:03:25 -0000 1.2 --- ConvMasc_H1D.java 27 Apr 2004 16:34:26 -0000 1.3 *************** *** 1,202 **** ! /* ! * @file ConvMasc_H1D.java ! * @creation 2004-03-01 ! * @modification $Date$ ! * @license GNU General Public License 2 ! * @copyright (c)1998-2004 EDF/LNHE ! * @mail de...@fu... ! */ ! package org.fudaa.dodico.mascaret; ! import java.util.StringTokenizer; ! import java.util.Vector; ! import org.fudaa.dodico.corba.hydraulique1d.IDescriptionVariable; ! import org.fudaa.dodico.corba.hydraulique1d.ILigneEauPoint; ! import org.fudaa.dodico.corba.hydraulique1d.IParametresReprise; ! import org.fudaa.dodico.corba.hydraulique1d.IResultatsTemporelSpatial; ! import org.fudaa.dodico.corba.hydraulique1d.IResultatsTemporelSpatialBief; ! import org.fudaa.dodico.corba.mascaret.SParametresREP; ! import org.fudaa.dodico.corba.mascaret.SResultatBief; ! import org.fudaa.dodico.corba.mascaret.SResultatPasTemps; ! import org.fudaa.dodico.corba.mascaret.SResultatSection; ! import org.fudaa.dodico.corba.mascaret.SResultatsOPT; ! import org.fudaa.dodico.corba.mascaret.SResultatsTemporelSpatial; ! import org.fudaa.dodico.corba.mascaret.SResultatsTemporelSpatialBief; ! import org.fudaa.dodico.corba.mascaret.SResultatsVariable; ! import org.fudaa.dodico.objet.CDodico; ! /** ! * Méthodes statiques pour convertir le modèle mascaret (les résultats ! * du code) en modèle métier hydraulique1d ! * ! * @version $Revision$ $Date$ by $Author$ ! * @author Jean-Marc Lacombe ! */ ! public class ConvMasc_H1D { ! ! final static IResultatsTemporelSpatial RES_OPTHYCA_VIDE= ! convertirResultatsOpt2ResultatsTemporelSpatial( ! new SResultatsOPT(new SResultatsVariable[0], new SResultatPasTemps[0])); ! final static IParametresReprise RES_REP_VIDE= ! convertirResultatsRep(new SParametresREP(new byte[0])); ! ! public static IParametresReprise convertirResultatsRep(SParametresREP param) { // conversion Fichier de reprise en écriture ! IParametresReprise repHydr= ! CDodico.findUsine().creeHydraulique1dParametresReprise(); ! if (param.contenu.length == 0) ! return repHydr; ! repHydr.fichier(""); ! String chaine= new String(param.contenu); ! int index= chaine.indexOf("FIN"); // le temps final se trouve aprés FIN ! String chaineSansLigneInitiale= chaine.substring(index + 3); ! StringTokenizer st= new StringTokenizer(chaineSansLigneInitiale); ! repHydr.tFinal(Double.parseDouble(st.nextToken())); ! repHydr.contenu(chaine.getBytes()); ! return repHydr; ! } ! public static IDescriptionVariable[] convertirResultatsVariables2DescriptionVariable(SResultatsVariable[] descVars) { ! return DescriptionVariables.conversion(descVars); ! } ! ! public static double[] convertirResultatsPasTemps(SResultatPasTemps[] sres) { ! double res[]= new double[sres.length]; ! for (int i= 0; i < res.length; i++) { ! res[i]= sres[i].t; ! } ! return res; ! } ! public static IResultatsTemporelSpatialBief[] convertirResultatsPasTemps2ResultatsTemporelSpatialBief( ! SResultatPasTemps[] sres, ! int nbVar) { ! if (sres.length == 0) ! return new IResultatsTemporelSpatialBief[0]; ! if (nbVar == 0) ! return new IResultatsTemporelSpatialBief[0]; ! int nbPasTps= sres.length; ! int nbBief= sres[0].resultatsBief.length; ! //il y a le même nombre de bief à tous la pas de temps ! IResultatsTemporelSpatialBief[] res= ! new IResultatsTemporelSpatialBief[nbBief]; ! for (int i= 0; i < res.length; i++) { ! res[i]= ! CDodico.findUsine().creeHydraulique1dResultatsTemporelSpatialBief(); ! SResultatSection[] sectionsBief= ! sres[0].resultatsBief[i].resultatsSection; ! double[] absc= new double[sectionsBief.length]; ! double[][][] valeurs= new double[nbVar][nbPasTps][absc.length]; ! for (int j= 0; j < absc.length; j++) { ! absc[j]= sectionsBief[j].absc; ! } ! res[i].abscissesSections(absc); ! res[i].valeursVariables(valeurs); ! } ! for (int i= 0; i < sres.length; i++) { //nb de Pas Temps ! SResultatPasTemps resPasTps= sres[i]; ! for (int j= 0; j < resPasTps.resultatsBief.length; j++) { //nb de Bief ! SResultatBief resBief= resPasTps.resultatsBief[j]; ! for (int k= 0; ! k < resBief.resultatsSection.length; ! k++) { //nb de section ! SResultatSection resSec= resBief.resultatsSection[k]; ! for (int l= 0; l < resSec.valeurs.length; l++) { //nb de variable ! double[][][] vals= res[j].valeursVariables(); ! vals[l][i][k]= resSec.valeurs[l]; ! } ! } ! } ! } ! return res; ! } ! public static IResultatsTemporelSpatial convertirResultatsOpt2ResultatsTemporelSpatial(SResultatsOPT opt) { ! IResultatsTemporelSpatial res= ! CDodico.findUsine().creeHydraulique1dResultatsTemporelSpatial(); ! res.descriptionVariables(DescriptionVariables.conversion(opt.variables)); ! res.pasTemps(convertirResultatsPasTemps(opt.resultatsPasTemps)); ! res.resultatsBiefs( ! convertirResultatsPasTemps2ResultatsTemporelSpatialBief( ! opt.resultatsPasTemps, ! res.descriptionVariables().length)); ! return res; ! } ! public static IResultatsTemporelSpatial convertirResultatsTemporelSpatialMasToH1d(SResultatsTemporelSpatial sres) { ! IResultatsTemporelSpatial ires= CDodico.findUsine().creeHydraulique1dResultatsTemporelSpatial(); ! ires.resultatsCasier(sres.resultatsCasier); ! ires.resultatsLiaison(sres.resultatsLiaison); ! ires.resultatsPermanent(sres.resultatsPermanent); ! ires.descriptionVariables(DescriptionVariables.conversion(sres.variables)); ! ires.pasTemps(sres.pasTemps); ! int nbBiefRes = sres.resultatsBiefs.length; ! IResultatsTemporelSpatialBief[] iresBiefs = new IResultatsTemporelSpatialBief[nbBiefRes]; ! ires.resultatsBiefs(iresBiefs); ! for (int i = 0; i < nbBiefRes; i++) { ! iresBiefs[i] = CDodico.findUsine().creeHydraulique1dResultatsTemporelSpatialBief(); ! SResultatsTemporelSpatialBief sresBief = sres.resultatsBiefs[i]; ! iresBiefs[i].abscissesSections(sresBief.abscissesSections); ! iresBiefs[i].valeursVariables(sresBief.valeursVariables); ! } ! return ires; ! } ! public static ILigneEauPoint[] convertirResultatsTemporelSpatial2LigneEauPoint(SResultatsTemporelSpatial param) { // conversion Fichier de reprise en écriture ! Vector newLigneEau= new Vector(); ! int indexeCote= rechercheIndexe("Z", param.variables); ! int indexeDebitMin= rechercheIndexe("QMIN", param.variables); ! int indexeDebitMaj= rechercheIndexe("QMAJ", param.variables); ! int indexeFrotMin= rechercheIndexe("S1", param.variables); ! int indexeFrotMaj= rechercheIndexe("S2", param.variables); ! ! int indexDernierPasTps= param.pasTemps.length - 1; ! if (indexDernierPasTps == -1) return new ILigneEauPoint[0]; ! ! int nbBief = param.resultatsBiefs.length; ! if (nbBief <1) return new ILigneEauPoint[0]; ! int nbSection = 0; ! for (int i = 0; i < nbBief; i++) { ! nbSection += param.resultatsBiefs[i].abscissesSections.length; ! } ! ILigneEauPoint[] res = new ILigneEauPoint[nbSection]; ! int indexLigneEau =0; ! for (int i = 0; i < nbBief; i++) { ! SResultatsTemporelSpatialBief resBiefi = param.resultatsBiefs[i]; ! double[] vAbsc = resBiefi.abscissesSections; ! double[] vCote = null; ! if (indexeCote != -1) ! vCote = resBiefi.valeursVariables[indexeCote][indexDernierPasTps]; ! double[] vDebitMin = null; ! if (indexeDebitMin != -1) ! vDebitMin = resBiefi.valeursVariables[indexeDebitMin][indexDernierPasTps]; ! double[] vDebitMaj = null; ! if (indexeDebitMaj != -1) ! vDebitMaj = resBiefi.valeursVariables[indexeDebitMaj][indexDernierPasTps]; ! double[] vFrotMin = null; ! if (indexeFrotMin != -1) ! vFrotMin = resBiefi.valeursVariables[indexeFrotMin][indexDernierPasTps]; ! double[] vFrotMaj = null; ! if (indexeFrotMaj != -1) ! vFrotMaj = resBiefi.valeursVariables[indexeFrotMaj][indexDernierPasTps]; ! for (int j = 0; j < vCote.length; j++) { ! res[indexLigneEau] = CDodico.findUsine().creeHydraulique1dLigneEauPoint(); ! res[indexLigneEau].numeroBief(i+1); ! if (vAbsc != null) ! res[indexLigneEau].abscisse(vAbsc[j]); ! if (vCote != null) ! res[indexLigneEau].cote(vCote[j]); ! if ((vDebitMin != null) && (vDebitMin != null)) ! res[indexLigneEau].debit(vDebitMin[j]+vDebitMaj[j]); ! if (vFrotMin != null) ! res[indexLigneEau].coefFrottementMin(vFrotMin[j]); ! if (vFrotMaj != null) ! res[indexLigneEau].coefFrottementMaj(vFrotMaj[j]); ! indexLigneEau++; ! } ! } ! return res; ! } ! private static int rechercheIndexe( ! String nomCourt, ! SResultatsVariable[] variables) { ! int indexe= -1; ! for (indexe= 0; indexe < variables.length; indexe++) { ! if (nomCourt.equals(variables[indexe].nomCourt)) ! return indexe; ! } ! return -1; ! } ! } --- 1,204 ---- ! /* ! * @file ConvMasc_H1D.java ! * @creation 2004-03-01 ! * @modification $Date$ ! * @license GNU General Public License 2 ! * @copyright (c)1998-2004 EDF/LNHE ! * @mail de...@fu... ! */ ! package org.fudaa.dodico.mascaret; ! import java.util.StringTokenizer; ! import java.util.Vector; ! ! import org.fudaa.dodico.boony.BoonyLib; ! import org.fudaa.dodico.corba.hydraulique1d.IDescriptionVariable; ! import org.fudaa.dodico.corba.hydraulique1d.ILigneEauPoint; ! import org.fudaa.dodico.corba.hydraulique1d.IParametresReprise; ! import org.fudaa.dodico.corba.hydraulique1d.IResultatsTemporelSpatial; ! import org.fudaa.dodico.corba.hydraulique1d.IResultatsTemporelSpatialBief; ! import org.fudaa.dodico.corba.mascaret.SParametresREP; ! import org.fudaa.dodico.corba.mascaret.SResultatBief; ! import org.fudaa.dodico.corba.mascaret.SResultatPasTemps; ! import org.fudaa.dodico.corba.mascaret.SResultatSection; ! import org.fudaa.dodico.corba.mascaret.SResultatsOPT; ! import org.fudaa.dodico.corba.mascaret.SResultatsTemporelSpatial; ! import org.fudaa.dodico.corba.mascaret.SResultatsTemporelSpatialBief; ! import org.fudaa.dodico.corba.mascaret.SResultatsVariable; ! import org.fudaa.dodico.objet.CDodico; ! /** ! * Méthodes statiques pour convertir le modèle mascaret (les résultats ! * du code) en modèle métier hydraulique1d ! * ! * @version $Revision$ $Date$ by $Author$ ! * @author Jean-Marc Lacombe ! */ ! public class ConvMasc_H1D { ! ! final static IResultatsTemporelSpatial RES_OPTHYCA_VIDE= ! convertirResultatsOpt2ResultatsTemporelSpatial( ! new SResultatsOPT(new SResultatsVariable[0], new SResultatPasTemps[0])); ! final static IParametresReprise RES_REP_VIDE= ! convertirResultatsRep(new SParametresREP(new byte[0])); ! ! public static IParametresReprise convertirResultatsRep(SParametresREP param) { // conversion Fichier de reprise en écriture ! IParametresReprise repHydr= ! BoonyLib.findUsine().creeHydraulique1dParametresReprise(); ! if (param.contenu.length == 0) ! return repHydr; ! repHydr.fichier(""); ! String chaine= new String(param.contenu); ! int index= chaine.indexOf("FIN"); // le temps final se trouve aprés FIN ! String chaineSansLigneInitiale= chaine.substring(index + 3); ! StringTokenizer st= new StringTokenizer(chaineSansLigneInitiale); ! repHydr.tFinal(Double.parseDouble(st.nextToken())); ! repHydr.contenu(chaine.getBytes()); ! return repHydr; ! } ! public static IDescriptionVariable[] convertirResultatsVariables2DescriptionVariable(SResultatsVariable[] descVars) { ! return DescriptionVariables.conversion(descVars); ! } ! ! public static double[] convertirResultatsPasTemps(SResultatPasTemps[] sres) { ! double res[]= new double[sres.length]; ! for (int i= 0; i < res.length; i++) { ! res[i]= sres[i].t; ! } ! return res; ! } ! public static IResultatsTemporelSpatialBief[] convertirResultatsPasTemps2ResultatsTemporelSpatialBief( ! SResultatPasTemps[] sres, ! int nbVar) { ! if (sres.length == 0) ! return new IResultatsTemporelSpatialBief[0]; ! if (nbVar == 0) ! return new IResultatsTemporelSpatialBief[0]; ! int nbPasTps= sres.length; ! int nbBief= sres[0].resultatsBief.length; ! //il y a le même nombre de bief à tous la pas de temps ! IResultatsTemporelSpatialBief[] res= ! new IResultatsTemporelSpatialBief[nbBief]; ! for (int i= 0; i < res.length; i++) { ! res[i]= ! BoonyLib.findUsine().creeHydraulique1dResultatsTemporelSpatialBief(); ! SResultatSection[] sectionsBief= ! sres[0].resultatsBief[i].resultatsSection; ! double[] absc= new double[sectionsBief.length]; ! double[][][] valeurs= new double[nbVar][nbPasTps][absc.length]; ! for (int j= 0; j < absc.length; j++) { ! absc[j]= sectionsBief[j].absc; ! } ! res[i].abscissesSections(absc); ! res[i].valeursVariables(valeurs); ! } ! for (int i= 0; i < sres.length; i++) { //nb de Pas Temps ! SResultatPasTemps resPasTps= sres[i]; ! for (int j= 0; j < resPasTps.resultatsBief.length; j++) { //nb de Bief ! SResultatBief resBief= resPasTps.resultatsBief[j]; ! for (int k= 0; ! k < resBief.resultatsSection.length; ! k++) { //nb de section ! SResultatSection resSec= resBief.resultatsSection[k]; ! for (int l= 0; l < resSec.valeurs.length; l++) { //nb de variable ! double[][][] vals= res[j].valeursVariables(); ! vals[l][i][k]= resSec.valeurs[l]; ! } ! } ! } ! } ! return res; ! } ! public static IResultatsTemporelSpatial convertirResultatsOpt2ResultatsTemporelSpatial(SResultatsOPT opt) { ! IResultatsTemporelSpatial res= ! BoonyLib.findUsine().creeHydraulique1dResultatsTemporelSpatial(); ! res.descriptionVariables(DescriptionVariables.conversion(opt.variables)); ! res.pasTemps(convertirResultatsPasTemps(opt.resultatsPasTemps)); ! res.resultatsBiefs( ! convertirResultatsPasTemps2ResultatsTemporelSpatialBief( ! opt.resultatsPasTemps, ! res.descriptionVariables().length)); ! return res; ! } ! public static IResultatsTemporelSpatial convertirResultatsTemporelSpatialMasToH1d(SResultatsTemporelSpatial sres) { ! IResultatsTemporelSpatial ires= BoonyLib.findUsine().creeHydraulique1dResultatsTemporelSpatial(); ! ires.resultatsCasier(sres.resultatsCasier); ! ires.resultatsLiaison(sres.resultatsLiaison); ! ires.resultatsPermanent(sres.resultatsPermanent); ! ires.descriptionVariables(DescriptionVariables.conversion(sres.variables)); ! ires.pasTemps(sres.pasTemps); ! int nbBiefRes = sres.resultatsBiefs.length; ! IResultatsTemporelSpatialBief[] iresBiefs = new IResultatsTemporelSpatialBief[nbBiefRes]; ! ires.resultatsBiefs(iresBiefs); ! for (int i = 0; i < nbBiefRes; i++) { ! iresBiefs[i] = BoonyLib.findUsine().creeHydraulique1dResultatsTemporelSpatialBief(); ! SResultatsTemporelSpatialBief sresBief = sres.resultatsBiefs[i]; ! iresBiefs[i].abscissesSections(sresBief.abscissesSections); ! iresBiefs[i].valeursVariables(sresBief.valeursVariables); ! } ! return ires; ! } ! public static ILigneEauPoint[] convertirResultatsTemporelSpatial2LigneEauPoint(SResultatsTemporelSpatial param) { // conversion Fichier de reprise en écriture ! Vector newLigneEau= new Vector(); ! int indexeCote= rechercheIndexe("Z", param.variables); ! int indexeDebitMin= rechercheIndexe("QMIN", param.variables); ! int indexeDebitMaj= rechercheIndexe("QMAJ", param.variables); ! int indexeFrotMin= rechercheIndexe("S1", param.variables); ! int indexeFrotMaj= rechercheIndexe("S2", param.variables); ! ! int indexDernierPasTps= param.pasTemps.length - 1; ! if (indexDernierPasTps == -1) return new ILigneEauPoint[0]; ! ! int nbBief = param.resultatsBiefs.length; ! if (nbBief <1) return new ILigneEauPoint[0]; ! int nbSection = 0; ! for (int i = 0; i < nbBief; i++) { ! nbSection += param.resultatsBiefs[i].abscissesSections.length; ! } ! ILigneEauPoint[] res = new ILigneEauPoint[nbSection]; ! int indexLigneEau =0; ! for (int i = 0; i < nbBief; i++) { ! SResultatsTemporelSpatialBief resBiefi = param.resultatsBiefs[i]; ! double[] vAbsc = resBiefi.abscissesSections; ! double[] vCote = null; ! if (indexeCote != -1) ! vCote = resBiefi.valeursVariables[indexeCote][indexDernierPasTps]; ! double[] vDebitMin = null; ! if (indexeDebitMin != -1) ! vDebitMin = resBiefi.valeursVariables[indexeDebitMin][indexDernierPasTps]; ! double[] vDebitMaj = null; ! if (indexeDebitMaj != -1) ! vDebitMaj = resBiefi.valeursVariables[indexeDebitMaj][indexDernierPasTps]; ! double[] vFrotMin = null; ! if (indexeFrotMin != -1) ! vFrotMin = resBiefi.valeursVariables[indexeFrotMin][indexDernierPasTps]; ! double[] vFrotMaj = null; ! if (indexeFrotMaj != -1) ! vFrotMaj = resBiefi.valeursVariables[indexeFrotMaj][indexDernierPasTps]; ! for (int j = 0; j < vCote.length; j++) { ! res[indexLigneEau] = BoonyLib.findUsine().creeHydraulique1dLigneEauPoint(); ! res[indexLigneEau].numeroBief(i+1); ! if (vAbsc != null) ! res[indexLigneEau].abscisse(vAbsc[j]); ! if (vCote != null) ! res[indexLigneEau].cote(vCote[j]); ! if ((vDebitMin != null) && (vDebitMin != null)) ! res[indexLigneEau].debit(vDebitMin[j]+vDebitMaj[j]); ! if (vFrotMin != null) ! res[indexLigneEau].coefFrottementMin(vFrotMin[j]); ! if (vFrotMaj != null) ! res[indexLigneEau].coefFrottementMaj(vFrotMaj[j]); ! indexLigneEau++; ! } ! } ! return res; ! } ! private static int rechercheIndexe( ! String nomCourt, ! SResultatsVariable[] variables) { ! int indexe= -1; ! for (indexe= 0; indexe < variables.length; indexe++) { ! if (nomCourt.equals(variables[indexe].nomCourt)) ! return indexe; ! } ! return -1; ! } ! } Index: CConversionHydraulique1d.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/CConversionHydraulique1d.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** CConversionHydraulique1d.java 27 Apr 2004 16:04:15 -0000 1.17 --- CConversionHydraulique1d.java 27 Apr 2004 16:34:26 -0000 1.18 *************** *** 8,11 **** --- 8,12 ---- */ package org.fudaa.dodico.mascaret; + import org.fudaa.dodico.boony.BoonyLib; import org.fudaa.dodico.corba.hydraulique1d.ICalculHydraulique1d; import org.fudaa.dodico.corba.hydraulique1d.IEtude1d; *************** *** 91,95 **** if (calculHydraulique1d.etude().resultatsGeneraux() == null) calculHydraulique1d.etude().resultatsGeneraux( ! CDodico.findUsine().creeHydraulique1dResultatsGeneraux()); convertirResultatsLis(); // Fichier listing convertirResultatsLisDamocles(); // Fichier listing.damoc --- 92,96 ---- if (calculHydraulique1d.etude().resultatsGeneraux() == null) calculHydraulique1d.etude().resultatsGeneraux( ! BoonyLib.findUsine().creeHydraulique1dResultatsGeneraux()); convertirResultatsLis(); // Fichier listing convertirResultatsLisDamocles(); // Fichier listing.damoc |