|
From: <de...@us...> - 2013-07-15 07:44:08
|
Revision: 8437
http://sourceforge.net/p/fudaa/svn/8437
Author: deniger
Date: 2013-07-15 07:44:05 +0000 (Mon, 15 Jul 2013)
Log Message:
-----------
CRUE-530
Modified Paths:
--------------
trunk/soft/fudaa-crue/crue-config/src/main/java/org/fudaa/dodico/crue/config/coeur/CoeurConfig.java
trunk/soft/fudaa-crue/crue-core/src/main/resources/org/fudaa/dodico/crue/common/businessMessages.properties
trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/etude/EMHProjet.java
trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/conf/CrueDaoStructureCONF.java
trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/etu/CrueConverterETU.java
trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/neuf/DHReader.java
trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/neuf/DHWriter.java
trunk/soft/fudaa-crue/crue-io/src/test/resources/FudaaCrue_Site.xml
trunk/soft/fudaa-crue/crue-io/src/test/resources/FudaaCrue_Site_officiel.xml
trunk/soft/fudaa-crue/crue-validation/src/main/java/org/fudaa/dodico/crue/validation/ValidationHelperLoi.java
trunk/soft/fudaa-crue/crue-validation/src/main/java/org/fudaa/dodico/crue/validation/ValidatorForCrue9Export.java
trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/node/UsedByScenarioCrue10Builder.java
trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/property/ManagerPropertyFactory.java
Modified: trunk/soft/fudaa-crue/crue-config/src/main/java/org/fudaa/dodico/crue/config/coeur/CoeurConfig.java
===================================================================
--- trunk/soft/fudaa-crue/crue-config/src/main/java/org/fudaa/dodico/crue/config/coeur/CoeurConfig.java 2013-07-11 22:03:30 UTC (rev 8436)
+++ trunk/soft/fudaa-crue/crue-config/src/main/java/org/fudaa/dodico/crue/config/coeur/CoeurConfig.java 2013-07-15 07:44:05 UTC (rev 8437)
@@ -27,7 +27,7 @@
private String coeurFolderPath;
private String comment;
private boolean usedByDefault;
- private boolean crue9Dependant;
+ private boolean crue9Dependant = true;
private CrueVersionType crueVersionType;
private CrueConfigMetier crueConfigMetier;
private File baseDir;
@@ -36,6 +36,7 @@
return baseDir;
}
+ @Override
public boolean isCrue9Dependant() {
return crue9Dependant;
}
Modified: trunk/soft/fudaa-crue/crue-core/src/main/resources/org/fudaa/dodico/crue/common/businessMessages.properties
===================================================================
--- trunk/soft/fudaa-crue/crue-core/src/main/resources/org/fudaa/dodico/crue/common/businessMessages.properties 2013-07-11 22:03:30 UTC (rev 8436)
+++ trunk/soft/fudaa-crue/crue-core/src/main/resources/org/fudaa/dodico/crue/common/businessMessages.properties 2013-07-15 07:44:05 UTC (rev 8437)
@@ -727,9 +727,10 @@
io.dfrt.frtUnknown=Le frottement {0} contient un type non g\u00e9r\u00e9
reloadRun.copyFailed=La copie du fichier {0} a \u00e9chou\u00e9
reloadRun.runFileNotFound=Le fichier {0} n''existe pas
-repriseDh.error=la reprise de calcul n'est pas compatible avec Crue 9
+repriseDh.error=La reprise de calcul Crue9 n'est pas compatible avec Fudaa-Crue
crue9.compatible.ordCalcTransIniCalcClicheIgnored=Les ordres de calcul OrdCalcTransIniCalcCliche seront ignor\u00e9s lors de la sauvegarde au format Crue9
crue9.compatible.ordCalcPseudoPermIniClicheIgnored=Les ordres de calcul OrdCalcPseudoPermIniCliche seront ignor\u00e9s lors de la sauvegarde au format Crue9
+crue9.compatible.temporalScenarioNotSupported=Le sc\u00e9nario courant est temporel. Il ne peut pas \u00eatre converti en sc\u00e9nario Crue9. Pour ce faire, transformez-le en sc\u00e9nario atemporel (DateDebSce vide dans les Param\u00e8tres de calcul)
export.oldCrue10.containOrdCalcPseudoPermIniCliche.error=La grammaire de version 1.1.1 ne supporte pas les OrdCalcPseudoPermIniCliche
export.oldCrue10.containOrdCalcTransIniCalcCI.error=La grammaire de version 1.1.1 ne supporte pas les OrdCalcTransIniCalcCI
export.oldCrue10.containOrdCalcTransIniCalcCliche.error=La grammaire de version 1.1.1 ne supporte pas les OrdCalcTransIniCalcCliche
Modified: trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/etude/EMHProjet.java
===================================================================
--- trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/etude/EMHProjet.java 2013-07-11 22:03:30 UTC (rev 8436)
+++ trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/etude/EMHProjet.java 2013-07-15 07:44:05 UTC (rev 8437)
@@ -463,7 +463,7 @@
LOGGER.log(Level.INFO, "not renamed because {0} is already used ", newName.toUpperCase());
return false;
}
- if (EnumCatEMH.SCENARIO.equals(type)) {
+ if (EnumCatEMH.SCENARIO.equals(type) && getCoeurConfig().isCrue9Dependant()) {
ManagerEMHScenario scenario = (ManagerEMHScenario) manager;
if (scenario.isCrue9()) {
Collection<ManagerEMHScenario> values = (Collection<ManagerEMHScenario>) managerByNom.values();
Modified: trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/conf/CrueDaoStructureCONF.java
===================================================================
--- trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/conf/CrueDaoStructureCONF.java 2013-07-11 22:03:30 UTC (rev 8436)
+++ trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/conf/CrueDaoStructureCONF.java 2013-07-15 07:44:05 UTC (rev 8437)
@@ -64,7 +64,7 @@
public String id;
public String Commentaire;
public String VersionGrammaire;
- boolean Crue9Dependant;
+ boolean Crue9Dependant = true;
public boolean CoeurParDefaut;
public String DossierCoeur;
}
Modified: trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/etu/CrueConverterETU.java
===================================================================
--- trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/etu/CrueConverterETU.java 2013-07-11 22:03:30 UTC (rev 8436)
+++ trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/etu/CrueConverterETU.java 2013-07-15 07:44:05 UTC (rev 8437)
@@ -209,7 +209,7 @@
newScenar.addManagerFils(modeleData);
}
} else if (CtuluLibArray.isNotEmpty(scenarPersist.Modeles)) {
- if (scenarPersist.ScenarioScenarioV9 != null) {
+ if (scenarPersist.ScenarioScenarioV9 != null ) {
newScenar.setLinkedscenarioCrue9(scenarPersist.ScenarioScenarioV9.NomRef);
}
for (final Ref reference : scenarPersist.Modeles) {
@@ -286,7 +286,7 @@
scenario.Nom = managerScenario.getNom();
scenario.IsActive = managerScenario.isCrue9() ? null : managerScenario.isActive();
- if (managerScenario.getLinkedscenarioCrue9() != null) {
+ if (managerScenario.getLinkedscenarioCrue9() != null && metier.getCoeurConfig().isCrue9Dependant()) {
scenario.ScenarioScenarioV9 = new Ref();
scenario.ScenarioScenarioV9.NomRef = managerScenario.getLinkedscenarioCrue9();
}
Modified: trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/neuf/DHReader.java
===================================================================
--- trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/neuf/DHReader.java 2013-07-11 22:03:30 UTC (rev 8436)
+++ trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/neuf/DHReader.java 2013-07-15 07:44:05 UTC (rev 8437)
@@ -1040,15 +1040,9 @@
// TDEBH, TDEBM, TDEBS, HDEBJ, HDEBH, HDEBM, HDEBS, NTS, TMAX
reader.readLine();
final Duration pasDeTemps = readDuration(reader);
- final LocalDateTime dateMax = DateDurationConverter.getDateFromZeroDate(readDuration(reader, 4));
- final Duration tDeb = readDuration(reader, 8);
- final Duration hDeb = readDuration(reader, 12);
- final LocalDateTime dateDeb = DateDurationConverter.getDateFromZeroDate(hDeb);
+ Duration transDureeCalc = readDuration(reader, 4);
final int nts = reader.intField(16);
- if (isFine()) {
- LOGGER.log(Level.FINE, "Donn\u00e9es transitoires {0} : dt {1} | tmax {2} | tdeb {3} | hdeb {4} | nts {5}", new Object[]{reader.getCurrent().getLineNumber(), pasDeTemps, dateMax, tDeb, dateDeb, nts});
- }
final ParamNumModeleBase pnum = res.getOrCreatePNUM();
final PdtCst pdtCst = new PdtCst();
@@ -1061,17 +1055,8 @@
trans.setPdt(pdtCst);
// Enregistrement de tMax, hDeb et nts transformé en période dans PCAL
- ParamCalcScenario pcal = res.getOrCreatePCAL();
- if (!DateDurationConverter.ZERO_DATE.equals(dateDeb)) {
- pcal.setDateDebSce(dateDeb);
- }
- Duration transDureeCalc = new Duration(dateDeb.toDateTime(), dateMax.toDateTime());//DureeCalc=DH.tmax-DH.hdeb
//NTS = OCAL.OrdCalcTrans.PdtRes.PdtCst / PNUM.ParamNumCalcTrans.Pdt.PdtCst
Pdt transPdtRes = EMHFactory.createPdtCst(new Duration((pasDeTemps.getMillis() * nts)));
- if (!hDeb.equals(tDeb)) {
- analyze_.addInfo("io.dh.tdeb.notsupported.message");
- }
-
reader.readLine();
// Définition de toutes les conditions limites supportees.
@@ -1217,7 +1202,7 @@
final List<ElemPdt> elementsPdt = new ArrayList<ElemPdt>();
- Duration lastDuration = hDeb;
+ Duration lastDuration = new Duration(0);
Duration currentDuration;
Duration lastStepTime = pasDeTemps;
int nbStepTime = 0;
@@ -1635,6 +1620,9 @@
// TREPM Heures/Minutes/Secondes) (utilisés dans le cas ICAL = 0)
// TREPS
final Duration tempReprise = readDuration(reader, 5);
+ if (tempReprise.getMillis() != 0) {
+ analyze_.addSevereError("repriseDh.error");
+ }
// Enregistrement de "ical" et de "trepr" dans OCAL (seulement s'il vaut 0 ; aucun enregistrement metier pour une
// valeur différente)
Modified: trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/neuf/DHWriter.java
===================================================================
--- trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/neuf/DHWriter.java 2013-07-11 22:03:30 UTC (rev 8436)
+++ trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/neuf/DHWriter.java 2013-07-15 07:44:05 UTC (rev 8437)
@@ -83,20 +83,20 @@
* @author Adrien Hadoux
*/
public class DHWriter extends AbstractCrue9Writer implements CtuluActivity {
-
+
private double tolndz;
-
+
@Override
protected void internalWrite(final CrueIOResu o) {
-
+
initWriter();
-
+
final CrueData data = ((CrueIOResu<CrueData>) o).getMetier();
tolndz = getTolNdZDefaultValue(data);
comparator = new InfoEMHByUserPositionComparator(data.getScenarioData());
-
+
try {
-
+
final Map<String, Double> coeffsRuisParCalcPerm = new HashMap<String, Double>();
writeDonneesGenerales((CrueIOResu<CrueData>) o, coeffsRuisParCalcPerm);
if (aDonneesPerm) {
@@ -105,7 +105,7 @@
if (aDonneesTrans) {
writeDonneesTransitoires(data);
}
-
+
} catch (final IOException e) {
analyze_.manageException(e);
} finally {
@@ -117,14 +117,14 @@
}
}
}
-
+
@Override
protected FortranInterface getFortranInterface() {
return fortranWriter;
}
private boolean aDonneesPerm = false;
private boolean aDonneesTrans = false;
-
+
private boolean isModeLateral(final CrueData data) {
final PropertyEpsilon epsForCoefRus = data.getCrueConfigMetier().getEpsilon("coefRuis");
final List<EMH> allSimpleEMH = data.getAllSimpleEMH();
@@ -147,10 +147,10 @@
}
}
}
-
+
}
return false;
-
+
}
/**
@@ -159,7 +159,7 @@
*/
private void writeDonneesGenerales(final CrueIOResu<CrueData> ioData, final Map coeffsRuisParCalcPerm)
throws IOException {
-
+
writeCom("");
writeCom(" Donnees generales ");
@@ -168,7 +168,7 @@
final CrueData data = ioData.getMetier();
final int ile = getILE(data);
writeRegle(data, ile);
-
+
writeCom("");
writeCom(" ical cru cofqrq isorti ile trepr ");
@@ -176,7 +176,7 @@
int ical = -1;
double cru = 0;
int cofqrq = 0;
-
+
String isorti = "0";
@@ -209,13 +209,13 @@
if (analyze_.containsSevereError()) {
return;
}
-
+
cofqrq = 1;
}
// Valeur par défaut pour l'écriture (on ne tient pas compte de la valeur à la lecture de DH)
}
-
+
if (aDonneesGen && aDonneesPerm && aDonneesTrans) {
ical = 2;
} else if (aDonneesGen && aDonneesPerm) {
@@ -230,7 +230,7 @@
analyze_.addSevereError("repriseDh.error");
return;
}
-
+
boolean use1 = data.getOCAL().getSorties().containsVerbositeStrictlyMoreThan(SeveriteManager.INFO, data.getCrueConfigMetier());
// isorti
isorti = (use1 ? "1" : "0");
@@ -261,7 +261,7 @@
fortranWriter.stringField(0, CrueIODico.DH_MODRU);
fortranWriter.writeFields();
}
-
+
writeCom("");
writeCom(" Debits initiaux dans les branches ");
@@ -273,7 +273,7 @@
final List<DonPrtCIniBranche> dptis = EMHHelper.selectInstanceOf(br.getInfosEMH(), DonPrtCIniBranche.class);
if (dptis != null) {
for (final DonPrtCIniBranche dpti : dptis) {
-
+
branchesDPTI.add(br);
final String nom = br.getNom();
final String valeur = Double.toString(dpti.getQini());
@@ -317,13 +317,13 @@
fortranWriter.stringField(countNbChampWritten++, valeur);
nbCaractWritten += nbCaractToWrite;
}
-
+
}
fortranWriter.writeFields();
}
writeFin();
}
-
+
if (ile == 0) {
// Ecriture lignes E
@@ -340,17 +340,17 @@
final CatEMHBranche brancheDPTI = branchesDPTI.get(i);
final List<RelationEMHSectionDansBranche> sectionsBrancheDPTI = brancheDPTI.getListeSections();
final List<DonPrtCIni> dptis = brancheDPTI.getDPTI();
-
+
if (sectionsBrancheDPTI == null || dptis == null) {
analyze_.addInfoFromFile("io.dh.sections.dpti.error", fortranWriter.getLineNumber(), brancheDPTI.getNom());
} else {
nbCaractWritten = 0;
-
+
final int countSectionsBranche = sectionsBrancheDPTI.size();
int idxOnLine = 0;
for (int j = 0; j < countSectionsBranche; j++) {
-
+
final DonPrtCIniSection dpti = EMHHelper.selectFirstOfClass(sectionsBrancheDPTI.get(j).getEmh().getInfosEMH(), DonPrtCIniSection.class);
double zIniPourProfilJ = 0;
if (dpti != null) {
@@ -367,7 +367,7 @@
nbCaractWritten = 0;
idxOnLine = 0;
}
-
+
fortranWriter.doubleField(idxOnLine++, zIniPourProfilJ);
nbCaractWritten += nbCaractToWrite;
}
@@ -386,9 +386,9 @@
nbCaractWritten = 0;
for (final CatEMHNoeud noeud : noeuds) {
final List<DonPrtCIni> dptis = noeud.getDPTI();
-
+
if (dptis != null) {
-
+
for (int j = 0, dptisSize = dptis.size(); j < dptisSize; j++) {
if (!(dptis.get(j) instanceof DonPrtCIniNoeudNiveauContinu)) {
continue;
@@ -445,7 +445,7 @@
writeFin();
}
}
-
+
private boolean containsDPTI(final List<CatEMHBranche> branches) {
if (branches == null) {
return false;
@@ -487,7 +487,7 @@
crMaxFlu = pseudoPerm.getCrMaxFlu();
crMaxTor = pseudoPerm.getCrMaxTor();
}
-
+
final ParamNumCalcTrans calcTrans = pnum.getParamNumCalcTrans();
if (calcTrans != null) {
final double crMaxFluTrans = calcTrans.getCrMaxFlu();
@@ -508,9 +508,9 @@
if (ile == 2) {
writeCarteValeur(data.getProperty("pm_TolNdZ"), CrueIODico.TOL_Z_INIT, tolndz);
}
-
+
}
-
+
private int getILE(final CrueData data) {
final OrdPrtCIniModeleBase methodesInterpolation = data.getOPTI();
int calcILE = 0;
@@ -527,7 +527,7 @@
}
return calcILE;
}
-
+
private double getTolNdz(final OrdPrtCIniModeleBase methodesInterpolation, final CrueData data) {
final Collection<ValParam> listValParam = methodesInterpolation.getValParam();
if (listValParam != null) {
@@ -540,12 +540,12 @@
}
return getTolNdZDefaultValue(data);
}
-
+
private double getTolNdZDefaultValue(final CrueData data) {
return data.getCrueConfigMetier().getDefaultDoubleValue(
StringUtils.uncapitalize(EnumRegleInterpolation.TOL_ND_Z.getVariableName()));
}
-
+
private double computeQruisQDM(final CrueData data) {
final List<EMHBrancheSaintVenant> branchesSaintVenant = data.getBranchesSaintVenant();
for (final EMHBrancheSaintVenant brancheSaintVenant : branchesSaintVenant) {
@@ -559,14 +559,14 @@
}
return data.getCrueConfigMetier().getDefaultDoubleValue("coefRuisQdm");
}
-
+
private boolean computeQruisIdentique(final Map<String, Double> coeffsRuisParCalcPerm, final List<OrdCalc> ordCalcs,
final CrueConfigMetier props) {
final List<CalcPseudoPerm> calcPseudoPerm = EMHHelper.collectCalcPseudoPerm(ordCalcs);
// Pour déterminer s'il existe un coefficient de ruissellement commun pour un calcul permanent, il faut que le
// coefficient de chaque branche Saint Venant de ce calcul soit le même.
for (int i = 0, imax = calcPseudoPerm.size(); i < imax; i++) {
-
+
final CalcPseudoPerm calcPerm = calcPseudoPerm.get(i);
// Il faut au moins une branche saint venant pour considérer qu'il y a un débit de ruissellement (identique)
final List<CalcPseudoPermBrancheSaintVenantQruis> calcQruis = calcPerm.getCalcPseudoPermBrancheSaintVenantQruisUserActive();
@@ -585,20 +585,19 @@
return true;
}
-
/**
* @param data
* @throws IOException
*/
private void writeDonneesPermanentes(final CrueData data, final Map coeffsRuisParCalcPerm) throws IOException {
-
+
writeCom("");
writeCom(" Donnees pseudo-permanentes");
// Ecriture Ligne A
writeCom("");
writeCom(" dtperm tolz tolq icalmx iprint ndecou ");
-
+
Duration duree = null;
double tolz = -1.0;
double tolq = -1.0;
@@ -606,7 +605,7 @@
// Valeur par défaut, pas stocké à la lecture de DH
final int iprint = 0;
int ndecou = -1;
-
+
final ParamNumModeleBase pnum = data.getPNUM();
PdtVar pdtVar = null;
if (pnum != null) {
@@ -642,7 +641,7 @@
// Ecriture Lignes B
writeCom("");
writeCom(" Definition des types des conditions aux limites ");
-
+
final OrdCalcScenario ocal = data.getOCAL();
if (ocal != null) {
final List<CalcPseudoPerm> calcsPerms = EMHHelper.collectCalcPseudoPerm(ocal.getOrdCalc());
@@ -667,16 +666,16 @@
if (pdtVar != null && CollectionUtils.isNotEmpty(pdtVar.getElemPdt())) {
writeCom("");
writeCom(" Modulation du pas de temps au cours de la procedure de stabilisation ");
-
+
ecritLignesDPermanent(pdtVar);
}
// Ecriture Lignes E
writeCom("");
writeCom(" Valeurs des conditions aux limites (regimes pseudo-permanents) ");
-
+
for (int i = 0, imax = nomsCalcsPerms.size(); i < imax; i++) {
-
+
final String nomCalcPerm = nomsCalcsPerms.get(i);
if (lignesE.containsKey(nomCalcPerm)) {
final TDoubleArrayList valeursCP = lignesE.get(nomCalcPerm);
@@ -684,7 +683,7 @@
for (int j = 0, jmax = size; j < jmax; j++) {
fortranWriter.doubleField(j, valeursCP.get(j));
}
-
+
fortranWriter.writeFields();
}
}
@@ -692,7 +691,7 @@
// Ecriture Ligne F
writeFin();
}
-
+
}
}
private InfoEMHByUserPositionComparator comparator;
@@ -711,7 +710,7 @@
private void afficheLignesBetRecupereDonneesLignesE(final CalcPseudoPerm calcPerm, final int numCalcPerm,
final TObjectIntHashMap typesCL, final Map<String, TDoubleArrayList> lignesE, final List<String> nomsCalcsPerms)
throws IOException {
-
+
final String nomCalcPerm = calcPerm.getNom();
nomsCalcsPerms.add(nomCalcPerm);
//Doit suivre l'ordre:
@@ -721,7 +720,7 @@
// CalcPseudoPermBrancheSaintVenantQruis
// CalcPseudoPermCasierProfilQruis
final TDoubleArrayList valeursCP = new TDoubleArrayList();
-
+
final List<CalcPseudoPermNoeudQapp> listeQapp = new ArrayList<CalcPseudoPermNoeudQapp>(
calcPerm.getCalcPseudoPermNoeudQappUserActive());
Collections.sort(listeQapp, comparator);
@@ -756,17 +755,17 @@
valeursCP.add(nnc.getZimp());
}
}
-
+
final List<CalcPseudoPermBrancheOrificeManoeuvre> listeBranchesOr = new ArrayList<CalcPseudoPermBrancheOrificeManoeuvre>(
calcPerm.getCalcPseudoPermBrancheOrificeManoeuvreUserActive());
Collections.sort(listeBranchesOr, comparator);
for (int i = 0, listeBranchesOrSize = listeBranchesOr.size(); i < listeBranchesOrSize; i++) {
-
+
final CalcPseudoPermBrancheOrificeManoeuvre brancheOr = listeBranchesOr.get(i);
if (brancheOr.getNomCalculParent() != null && brancheOr.getNomCalculParent().equals(nomCalcPerm)) {
-
+
final CalcPseudoPermBrancheOrificeManoeuvre brancheOrMan = brancheOr;
-
+
if (numCalcPerm == 0) {
fortranWriter.stringField(0, brancheOr.getEmh().getNom());
int typeCL = typesCL.get(brancheOr.getClass());
@@ -777,7 +776,7 @@
fortranWriter.intField(1, typeCL);
fortranWriter.writeFields();
}
-
+
valeursCP.add(brancheOrMan.getOuv());
}
}
@@ -795,21 +794,22 @@
* @throws IOException
*/
private void writeDonneesTransitoires(final CrueData data) throws IOException {
-
+
writeCom("");
writeCom(" Donnees transitoires ");
// Ligne A
writeCom("");
writeCom(" dt tmax tdeb hdeb nts ");
-
+
String dt = null;
String tMax = null;
// tdeb plus supporté donc valeur par défaut toujours à 0 0 0 0
final String tDeb = DateDurationConverter.CRUE_ZERO;
- String hDeb = null;
+ // hdeb plus supporté donc valeur par défaut toujours à 0 0 0 0
+ final String hDeb = DateDurationConverter.CRUE_ZERO;
int nts = 0;
-
+
final ParamNumModeleBase pnum = data.getPNUM();
PdtVar pdtVar = null;
Duration duree = null;
@@ -833,7 +833,7 @@
}
}
dt = DateDurationConverter.durationToCrueFormat(duree);
-
+
final ParamCalcScenario pcal = data.getPCAL();
LocalDateTime dateDebSce = pcal.getDateDebSce();
if (dateDebSce == null) {
@@ -845,17 +845,16 @@
//si on est ici on a 1 ord calc trans:
final CalcTrans calcTrans = calcsTrans.get(0);
final OrdCalcTrans ordCalc = ordCalcs.get(0);
-
- tMax = DateDurationConverter.dateToCrueFormat(dateDebSce.plus(ordCalc.getDureeCalc()));
- hDeb = DateDurationConverter.dateToCrueFormat(dateDebSce);
-
+
+ tMax = DateDurationConverter.durationToCrueFormat(ordCalc.getDureeCalc());
+
final long dureeDt = duree == null ? 0 : duree.getMillis();
if (dureeDt == 0) {
analyze_.addError("io.dh.nts.indefini.error");
} else if (ordCalc.getPdtRes() != null) {
nts = (int) (((PdtCst) ordCalc.getPdtRes()).getPdtCst().getMillis() / dureeDt);
}
-
+
fortranWriter.stringField(0, dt);
fortranWriter.stringField(1, tMax);
fortranWriter.stringField(2, tDeb);
@@ -866,9 +865,9 @@
// Lignes B
writeCom("");
writeCom(" Definition des types des conditions aux limites ");
-
-
-
+
+
+
final TObjectIntHashMap typesCL = new TObjectIntHashMap();
typesCL.put(CalcTransNoeudNiveauContinuLimnigramme.class, 1);
typesCL.put(CalcTransNoeudQapp.class, 2);
@@ -886,7 +885,7 @@
if (pdtVar != null && CollectionUtils.isNotEmpty(pdtVar.getElemPdt())) {
writeCom("");
writeCom(" Modulation du pas de temps au cours de la procedure de stabilisation ");
-
+
ecritLignesDTransitoire(pdtVar, dateDebSce);
}
@@ -897,7 +896,7 @@
// Ecriture Lignes F (s'il y a une loi de ruissellement)
final Collection<CalcTransBrancheSaintVenantQruis> listeBranchesSV = calcTrans.getCalcTransBrancheSaintVenantQruisUserActive();
-
+
if (CollectionUtils.isEmpty(listeBranchesSV)) {
return;
}
@@ -915,7 +914,7 @@
// Ligne F3
writeFin();
}
-
+
}
/**
@@ -942,7 +941,7 @@
// Ligne D3
writeFin();
-
+
}
/**
@@ -967,7 +966,7 @@
// Ligne D3
writeFin();
-
+
}
/**
@@ -981,7 +980,7 @@
calcTrans.sort(comparator);
for (final CalcTransNoeudQapp lim : calcTrans.getCalcTransNoeudQappUserActive()) {
manageTranItem(lim, typesCL, lignesE);
-
+
}
for (final CalcTransItem lim : calcTrans.getCalcTransNoeudNiveauContinuLimnigrammeUserActive()) {
manageTranItem(lim, typesCL, lignesE);
@@ -989,13 +988,13 @@
for (final CalcTransNoeudNiveauContinuTarage lim : calcTrans.getCalcTransNoeudNiveauContinuTarageUserActive()) {
manageTranItem(lim, typesCL, lignesE);
}
-
+
for (final CalcTransBrancheOrificeManoeuvre lim : calcTrans.getCalcTransBrancheOrificeManoeuvreUserActive()) {
manageTranItem(lim, typesCL, lignesE);
}
-
+
}
-
+
private void manageTranItem(final CalcTransItem lim, final TObjectIntHashMap typesCL, final List<Loi> lignesE)
throws IOException {
fortranWriter.stringField(0, lim.getEmh().getNom());
@@ -1016,39 +1015,39 @@
* @throws IOException
*/
private void ecritLoi(final CrueData data, final Loi loi) throws IOException {
-
+
if (loi instanceof LoiDF) {
// Valeur par défaut mise à 2
final int ilecam = 2;
-
+
ecritLoiDFIlecam2((LoiDF) loi, ilecam);
-
+
} else if (loi instanceof LoiFF) {
-
+
final EvolutionFF evolFF = loi.getEvolutionFF();
-
+
if (evolFF != null && CollectionUtils.isNotEmpty(evolFF.getPtEvolutionFF())) {
final List<PtEvolutionFF> ptEvolutionFF = evolFF.getPtEvolutionFF();
// Ligne E3-1
writeCom("");
writeCom(" Zbas Dz ");
-
+
PtEvolutionFF ptEvol = ptEvolutionFF.get(0);
final double zbas = ptEvol.getOrdonnee();
double dz = 0.0;
-
+
if (ptEvolutionFF.size() == 1) {
analyze_.addError("io.dh.dz.indefini.error", loi.getNom());
} else {
ptEvol = ptEvolutionFF.get(1);
dz = ptEvol.getOrdonnee() - zbas;
}
-
+
fortranWriter.doubleField(0, zbas);
fortranWriter.doubleField(1, dz);
fortranWriter.writeFields();
-
+
writeCom("");
writeCom(" Valeurs des conditions aux limites pour la loi Q(z) ");
int nbCaractToWrite = 0;
@@ -1092,7 +1091,7 @@
* @throws IOException
*/
private void ecritLoiDF(final LoiDF loi) throws IOException {
-
+
final EvolutionFF evolFF = loi.getEvolutionFF();
if (evolFF != null && CollectionUtils.isNotEmpty(evolFF.getPtEvolutionFF())) {
PtEvolutionFF ptEvol = null;
@@ -1106,7 +1105,7 @@
}
}
}
-
+
private String toCrueFormat(final double nbSec) {
final long nbMillis = (long) (nbSec * 1000L);
final String crueFormat = DateDurationConverter.durationToCrueFormat(new Duration(nbMillis));
@@ -1132,16 +1131,15 @@
writeFin();
}
-
/**
* @throws IOException
*/
private void writeFin() throws IOException {
-
+
fortranWriter.stringField(0, "FIN");
fortranWriter.writeFields();
}
-
+
@Override
public void stop() {
}
Modified: trunk/soft/fudaa-crue/crue-io/src/test/resources/FudaaCrue_Site.xml
===================================================================
--- trunk/soft/fudaa-crue/crue-io/src/test/resources/FudaaCrue_Site.xml 2013-07-11 22:03:30 UTC (rev 8436)
+++ trunk/soft/fudaa-crue/crue-io/src/test/resources/FudaaCrue_Site.xml 2013-07-15 07:44:05 UTC (rev 8437)
@@ -18,6 +18,7 @@
<Coeur id="CRUE10.2b">
<Commentaire>Coeur Crue10.2b</Commentaire>
<VersionGrammaire>1.2</VersionGrammaire>
+ <Crue9Dependant>true</Crue9Dependant>
<CoeurParDefaut>false</CoeurParDefaut>
<DossierCoeur>Crue10.2b</DossierCoeur>
</Coeur>
Modified: trunk/soft/fudaa-crue/crue-io/src/test/resources/FudaaCrue_Site_officiel.xml
===================================================================
--- trunk/soft/fudaa-crue/crue-io/src/test/resources/FudaaCrue_Site_officiel.xml 2013-07-11 22:03:30 UTC (rev 8436)
+++ trunk/soft/fudaa-crue/crue-io/src/test/resources/FudaaCrue_Site_officiel.xml 2013-07-15 07:44:05 UTC (rev 8437)
@@ -5,12 +5,14 @@
<Coeur id="CRUE10.1">
<Commentaire>Coeur grammaire version 1.1.1</Commentaire>
<VersionGrammaire>1.1.1</VersionGrammaire>
+ <Crue9Dependant>true</Crue9Dependant>
<CoeurParDefaut>true</CoeurParDefaut>
<DossierCoeur>coeurs/coeur1.1.1</DossierCoeur>
</Coeur>
<Coeur id="CRUE10.2">
<Commentaire>Coeur grammaire version 1.2</Commentaire>
<VersionGrammaire>1.2</VersionGrammaire>
+ <Crue9Dependant>true</Crue9Dependant>
<CoeurParDefaut>true</CoeurParDefaut>
<DossierCoeur>coeurs/coeur1.2.0</DossierCoeur>
</Coeur>
Modified: trunk/soft/fudaa-crue/crue-validation/src/main/java/org/fudaa/dodico/crue/validation/ValidationHelperLoi.java
===================================================================
--- trunk/soft/fudaa-crue/crue-validation/src/main/java/org/fudaa/dodico/crue/validation/ValidationHelperLoi.java 2013-07-11 22:03:30 UTC (rev 8436)
+++ trunk/soft/fudaa-crue/crue-validation/src/main/java/org/fudaa/dodico/crue/validation/ValidationHelperLoi.java 2013-07-15 07:44:05 UTC (rev 8437)
@@ -121,7 +121,6 @@
res.setDefaultResourceBundle(BusinessMessages.RESOURCE_BUNDLE);
res.setDesc(loi.getNom());
valideLoi(loi, ccm, res, null);
- final List<PtEvolutionFF> ptEvolutionFF = loi.getEvolutionFF().getPtEvolutionFF();
return res;
}
Modified: trunk/soft/fudaa-crue/crue-validation/src/main/java/org/fudaa/dodico/crue/validation/ValidatorForCrue9Export.java
===================================================================
--- trunk/soft/fudaa-crue/crue-validation/src/main/java/org/fudaa/dodico/crue/validation/ValidatorForCrue9Export.java 2013-07-11 22:03:30 UTC (rev 8436)
+++ trunk/soft/fudaa-crue/crue-validation/src/main/java/org/fudaa/dodico/crue/validation/ValidatorForCrue9Export.java 2013-07-15 07:44:05 UTC (rev 8437)
@@ -49,6 +49,7 @@
import org.fudaa.dodico.crue.metier.emh.LitNumerote;
import org.fudaa.dodico.crue.metier.emh.LoiDF;
import org.fudaa.dodico.crue.metier.emh.OrdCalcScenario;
+import org.fudaa.dodico.crue.metier.emh.ParamCalcScenario;
import org.fudaa.dodico.crue.metier.emh.RelationEMHSectionDansBranche;
import org.fudaa.dodico.crue.metier.helper.EMHHelper;
@@ -202,6 +203,9 @@
if (object instanceof OrdCalcScenario) {
validateOrdCalcScenario((OrdCalcScenario) object);
}
+ if (object instanceof ParamCalcScenario) {
+ validateParamCalcScenario((ParamCalcScenario) object);
+ }
if (DonPrtGeoProfilSection.class.equals(object.getClass())) {
validateLitMineurName((DonPrtGeoProfilSection) object);
}
@@ -461,4 +465,11 @@
}
}
-}
\ No newline at end of file
+
+ private void validateParamCalcScenario(ParamCalcScenario paramCalcScenario) {
+ if (paramCalcScenario != null) {
+ addWarnOrError("crue9.compatible.temporalScenarioNotSupported");
+
+ }
+ }
+}
Modified: trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/node/UsedByScenarioCrue10Builder.java
===================================================================
--- trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/node/UsedByScenarioCrue10Builder.java 2013-07-11 22:03:30 UTC (rev 8436)
+++ trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/node/UsedByScenarioCrue10Builder.java 2013-07-15 07:44:05 UTC (rev 8437)
@@ -12,6 +12,7 @@
/**
* Permet de mettre à jour les propriétés usedBy pour les scenarios Crue9.
+ *
* @author deniger ( genesis)
*/
public class UsedByScenarioCrue10Builder {
@@ -33,7 +34,7 @@
for (ManagerEMHScenario scenario : scenarios) {
if (scenario.isCrue9()) {
crue9Scenario.add(scenario);
- } else if (scenario.getLinkedscenarioCrue9() != null) {
+ } else if (scenario.getLinkedscenarioCrue9() != null && nodesManager.getProjet().getCoeurConfig().isCrue9Dependant()) {
List<ManagerEMHScenario> usedby = usedByCrue10.get(scenario.getLinkedscenarioCrue9());
if (usedby == null) {
usedby = new ArrayList<ManagerEMHScenario>();
Modified: trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/property/ManagerPropertyFactory.java
===================================================================
--- trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/property/ManagerPropertyFactory.java 2013-07-11 22:03:30 UTC (rev 8436)
+++ trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/property/ManagerPropertyFactory.java 2013-07-15 07:44:05 UTC (rev 8437)
@@ -179,11 +179,11 @@
set.put(typeProp);
set.put(isActiveProp);
//scenario crue9 lié:
- if (emhContainer.isCrue10() && emhContainer.getLevel().equals(CrueLevelType.SCENARIO) && !Crue10VersionConfig.isV1_1_1(
+ if (projet.getCoeurConfig().isCrue9Dependant() && emhContainer.isCrue10() && emhContainer.getLevel().equals(CrueLevelType.SCENARIO) && !Crue10VersionConfig.
+ isV1_1_1(
projet.getCoeurConfig())) {
PropertyScenarioCrue9Linked linkedScenario = new PropertyScenarioCrue9Linked(node, (ManagerEMHScenario) emhContainer,
projet);
-// configureNoCustomEditor(linkedScenario);
set.put(linkedScenario);
}
PropertySupport.ReadOnly<Node> usedBy = new PropertyUsedBy(node);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|