|
From: <de...@us...> - 2012-10-30 16:15:02
|
Revision: 7831
http://fudaa.svn.sourceforge.net/fudaa/?rev=7831&view=rev
Author: deniger
Date: 2012-10-30 16:14:51 +0000 (Tue, 30 Oct 2012)
Log Message:
-----------
am?\195?\169lioration support format serafin dans Fudaa
Modified Paths:
--------------
trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/EfGridSource.java
trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/impl/EfGridSourceMutable.java
trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/impl/EfGridSourcesAbstract.java
trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/serafin/SerafinAdapter.java
trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/serafin/SerafinFileFormat.java
trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/serafin/SerafinGridSourceAdapter.java
trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/serafin/SerafinMaillageBuilderAdapterAbstract.java
trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/serafin/SerafinWriter.java
trunk/business/fudaa-ef/io/src/test/java/org/fudaa/dodico/ef/io/serafin/TestSerafinReaderWriter.java
Added Paths:
-----------
trunk/business/fudaa-ef/nbactions.xml
Modified: trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/EfGridSource.java
===================================================================
--- trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/EfGridSource.java 2012-10-30 15:26:43 UTC (rev 7830)
+++ trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/EfGridSource.java 2012-10-30 16:14:51 UTC (rev 7831)
@@ -8,6 +8,7 @@
package org.fudaa.dodico.ef;
import java.io.IOException;
+import java.util.Map;
/**
* Une interface pour les sources de maillage. De plus, cette interface peut
@@ -19,6 +20,9 @@
* @version $Id: EfGridSource.java,v 1.8 2007-03-02 13:00:54 deniger Exp $
*/
public interface EfGridSource {
+
+
+ public Map getOptions();
/**
* @return le maillage
Modified: trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/impl/EfGridSourceMutable.java
===================================================================
--- trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/impl/EfGridSourceMutable.java 2012-10-30 15:26:43 UTC (rev 7830)
+++ trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/impl/EfGridSourceMutable.java 2012-10-30 16:14:51 UTC (rev 7831)
@@ -7,6 +7,8 @@
*/
package org.fudaa.dodico.ef.impl;
+import java.util.HashMap;
+import java.util.Map;
import org.fudaa.ctulu.fileformat.FileFormat;
import org.fudaa.dodico.ef.ConditionLimiteEnum;
@@ -15,145 +17,143 @@
/**
* @author deniger
- * @version $Id: EfGridSourceMutable.java,v 1.1 2007-01-19 13:07:20 deniger Exp
- * $
+ * @version $Id: EfGridSourceMutable.java,v 1.1 2007-01-19 13:07:20 deniger Exp $
*/
public class EfGridSourceMutable implements EfGridSource {
- EfGrid g_;
- String[] valuesId_;
- String[] valuesEltId_;
- double[] timesStep_;
- double[][] values_;
- double[][] valuesElt_;
- ConditionLimiteEnum[] boundaryConditions;
+ EfGrid g_;
+ String[] valuesId_;
+ String[] valuesEltId_;
+ double[] timesStep_;
+ double[][] values_;
+ double[][] valuesElt_;
+ ConditionLimiteEnum[] boundaryConditions;
- public EfGridSourceMutable() {
- }
+ public EfGridSourceMutable() {
+ }
- public boolean isElement(final int _idx) {
- return false;
- }
+ public boolean isElement(final int _idx) {
+ return false;
+ }
+ Map options = new HashMap();
- /**
- * @param _timeStep
- * les nouveaux pas de temps
- */
- public void setTimeStep(final double[] _timeStep) {
- timesStep_ = _timeStep;
- }
+ @Override
+ public Map getOptions() {
+ return options;
+ }
- /**
- * @return true si maillage non null
- */
- public boolean isSet() {
- return g_ != null;
- }
+ /**
+ * @param _timeStep les nouveaux pas de temps
+ */
+ public void setTimeStep(final double[] _timeStep) {
+ timesStep_ = _timeStep;
+ }
- /**
- * Les valeurs doivent etre donnees par pas de temps. <br>
- * double[0]=valeurs sur tous les points de la variable 0 au pas de temps 0 <br>
- * double[1]=valeurs sur tous les points de la variable 0 au pas de temps 1 <br>
- * double[_ptId.length]=valeurs sur tous les points de la variable 1 au pas
- * de temps 0 <br>
- *
- * @param _ptId
- * les identifiants des variables
- * @param _values
- * les valeurs
- */
- public void setPointValue(final String[] _ptId, final double[][] _values) {
- values_ = _values;
- valuesId_ = _ptId;
- if (valuesId_ == null) {
- values_ = null;
- }
- if (values_ == null) {
- valuesId_ = null;
- }
- }
+ /**
+ * @return true si maillage non null
+ */
+ public boolean isSet() {
+ return g_ != null;
+ }
- /**
- * @see #setPointValue(String[], double[][])
- * @param _eltId
- * les identifiants des variables elementaires
- * @param _eltValues
- * les valeurs
- */
- public void setEltValue(final String[] _eltId, final double[][] _eltValues) {
- valuesElt_ = _eltValues;
- valuesEltId_ = _eltId;
- if (valuesElt_ == null) {
- valuesEltId_ = null;
- }
- if (valuesEltId_ == null) {
- valuesElt_ = null;
- }
+ /**
+ * Les valeurs doivent etre donnees par pas de temps. <br> double[0]=valeurs sur tous les points de la variable 0 au pas de temps 0 <br>
+ * double[1]=valeurs sur tous les points de la variable 0 au pas de temps 1 <br> double[_ptId.length]=valeurs sur tous les points de la variable 1
+ * au pas de temps 0 <br>
+ *
+ * @param _ptId les identifiants des variables
+ * @param _values les valeurs
+ */
+ public void setPointValue(final String[] _ptId, final double[][] _values) {
+ values_ = _values;
+ valuesId_ = _ptId;
+ if (valuesId_ == null) {
+ values_ = null;
}
-
- public boolean containsElementData() {
- return valuesEltId_ != null;
+ if (values_ == null) {
+ valuesId_ = null;
}
+ }
- public boolean containsNodeData() {
- return valuesId_ != null;
+ /**
+ * @see #setPointValue(String[], double[][])
+ * @param _eltId les identifiants des variables elementaires
+ * @param _eltValues les valeurs
+ */
+ public void setEltValue(final String[] _eltId, final double[][] _eltValues) {
+ valuesElt_ = _eltValues;
+ valuesEltId_ = _eltId;
+ if (valuesElt_ == null) {
+ valuesEltId_ = null;
}
-
- public double getEltValue(final int _valueIdx, final int _eltIdx,
- final int _timeStep) {
- if (valuesElt_ != null) {
- return valuesElt_[_timeStep * valuesElt_.length + _valueIdx][_eltIdx];
- }
- return 0;
+ if (valuesEltId_ == null) {
+ valuesElt_ = null;
}
+ }
- public String getEltValueId(final int _valueIdx) {
- return valuesEltId_ == null ? null : valuesEltId_[_valueIdx];
- }
+ public boolean containsElementData() {
+ return valuesEltId_ != null;
+ }
- public FileFormat getFileFormat() {
- return null;
- }
+ public boolean containsNodeData() {
+ return valuesId_ != null;
+ }
- public EfGridInterface getGrid() {
- return g_;
+ public double getEltValue(final int _valueIdx, final int _eltIdx,
+ final int _timeStep) {
+ if (valuesElt_ != null) {
+ return valuesElt_[_timeStep * valuesElt_.length + _valueIdx][_eltIdx];
}
+ return 0;
+ }
- public double getTimeStep(final int _i) {
- return timesStep_ == null ? 0 : timesStep_[_i];
- }
+ public String getEltValueId(final int _valueIdx) {
+ return valuesEltId_ == null ? null : valuesEltId_[_valueIdx];
+ }
- public int getTimeStepNb() {
- return timesStep_ == null ? 0 : timesStep_.length;
- }
+ public FileFormat getFileFormat() {
+ return null;
+ }
- public double getValue(final int _valueIdx, final int _timeStep,
- final int _ptIdx) {
- if (values_ != null) {
- return values_[_timeStep * values_.length + _valueIdx][_ptIdx];
- }
- return 0;
- }
+ public EfGridInterface getGrid() {
+ return g_;
+ }
- public String getValueId(final int _valueIdx) {
- return valuesId_ == null ? null : valuesId_[_valueIdx];
- }
+ public double getTimeStep(final int _i) {
+ return timesStep_ == null ? 0 : timesStep_[_i];
+ }
- public int getValueNb() {
- return valuesId_ == null ? 0 : valuesId_.length;
+ public int getTimeStepNb() {
+ return timesStep_ == null ? 0 : timesStep_.length;
+ }
+ public double getValue(final int _valueIdx, final int _timeStep,
+ final int _ptIdx) {
+ if (values_ != null) {
+ return values_[_timeStep * values_.length + _valueIdx][_ptIdx];
}
+ return 0;
+ }
- public int getEltValueNb() {
- return valuesEltId_ == null ? 0 : valuesEltId_.length;
+ public String getValueId(final int _valueIdx) {
+ return valuesId_ == null ? null : valuesId_[_valueIdx];
+ }
- }
+ public int getValueNb() {
+ return valuesId_ == null ? 0 : valuesId_.length;
- public ConditionLimiteEnum[] getBoundaryConditions() {
- return boundaryConditions;
- }
+ }
- public void setBoundaryConditions(ConditionLimiteEnum[] boundaryConditions) {
- this.boundaryConditions = boundaryConditions;
- }
+ public int getEltValueNb() {
+ return valuesEltId_ == null ? 0 : valuesEltId_.length;
+
+ }
+
+ public ConditionLimiteEnum[] getBoundaryConditions() {
+ return boundaryConditions;
+ }
+
+ public void setBoundaryConditions(ConditionLimiteEnum[] boundaryConditions) {
+ this.boundaryConditions = boundaryConditions;
+ }
}
\ No newline at end of file
Modified: trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/impl/EfGridSourcesAbstract.java
===================================================================
--- trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/impl/EfGridSourcesAbstract.java 2012-10-30 15:26:43 UTC (rev 7830)
+++ trunk/business/fudaa-ef/core/src/main/java/org/fudaa/dodico/ef/impl/EfGridSourcesAbstract.java 2012-10-30 16:14:51 UTC (rev 7831)
@@ -5,74 +5,78 @@
*/
package org.fudaa.dodico.ef.impl;
+import java.util.HashMap;
+import java.util.Map;
import org.fudaa.dodico.ef.ConditionLimiteEnum;
import org.fudaa.dodico.ef.EfGridSource;
/**
* @author deniger
- * @version $Id: EfGridSourcesAbstract.java,v 1.1 2007-01-19 13:07:20 deniger
- * Exp $
+ * @version $Id: EfGridSourcesAbstract.java,v 1.1 2007-01-19 13:07:20 deniger Exp $
*/
public abstract class EfGridSourcesAbstract implements EfGridSource {
- ConditionLimiteEnum[] boundaryConditions;
+ ConditionLimiteEnum[] boundaryConditions;
+ Map options = new HashMap();
- public ConditionLimiteEnum[] getBoundaryConditions() {
- return boundaryConditions;
- }
+ @Override
+ public Map getOptions() {
+ return options;
+ }
- public void setBoundaryConditions(ConditionLimiteEnum[] boundaryConditions) {
- this.boundaryConditions = boundaryConditions;
- }
+ public ConditionLimiteEnum[] getBoundaryConditions() {
+ return boundaryConditions;
+ }
- public boolean containsNodeData() {
- return false;
- }
+ public void setBoundaryConditions(ConditionLimiteEnum[] boundaryConditions) {
+ this.boundaryConditions = boundaryConditions;
+ }
- public boolean containsElementData() {
- return false;
- }
+ public boolean containsNodeData() {
+ return false;
+ }
- public int getTimeStepNb() {
- return 1;
- }
+ public boolean containsElementData() {
+ return false;
+ }
- public boolean isElement(final int _idx) {
- return false;
- }
+ public int getTimeStepNb() {
+ return 1;
+ }
- public double getTimeStep(final int _i) {
- return 0;
- }
+ public boolean isElement(final int _idx) {
+ return false;
+ }
- public int getValueNb() {
- return 0;
- }
+ public double getTimeStep(final int _i) {
+ return 0;
+ }
- public String getValueId(final int _valueIdx) {
- return null;
- }
+ public int getValueNb() {
+ return 0;
+ }
- public double getValue(final int _valueIdx, final int _timeStep,
- final int _ptIdx) {
- return 0;
- }
+ public String getValueId(final int _valueIdx) {
+ return null;
+ }
- /**
- * @param _id
- * l'identifiant
- * @param _s
- * la source a parcourir
- * @return l'index trouve ou -1 si rien
- */
- public final static int getValueIndex(final String _id,
- final EfGridSource _s) {
- for (int i = _s.getValueNb() - 1; i >= 0; i--) {
- if (_id.equals(_s.getValueId(i))) {
- return i;
- }
- }
- return -1;
+ public double getValue(final int _valueIdx, final int _timeStep,
+ final int _ptIdx) {
+ return 0;
+ }
+
+ /**
+ * @param _id l'identifiant
+ * @param _s la source a parcourir
+ * @return l'index trouve ou -1 si rien
+ */
+ public final static int getValueIndex(final String _id,
+ final EfGridSource _s) {
+ for (int i = _s.getValueNb() - 1; i >= 0; i--) {
+ if (_id.equals(_s.getValueId(i))) {
+ return i;
+ }
}
-
+ return -1;
+ }
}
\ No newline at end of file
Modified: trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/serafin/SerafinAdapter.java
===================================================================
--- trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/serafin/SerafinAdapter.java 2012-10-30 15:26:43 UTC (rev 7830)
+++ trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/serafin/SerafinAdapter.java 2012-10-30 16:14:51 UTC (rev 7831)
@@ -10,6 +10,7 @@
import java.io.IOException;
import com.memoire.fu.FuLog;
+import java.util.Map;
import org.fudaa.ctulu.fileformat.FileFormat;
@@ -40,6 +41,11 @@
return xYdoublePrecision;
}
+ @Override
+ public Map getOptions() {
+ return null;
+ }
+
public void setXYdoublePrecision(boolean xYdoublePrecision) {
this.xYdoublePrecision = xYdoublePrecision;
}
Modified: trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/serafin/SerafinFileFormat.java
===================================================================
--- trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/serafin/SerafinFileFormat.java 2012-10-30 15:26:43 UTC (rev 7830)
+++ trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/serafin/SerafinFileFormat.java 2012-10-30 16:14:51 UTC (rev 7831)
@@ -10,6 +10,7 @@
import java.io.File;
import com.memoire.bu.BuFileFilter;
+import java.util.Map;
import org.fudaa.ctulu.CtuluIOOperationSynthese;
import org.fudaa.ctulu.CtuluLibString;
@@ -30,10 +31,20 @@
* @version $Id: SerafinFileFormat.java,v 1.37 2007-05-04 13:47:27 deniger Exp $
*/
public final class SerafinFileFormat extends FileFormatUnique implements SerafinFileFormatVersionInterface,
- FileFormatGridVersion {
+ FileFormatGridVersion {
+ public static void setDoubleFormatOption(Map map, Boolean value) {
+ map.put("XY_DOUBLE_PRECISION", value);
+ }
+
+ public static boolean isDoubleFormatOption(Map map) {
+ if(map==null){
+ return true;
+ }
+ Boolean res = (Boolean) map.get("XY_DOUBLE_PRECISION");
+ return res == null || res;
+ }
private static final SerafinFileFormat INSTANCE = new SerafinFileFormat();
-
/**
* Nombre de param dans le tableau IParam.
*/
@@ -43,7 +54,7 @@
* @return le nom de la variable utilisee pour designer le fond
*/
public static String[] getCommonVariableFond() {
- return new String[] { "FOND", "BOTTOM", "COTE_DU_FOND", "BOTTOM_LEVEL", "altimetrie" };
+ return new String[]{"FOND", "BOTTOM", "COTE_DU_FOND", "BOTTOM_LEVEL", "altimetrie"};
}
public static boolean is3DGrid(final EfGridInterface _grid) {
@@ -51,7 +62,9 @@
}
public static int getNbPlanIn3D(final int[] _iparams) {
- if (_iparams != null && _iparams.length == IPARAM_NB) { return _iparams[6]; }
+ if (_iparams != null && _iparams.length == IPARAM_NB) {
+ return _iparams[6];
+ }
return 1;
}
@@ -89,14 +102,16 @@
* @see DicoLanguage#getCurrentID()
*/
public static String getVariableFond(final int _dicoLanguageIdx) {
- if (_dicoLanguageIdx == DicoLanguage.ENGLISH_ID) { return getEnVariableFond(); }
+ if (_dicoLanguageIdx == DicoLanguage.ENGLISH_ID) {
+ return getEnVariableFond();
+ }
return getFrVariableFond();
}
/**
- * Renvoie true si les donnees, pour chaque pas de temps, sont formattees en colonnees ( forme non compacte ou
- * "unpackad form"). Teste en fait si IPARAM[1]==1.
- *
+ * Renvoie true si les donnees, pour chaque pas de temps, sont formattees en colonnees ( forme non compacte ou "unpackad form"). Teste en fait si
+ * IPARAM[1]==1.
+ *
* @param _s le tableau iparam utilise pour savoir si colonne ou non.
* @return FormatEnColonne
*/
@@ -105,24 +120,26 @@
}
/**
- * A partir de <code>_s</code>, determine si la date (Idate) du projet est presente dans le fichier. Si la valeur du
- * 10 element vaut 1, la date est definie.
- *
+ * A partir de
+ * <code>_s</code>, determine si la date (Idate) du projet est presente dans le fichier. Si la valeur du 10 element vaut 1, la date est definie.
+ *
* @param _s talbeau iparam a tester
* @return true si Idate definie dans le projet.
*/
public static boolean isIdateDefiniCommon(final int[] _s) {
- if (_s[9] == 1) { return true; }
+ if (_s[9] == 1) {
+ return true;
+ }
return false;
}
protected SerafinFileFormat() {
super(1);
- extensions_ = new String[] { "ser", "res", "geo", "sel", "res2d", "res3d","resu" };
+ extensions_ = new String[]{"ser", "res", "geo", "sel", "res2d", "res3d", "resu"};
id_ = "SERAFIN";
nom_ = "Serafin";
description_ = EfIOResource
- .getS("Fichier binaire comportant le mod\xE8le num\xE9rique de terrain et des propri\xE9t\xE9s nodales");
+ .getS("Fichier binaire comportant le mod\xE8le num\xE9rique de terrain et des propri\xE9t\xE9s nodales");
software_ = FileFormatSoftware.TELEMAC_IS;
}
@@ -170,7 +187,7 @@
/**
* Lit le dernier pas de temps uniquement.
- *
+ *
* @param _file le fichier a lire
* @param _prog la progression
* @return synthese de l'operation
@@ -213,9 +230,9 @@
}
/**
- * Renvoie true si les donnees, pour chaque pas de temps, sont formattees en colonnees ( forme non compacte ou
- * "unpackad form"). Teste en fait si IPARAM[1]==1.
- *
+ * Renvoie true si les donnees, pour chaque pas de temps, sont formattees en colonnees ( forme non compacte ou "unpackad form"). Teste en fait si
+ * IPARAM[1]==1.
+ *
* @param _s le tableau iparam utilise pour savoir si colonne ou non.
* @return FormatEnColonne
*/
@@ -225,15 +242,17 @@
}
/**
- * A partir de <code>_s</code>, determine si la date (Idate) du projet est presente dans le fichier. Si la valeur du
- * 10 element vaut 1, la date est definie.
- *
+ * A partir de
+ * <code>_s</code>, determine si la date (Idate) du projet est presente dans le fichier. Si la valeur du 10 element vaut 1, la date est definie.
+ *
* @param _s talbeau iparam a tester
* @return true si Idate definie dans le projet.
*/
@Override
public boolean isIdateDefini(final int[] _s) {
- if (_s[9] == 1) { return true; }
+ if (_s[9] == 1) {
+ return true;
+ }
return false;
}
@@ -244,7 +263,9 @@
final CtuluIOOperationSynthese r = i.read(_f, _prog);
i.setProgressReceiver(null);
final SerafinAdapter adapter = (SerafinAdapter) r.getSource();
- if (adapter == null) { return r; }
+ if (adapter == null) {
+ return r;
+ }
adapter.majGridFond();
return r;
@@ -318,7 +339,7 @@
/**
* Ecrit dans le format binaire adapte au systeme OS.
- *
+ *
* @param _f le fichier a ecrire.
* @param _source la source pour ecrire
* @param _prog la barre de progression
@@ -326,7 +347,7 @@
*/
@Override
public CtuluIOOperationSynthese writeSparc(final File _f, final SerafinInterface _source,
- final ProgressionInterface _prog) {
+ final ProgressionInterface _prog) {
final SerafinWriter w = new SerafinWriter(this);
w.setMachineSPARC();
w.setFile(_f);
@@ -335,21 +356,18 @@
}
@Override
- public boolean canReadGrid()
- {
- return true;
- }
-
+ public boolean canReadGrid() {
+ return true;
+ }
+
@Override
- public boolean canWriteGrid()
- {
- return true;
- }
-
+ public boolean canWriteGrid() {
+ return true;
+ }
+
@Override
- public boolean hasBoundaryConditons()
- {
- // TODO Voir si correct
- return false;
- }
+ public boolean hasBoundaryConditons() {
+ // TODO Voir si correct
+ return false;
+ }
}
\ No newline at end of file
Modified: trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/serafin/SerafinGridSourceAdapter.java
===================================================================
--- trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/serafin/SerafinGridSourceAdapter.java 2012-10-30 15:26:43 UTC (rev 7830)
+++ trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/serafin/SerafinGridSourceAdapter.java 2012-10-30 16:14:51 UTC (rev 7831)
@@ -8,6 +8,7 @@
package org.fudaa.dodico.ef.io.serafin;
import java.io.IOException;
+import java.util.Map;
import org.fudaa.ctulu.fileformat.FileFormat;
import org.fudaa.dodico.ef.ConditionLimiteEnum;
@@ -47,6 +48,11 @@
setFormatColonne(true);
}
+ @Override
+ public Map getOptions() {
+ return source_.getOptions();
+ }
+
/**
* @param _b true si format colonne demande
*/
@@ -164,7 +170,7 @@
@Override
public boolean isXYdoublePrecision() {
- return true;
+ return SerafinFileFormat.isDoubleFormatOption(source_.getOptions());
}
@Override
@@ -244,4 +250,4 @@
// {
// this.boundaryConditions = boundaryConditions;
// }
-}
\ No newline at end of file
+}
Modified: trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/serafin/SerafinMaillageBuilderAdapterAbstract.java
===================================================================
--- trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/serafin/SerafinMaillageBuilderAdapterAbstract.java 2012-10-30 15:26:43 UTC (rev 7830)
+++ trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/serafin/SerafinMaillageBuilderAdapterAbstract.java 2012-10-30 16:14:51 UTC (rev 7831)
@@ -7,6 +7,7 @@
*/
package org.fudaa.dodico.ef.io.serafin;
+import java.util.Map;
import org.fudaa.ctulu.fileformat.FileFormat;
import org.fudaa.dodico.ef.EfGridInterface;
import org.fudaa.dodico.ef.io.EfIOResource;
@@ -16,19 +17,18 @@
* @version $Id: SerafinMaillageBuilderAdapterAbstract.java,v 1.12 2007-05-04 13:47:27 deniger Exp $
*/
public abstract class SerafinMaillageBuilderAdapterAbstract implements SerafinInterface {
+
long date_;
int[] iparam_;
-
EfGridInterface maill_;
String titre_;
-
String[] units_;
SerafinFileFormatVersionInterface version_;
protected String[] valuesName_;
/**
* Par defaut le format colonne est choisi.
- *
+ *
* @param _ft la verison
* @param _m le maillage support
*/
@@ -41,6 +41,11 @@
}
@Override
+ public Map getOptions() {
+ return null;
+ }
+
+ @Override
public boolean containsElementData() {
return isVolumique();
}
@@ -81,7 +86,9 @@
public int[] getIpoboInitial() {
if (maill_.getFrontiers() == null) {
maill_.computeBord(null, null);
- if (maill_.getFrontiers() == null) { return null; }
+ if (maill_.getFrontiers() == null) {
+ return null;
+ }
}
return maill_.getFrontiers().getIpobo(maill_.getPtsNb());
}
@@ -90,7 +97,9 @@
public int[] getIpoboFr() {
if (maill_.getFrontiers() == null) {
maill_.computeBord(null, null);
- if (maill_.getFrontiers() == null) { return null; }
+ if (maill_.getFrontiers() == null) {
+ return null;
+ }
}
return maill_.getFrontiers().getArray();
}
@@ -133,7 +142,6 @@
// public final void setDateCourante() {
// setDate(System.currentTimeMillis());
// }
-
/**
* @param _b true si format colonne demande
*/
@@ -171,5 +179,4 @@
public void setIparam(final int[] _iparam) {
iparam_ = _iparam;
}
-
}
\ No newline at end of file
Modified: trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/serafin/SerafinWriter.java
===================================================================
--- trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/serafin/SerafinWriter.java 2012-10-30 15:26:43 UTC (rev 7830)
+++ trunk/business/fudaa-ef/io/src/main/java/org/fudaa/dodico/ef/io/serafin/SerafinWriter.java 2012-10-30 16:14:51 UTC (rev 7831)
@@ -245,16 +245,12 @@
return;
}
boolean xydoublePrecision = _donnees.isXYdoublePrecision();
- if (!xydoublePrecision) {
- String titre = _donnees.getTitre();
- if (titre.length() == 80 && titre.charAt(79) == 'D') {
- xydoublePrecision = true;
- }
- }
String titre = _donnees.getTitre();
if (xydoublePrecision) {
titre = CtuluLibString.adjustSize(79, titre) + "D";
-
+ //si ce n'est pas un double pr\xE9cision mais se termine par D on l'enleve
+ } else if (titre.length() == 80 && titre.charAt(79) == 'D') {
+ titre = titre.substring(0, 79).trim();
}
final int[] iparam = _donnees.getIparam();
final boolean isIdateDefini = version_.isIdateDefini(iparam);
Modified: trunk/business/fudaa-ef/io/src/test/java/org/fudaa/dodico/ef/io/serafin/TestSerafinReaderWriter.java
===================================================================
--- trunk/business/fudaa-ef/io/src/test/java/org/fudaa/dodico/ef/io/serafin/TestSerafinReaderWriter.java 2012-10-30 15:26:43 UTC (rev 7830)
+++ trunk/business/fudaa-ef/io/src/test/java/org/fudaa/dodico/ef/io/serafin/TestSerafinReaderWriter.java 2012-10-30 16:14:51 UTC (rev 7831)
@@ -84,6 +84,30 @@
testGrid(transformedRes.getGrid());
}
+ public void testWriteSerafinDNotDoubleTitle() throws IOException {
+ File target = createTempFile(".res");
+ File serafinD = CtuluLibFile.getFileFromJar("/org/fudaa/dodico/ef/io/serafin/seraphinD.res", target);
+ SerafinNewReader reader = new SerafinNewReader();
+ reader.setFile(serafinD);
+ CtuluIOOperationSynthese initialIO = reader.read();
+ assertFalse(initialIO.getAnalyze().containsErrorOrFatalError());
+ SerafinAdapter initialRes = (SerafinAdapter) initialIO.getSource();
+ //point important
+ initialRes.setXYdoublePrecision(false);
+ SerafinWriter writer = new SerafinWriter(SerafinFileFormat.getInstance());
+ File writtenFile = createTempFile(".res");
+ writer.setFile(writtenFile);
+ writer.write(initialRes);
+ reader.setFile(writtenFile);
+ CtuluIOOperationSynthese transformedIO = reader.read();
+ assertFalse(transformedIO.getAnalyze().containsErrorOrFatalError());
+ SerafinAdapter transformedRes = (SerafinAdapter) transformedIO.getSource();
+ assertFalse(transformedRes.isXYdoublePrecision());
+ System.err.println(transformedRes.getTitre());
+ assertEquals("TELEMAC 2D : GOUTTE D'EAU DANS UN BASSIN$ SERAFIN", transformedRes.getTitre());
+ testGrid(transformedRes.getGrid());
+ }
+
public void testReadQuadri() {
SerafinNewReader reader = new SerafinNewReader();
reader.setFile(fic_);
Added: trunk/business/fudaa-ef/nbactions.xml
===================================================================
--- trunk/business/fudaa-ef/nbactions.xml (rev 0)
+++ trunk/business/fudaa-ef/nbactions.xml 2012-10-30 16:14:51 UTC (rev 7831)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<actions>
+ <action>
+ <actionName>CUSTOM-deploy</actionName>
+ <displayName>deploy</displayName>
+ <goals>
+ <goal>deploy</goal>
+ </goals>
+ </action>
+ </actions>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|