|
From: <de...@us...> - 2009-06-03 06:45:52
|
Revision: 4832
http://fudaa.svn.sourceforge.net/fudaa/?rev=4832&view=rev
Author: deniger
Date: 2009-06-03 06:45:44 +0000 (Wed, 03 Jun 2009)
Log Message:
-----------
Modified Paths:
--------------
trunk/soft/fudaa-crue/dodico/src/main/config/eclipse-crue-catalog.xml
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/io/neuf/AbstractCrue9Writer.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/metier/EMHInfosVersion.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/metier/EMHScenario.java
trunk/soft/fudaa-crue/dodico/src/main/resources/xsd/scenario-1.0.0.xsd
trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/io/TestCrueETUFile.java
trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/io/TestCrueValidationModele.java
trunk/soft/fudaa-crue/fudaa/src/main/java/org/fudaa/fudaa/crue/projet/ScenarioLoader.java
Added Paths:
-----------
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/io/common/CrueFileOpWriterCharSimpleAbstract.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/ScenarioWriter.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/TempValidationFichierScenario.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/ValidateConnectionModele.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/ValidateModeleScenario.java
trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/validation/
trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/validation/TestValidateModeleScenario.java
trunk/soft/fudaa-crue/dodico/src/test/resources/fichierTest/Modele3.scenario.xml
Removed Paths:
-------------
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/EMHValidatorModele.java
trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/ValidationFichierScenario.java
trunk/soft/fudaa-crue/dodico/src/test/resources/fichierTest/Modele3.run.xml.tmp
Modified: trunk/soft/fudaa-crue/dodico/src/main/config/eclipse-crue-catalog.xml
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/main/config/eclipse-crue-catalog.xml 2009-06-02 17:50:17 UTC (rev 4831)
+++ trunk/soft/fudaa-crue/dodico/src/main/config/eclipse-crue-catalog.xml 2009-06-03 06:45:44 UTC (rev 4832)
@@ -48,6 +48,9 @@
<uri name="http://www.fudaa.fr/xsd/crue/pnum-1.0.0.xsd"
uri="platform:/resource/dodico-crue/src/main/resources/xsd/pnum-1.0.0.xsd" />
+
+ <uri name="http://www.fudaa.fr/xsd/crue/scenario-1.0.0.xsd"
+ uri="platform:/resource/dodico-crue/src/main/resources/xsd/scenario-1.0.0.xsd" />
Added: trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/io/common/CrueFileOpWriterCharSimpleAbstract.java
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/io/common/CrueFileOpWriterCharSimpleAbstract.java (rev 0)
+++ trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/io/common/CrueFileOpWriterCharSimpleAbstract.java 2009-06-03 06:45:44 UTC (rev 4832)
@@ -0,0 +1,27 @@
+/**
+ * Licence GPL
+ * Copyright Genesis
+ */
+package org.fudaa.dodico.crue.io.common;
+
+import java.io.File;
+
+import org.fudaa.dodico.fortran.FileOpWriterCharSimpleAbstract;
+
+/**
+ * Classe permettant de setter correctement le ResourceBundle.
+ *
+ * @author deniger
+ */
+public abstract class CrueFileOpWriterCharSimpleAbstract extends FileOpWriterCharSimpleAbstract {
+
+ /**
+ * appelle la methode parent et set le RESOURCE_BUNDLE correctement
+ */
+ @Override
+ public void setFile(final File _f) {
+ super.setFile(_f);
+ analyze_.setDefaultResourceBundle(Messages.RESOURCE_BUNDLE);
+ }
+
+}
Modified: trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/io/neuf/AbstractCrue9Writer.java
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/io/neuf/AbstractCrue9Writer.java 2009-06-02 17:50:17 UTC (rev 4831)
+++ trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/io/neuf/AbstractCrue9Writer.java 2009-06-03 06:45:44 UTC (rev 4832)
@@ -7,6 +7,7 @@
import java.util.Date;
import org.fudaa.ctulu.CtuluAnalyze;
+import org.fudaa.dodico.crue.io.common.Messages;
import org.fudaa.dodico.crue.metier.CrueData;
import org.fudaa.dodico.fortran.FileOpWriterCharSimpleAbstract;
import org.fudaa.dodico.fortran.FortranWriter;
@@ -86,18 +87,13 @@
public void setFile(final File _f) {
analyze_ = new CtuluAnalyze();
analyze_.setResource(_f.getAbsolutePath());
- FileWriter out = null;
+ analyze_.setDefaultResourceBundle(Messages.RESOURCE_BUNDLE);
try {
- out = new FileWriter(_f);
- // Message de Adrien: Fred, j'ai besoin de cet objet fortanWriter
- // car l'objet par defaut est moisi pour les formattages et ecritures par colonnes.
- fortranWriter_ = new FortranWriter(new FileWriter(_f));
+ out_ = new FileWriter(_f);
} catch (final IOException _e) {
analyze_.manageException(_e);
}
- if (out != null) {
- out_ = out;
- }
+ fortranWriter_ = new FortranWriter(out_);
}
}
Modified: trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/metier/EMHInfosVersion.java
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/metier/EMHInfosVersion.java 2009-06-02 17:50:17 UTC (rev 4831)
+++ trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/metier/EMHInfosVersion.java 2009-06-03 06:45:44 UTC (rev 4832)
@@ -1,7 +1,7 @@
package org.fudaa.dodico.crue.metier;
/**
- * Informations sur la verszion du modele, fichier,scenqrio, sous modele, run,.... Crue
+ * Informations sur la version du modele, fichier,scenario, sous modele, run,.... Crue
*
* @author Adrien Hadoux
*/
Modified: trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/metier/EMHScenario.java
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/metier/EMHScenario.java 2009-06-02 17:50:17 UTC (rev 4831)
+++ trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/metier/EMHScenario.java 2009-06-03 06:45:44 UTC (rev 4832)
@@ -10,39 +10,37 @@
*/
public class EMHScenario {
- String id_;
+ private final String id_;
/**
* la classe qui gere la liste des modeles du scenario.
*/
- EMHModeleEnchainement gestionModele_;
+ private EMHModeleEnchainement gestionModele_;
/**
* Les donnees crueData du scenario .
*/
- CrueData dataSources;
+ private CrueData dataSources;
/**
* la liste des runs associes au sc�nraio.
*/
- List<EMHRun> listeRuns_;
+ private List<EMHRun> listeRuns_;
/**
* Run courant.
*/
- EMHRun runCourant_;
+ private EMHRun runCourant_;
/**
* Infos sur la version.
*/
- protected EMHInfosVersion infosVersions_;
+ private EMHInfosVersion infosVersions_;
/**
* Liste des fichiers rattach�s au scenario . Ces fichiers proviennent de la classe EMHProjetInfos qui contient la
* base des fichiers du projet. Ces fichiers sont uniquement des fichiers r�sultat ?
- *
- * @param id
*/
- protected List<FichierCrue> listeFichiersScenario_;
+ private List<FichierCrue> listeFichiersScenario_;
public List<FichierCrue> getListeFichiersScenario() {
return listeFichiersScenario_;
Deleted: trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/EMHValidatorModele.java
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/EMHValidatorModele.java 2009-06-02 17:50:17 UTC (rev 4831)
+++ trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/EMHValidatorModele.java 2009-06-03 06:45:44 UTC (rev 4832)
@@ -1,267 +0,0 @@
-package org.fudaa.dodico.crue.validation;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.fudaa.ctulu.CtuluAnalyze;
-import org.fudaa.dodico.crue.metier.CrueData;
-import org.fudaa.dodico.crue.metier.emh.CatEMHBranche;
-import org.fudaa.dodico.crue.metier.emh.CatEMHNoeud;
-
-//TODO pourquoi faire des mehodes statique tout le temps !
-//la validation porte sur un CrueData et renvoie un CtuluAnalyse.
-/**
- * Algorithmes de validations du modele.
- *
- * @author Adrien Hadoux
- */
-public class EMHValidatorModele {
-
- /**
- * Methode qui teste la connexité du modele et retourne true ou false,
- *
- * @param data
- * @param analyzer analyzer
- * @return
- */
- public static boolean validateConnexite(final CrueData data, final CtuluAnalyze analyzer) {
- boolean validate = false;
-
- // -- premeire verification: tous les noeuds sont affectées --//
- validate = IsNoeudsTousAffectes(data, analyzer);
-
- if (validate) {
-
- // -- on verifie que toutes les branches ont un noeud --//.
- validate = IsBranchesConnexes(data, analyzer);
- }
-
- return validate;
- }
-
- /**
- * Verifie que toutes les branches soient affectees.
- *
- * @param data
- * @param analyzer
- * @return true si le graphe est connexe.
- */
- public static boolean IsBranchesConnexes(final CrueData data, final CtuluAnalyze analyzer) {
-
- final List<CatEMHNoeud> lstNoeudsATester = new ArrayList<CatEMHNoeud>(1);
-
- final List<CatEMHBranche> lstBranchesRestantes = remplirBranchesRestantesActives(data.getBranches());
-
- // 1) Choisir un nœud de départ connecté à au moins une branche active. Il est stocké dans lstNoeudsATester.
- final CatEMHNoeud findNoeudDep = findNoeudDepart(data);
-
- if (findNoeudDep == null) { return false; }
- lstNoeudsATester.add(findNoeudDep);
-
- // 2) Tant qu’il existe au moins un élément dans lstNoeudsATester :
- while (lstNoeudsATester.size() > 0) {
- // 2.1) Dépiler un élément de lstNoeudsATester (le supprimer de la liste) et le stocker dans NoeudCourant.
- final CatEMHNoeud noeudCourant = lstNoeudsATester.remove(0);
-
- // 2.2) Tant qu’il existe une branche connectée à NoeudCourant et qui figure dans lstBranchesRestantes :
- final List<CatEMHBranche> lstBranchesContenantNoeud = findAllBranchesConnectedToNode(lstBranchesRestantes,
- noeudCourant);
-
- while (lstBranchesContenantNoeud.size() > 0) {
- // 2.2.1) Récupérer une telle branche et la stocker dans BrancheCourante.
- final CatEMHBranche brancheCourante = lstBranchesContenantNoeud.remove(0);
-
- // 2.2.2) Récupérer le nœud situé à l’autre extrémité de BrancheCourante (par rapport à NoeudCourant) et le
- // stocker
- // dans lstNoeudsATester (s’il n’y figure pas déjà).
- CatEMHNoeud nouveauNoeud = brancheCourante.getNoeudAmont();
- if (nouveauNoeud != noeudCourant) {
- lstNoeudsATester.add(nouveauNoeud);
- } else {
- nouveauNoeud = brancheCourante.getNoeudAval();
- lstNoeudsATester.add(nouveauNoeud);
- }
-
- // 2.2.3) Supprimer BrancheCourante de lstBranchesRestantes.
- lstBranchesRestantes.remove(brancheCourante);
-
- }
-
- }
-
- if (lstBranchesRestantes.size() > 0) {
- analyzer.addError("error.validationModele.branchesNonAffectes",
- createMapBranchesNonAffectes(lstBranchesRestantes));
- return false;
- }
-
- return true;
- }
-
- /**
- * Cree la liste de branches Active a partir de la liste de branches totales.
- *
- * @param lstBranchesTotales
- * @return
- */
- public static List<CatEMHBranche> remplirBranchesRestantesActives(final List<CatEMHBranche> lstBranchesTotales) {
- final List<CatEMHBranche> listeBranches = new ArrayList<CatEMHBranche>();
-
- for (final CatEMHBranche branche : lstBranchesTotales) {
- if (branche.isActive()) {
- listeBranches.add(branche);
- }
- }
- return listeBranches;
-
- }
-
- /**
- * Retrouve toutes les branches connectees au noeud.
- *
- * @param lstBranchesRestantes
- * @param noeud
- * @return
- */
- public static List<CatEMHBranche> findAllBranchesConnectedToNode(final List<CatEMHBranche> lstBranchesRestantes,
- final CatEMHNoeud noeud) {
- final List<CatEMHBranche> listeConnected = new ArrayList<CatEMHBranche>();
-
- for (final CatEMHBranche branche : lstBranchesRestantes) {
- if (branche.isActive()) {
- final CatEMHNoeud noeudAmont = branche.getNoeudAmont();
- if (noeudAmont == noeud) {
-
- listeConnected.add(branche);
-
- } else {
- final CatEMHNoeud noeudAval = branche.getNoeudAval();
- if (noeudAval == noeud) {
-
- listeConnected.add(branche);
-
- }
- }
- }
- }
-
- return listeConnected;
- }
-
- /**
- * Methode qui recherche dans la liste des branches le premier noeud d'une branche active.
- *
- * @param data
- * @return
- */
- public static CatEMHNoeud findNoeudDepart(final CrueData data) {
-
- for (int i = 0; i < data.getBranches().size(); i++) {
- if (data.getBranches().get(i).isActive()) {
-
- CatEMHNoeud findNoeudDep = data.getBranches().get(i).getNoeudAmont();
- if (findNoeudDep != null) { return findNoeudDep; }
- findNoeudDep = data.getBranches().get(i).getNoeudAval();
- if (findNoeudDep != null) { return findNoeudDep; }
-
- }
-
- }
- return null;
- }
-
- /**
- * Verifie que tous les noeuds soient affectés a au moins une branche.
- *
- * @param data
- * @param analyzer
- * @return
- */
- public static boolean IsNoeudsTousAffectes(final CrueData data, final CtuluAnalyze analyzer) {
-
- final List<CatEMHNoeud> listeNoeudsNonAffectes = new ArrayList<CatEMHNoeud>(data.getNoeuds().size());
-
- // pourri collections...
- // Collections.copy(listeNoeudsNonAffectes, data.getNoeuds());
-
- for (final CatEMHNoeud node : data.getNoeuds()) {
- listeNoeudsNonAffectes.add(node);
- }
-
- for (final CatEMHBranche branche : data.getBranches()) {
- if (branche.isActive()) {
- final CatEMHNoeud noeudAmont = branche.getNoeudAmont();
- if (noeudAmont != null) {
-
- listeNoeudsNonAffectes.remove(noeudAmont);
-
- } else {
- final HashMap<String, Object> map = new HashMap<String, Object>();
- map.put("branche", branche.getNom());
- analyzer.addError("error.validationModele.noeudAmontManquant", map);
- return false;
- }
- final CatEMHNoeud noeudAval = branche.getNoeudAval();
- if (noeudAval != null) {
-
- listeNoeudsNonAffectes.remove(noeudAval);
-
- } else {
- final HashMap<String, Object> map = new HashMap<String, Object>();
- map.put("branche", branche.getNom());
- analyzer.addError("error.validationModele.noeudAvalManquant", map);
- return false;
- }
- }
- }
- if (listeNoeudsNonAffectes.size() != 0) {
- analyzer.addError("error.validationModele.noeudNonAffectes", createMapNoeudsNonAffectes(listeNoeudsNonAffectes));
- }
-
- return listeNoeudsNonAffectes.size() == 0;
- }
-
- /**
- * Creer la map avec la liste des noeuds non affectes.
- *
- * @param listeNoeudsNonAffectes
- * @return
- */
- public static Map<String, Object> createMapNoeudsNonAffectes(final List<CatEMHNoeud> listeNoeudsNonAffectes) {
- final String key = "noeuds";
-
- String liste = "";
-
- for (final CatEMHNoeud noeud : listeNoeudsNonAffectes) {
- liste += " " + noeud.getNom();
- }
-
- final HashMap<String, Object> map = new HashMap<String, Object>();
- map.put(key, liste);
- return map;
-
- }
-
- /**
- * Creer la map avec la liste des branches non affectes.
- *
- * @param listeBranchesNonAffectes
- * @return
- */
- public static Map<String, Object> createMapBranchesNonAffectes(final List<CatEMHBranche> listeBranchesNonAffectes) {
- final String key = "branches";
-
- String liste = "";
-
- for (final CatEMHBranche branche : listeBranchesNonAffectes) {
- liste += " " + branche.getNom();
- }
-
- final HashMap<String, Object> map = new HashMap<String, Object>();
- map.put(key, liste);
- return map;
-
- }
-}
Added: trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/ScenarioWriter.java
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/ScenarioWriter.java (rev 0)
+++ trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/ScenarioWriter.java 2009-06-03 06:45:44 UTC (rev 4832)
@@ -0,0 +1,48 @@
+/**
+ * Licence GPL
+ * Copyright Genesis
+ */
+package org.fudaa.dodico.crue.validation;
+
+import java.io.IOException;
+
+import com.memoire.fu.FuLogCrue;
+
+import org.fudaa.dodico.crue.io.common.CrueFileOpWriterCharSimpleAbstract;
+import org.fudaa.dodico.crue.metier.EMHScenario;
+
+/**
+ * @author deniger
+ */
+public class ScenarioWriter extends CrueFileOpWriterCharSimpleAbstract {
+
+ protected static class InputFormatWriter {
+ protected String version;
+ protected EMHScenario scenario;
+ }
+
+ @Override
+ protected void internalWrite(Object _o) {
+ if (_o instanceof InputFormatWriter) {
+ try {
+ writeInput((InputFormatWriter) _o);
+ } catch (IOException e) {
+ FuLogCrue.error(e);
+ analyze_.manageException(e);
+ }
+
+ }
+
+ }
+
+ private void writeInput(InputFormatWriter in) throws IOException {
+ // TODO a continuer
+ // il faut parcourir tous les fichiers du scenario
+ // puis le modele
+ // puis le sousmodele
+ // pour écrire l'entete il faut bien prendre en compte la version le 1.0.0 dans le fichier d'exemple
+ super.out_.append("<?xml....");
+
+ }
+
+}
Copied: trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/TempValidationFichierScenario.java (from rev 4828, trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/ValidationFichierScenario.java)
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/TempValidationFichierScenario.java (rev 0)
+++ trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/TempValidationFichierScenario.java 2009-06-03 06:45:44 UTC (rev 4832)
@@ -0,0 +1,133 @@
+/**
+ * Licence GPL
+ * Copyright Genesis
+ */
+package org.fudaa.dodico.crue.validation;
+
+import java.net.URL;
+
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+import javax.xml.validation.Schema;
+import javax.xml.validation.SchemaFactory;
+
+import com.memoire.fu.FuLog;
+
+import org.fudaa.dodico.crue.io.AbstractIOTestCase;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ * Cette classe est un exemple à modifier: il faudra simplement reprendre la logique de validation.
+ *
+ * @author deniger
+ */
+@SuppressWarnings("PMD.SystemPrintln")
+public class TempValidationFichierScenario {
+
+ static final String JAXP_SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
+ public static final String W3C_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema";
+ static final String JAXP_SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource";
+
+ public static void main(String[] args) {
+ // final ErrorHandlerDefault handler = new ErrorHandlerDefault(res);
+ try {
+
+ final URL xsdURL = AbstractIOTestCase.class.getResource("/xsd/all-etude-1.0.xsd");
+ // final URL xsddfrtURL = AbstractIOTestCase.class.getResource("/xsd/dfrt-1.0.xsd");
+ final URL xml = AbstractIOTestCase.class.getResource("/fichierTest/Modele3.drso.xml");
+ final SchemaFactory schemaFactory = SchemaFactory.newInstance(W3C_XML_SCHEMA);
+ // schemaFactory.setResourceResolver(resourceResolver)
+ final Schema schema = schemaFactory.newSchema(xsdURL);
+ // //
+ //
+ // // parser.setSchema(schema);
+ DefaultHandler handler = new DefaultHandler() {
+
+ @Override
+ public void processingInstruction(String target, String data) throws SAXException {
+ // FIXME Auto-generated method stub
+ super.processingInstruction(target, data);
+ }
+
+ // @Override
+ // public void setDocumentLocator(Locator locator) {
+ // // FIXME Auto-generated method stub
+ // super.setDocumentLocator(locator);
+ // }
+
+ @Override
+ public void startPrefixMapping(String prefix, String uri) throws SAXException {
+ // FIXME Auto-generated method stub
+ super.startPrefixMapping(prefix, uri);
+ }
+
+ @Override
+ public void error(SAXParseException e) throws SAXException {
+ String msg = e.getMessage();
+ if (msg.contains("no grammar found") || msg.contains("must match DOCTYPE root")) { return; }
+ System.err.println("erreur dans le fichier " + e.getSystemId() + " a la ligne " + e.getLineNumber() + " = "
+ + e.getLocalizedMessage() + "/" + e.getMessage());
+ // e.printStackTrace();
+ }
+
+ @Override
+ public void fatalError(SAXParseException e) throws SAXException {
+ error(e);
+ }
+
+ @Override
+ public void warning(SAXParseException e) throws SAXException {
+ // e.printStackTrace();
+ }
+ };
+ // final Validator validator = schema.newValidator();
+ // // validator.s
+ // // SAXSource source = new SAXSource(new InputSource(xml.toString()));
+ // // validator.validate(source);
+ SAXParserFactory parser = SAXParserFactory.newInstance();
+ // parser.setSchema(schema);
+ parser.setNamespaceAware(true);
+ parser.setXIncludeAware(true);
+ parser.setValidating(true);
+ SAXParser newSAXParser = parser.newSAXParser();
+ newSAXParser.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
+ newSAXParser.setProperty(JAXP_SCHEMA_SOURCE, new InputSource(xsdURL.toString()));
+ newSAXParser.parse(new InputSource(xml.toString()), handler);
+ // parser.newSAXParser().p
+ // DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
+ // documentBuilderFactory.setNamespaceAware(true);
+ // documentBuilderFactory.setXIncludeAware(true);
+ // documentBuilderFactory.setValidating(true);
+ // documentBuilderFactory.setSchema(schema);
+ // DocumentBuilder parser = documentBuilderFactory.newDocumentBuilder();
+ // parser.setErrorHandler(handler);
+ // Document document = parser.parse(xml.toURI().toString());
+ // //
+ // // // create a SchemaFactory capable of understanding WXS schemas
+ // // SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
+ // //
+ // // // load a WXS schema, represented by a Schema instance
+ // // Source schemaFile = new StreamSource(new File("mySchema.xsd"));
+ // // Schema schema = factory.newSchema(schemaFile);
+ // //
+ // // create a Validator instance, which can be used to validate an instance document
+ // Validator validator = schema.newValidator();
+ // validator.setErrorHandler(handler);
+ //
+ // // // validate the DOM tree
+ // // try {
+ // // SAXSource source = new SAXSource(new InputSource(xml.toString()));
+ // validator.validate(new DOMSource(document));
+ // validator.validate(source);
+
+ } catch (final Exception e) {
+ // e.printStackTrace();
+ FuLog.error(e);
+ }
+
+ }
+
+}
Copied: trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/ValidateConnectionModele.java (from rev 4817, trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/EMHValidatorModele.java)
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/ValidateConnectionModele.java (rev 0)
+++ trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/ValidateConnectionModele.java 2009-06-03 06:45:44 UTC (rev 4832)
@@ -0,0 +1,267 @@
+package org.fudaa.dodico.crue.validation;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.fudaa.ctulu.CtuluAnalyze;
+import org.fudaa.dodico.crue.metier.CrueData;
+import org.fudaa.dodico.crue.metier.emh.CatEMHBranche;
+import org.fudaa.dodico.crue.metier.emh.CatEMHNoeud;
+
+//TODO pourquoi faire des mehodes statique tout le temps !
+//la validation porte sur un CrueData et renvoie un CtuluAnalyse.
+/**
+ * Algorithmes de validations du modele.
+ *
+ * @author Adrien Hadoux
+ */
+public class ValidateConnectionModele {
+
+ /**
+ * Methode qui teste la connexité du modele et retourne true ou false,
+ *
+ * @param data
+ * @param analyzer analyzer
+ * @return
+ */
+ public static boolean validateConnexite(final CrueData data, final CtuluAnalyze analyzer) {
+ boolean validate = false;
+
+ // -- premeire verification: tous les noeuds sont affectées --//
+ validate = IsNoeudsTousAffectes(data, analyzer);
+
+ if (validate) {
+
+ // -- on verifie que toutes les branches ont un noeud --//.
+ validate = IsBranchesConnexes(data, analyzer);
+ }
+
+ return validate;
+ }
+
+ /**
+ * Verifie que toutes les branches soient affectees.
+ *
+ * @param data
+ * @param analyzer
+ * @return true si le graphe est connexe.
+ */
+ public static boolean IsBranchesConnexes(final CrueData data, final CtuluAnalyze analyzer) {
+
+ final List<CatEMHNoeud> lstNoeudsATester = new ArrayList<CatEMHNoeud>(1);
+
+ final List<CatEMHBranche> lstBranchesRestantes = remplirBranchesRestantesActives(data.getBranches());
+
+ // 1) Choisir un nœud de départ connecté à au moins une branche active. Il est stocké dans lstNoeudsATester.
+ final CatEMHNoeud findNoeudDep = findNoeudDepart(data);
+
+ if (findNoeudDep == null) { return false; }
+ lstNoeudsATester.add(findNoeudDep);
+
+ // 2) Tant qu’il existe au moins un élément dans lstNoeudsATester :
+ while (lstNoeudsATester.size() > 0) {
+ // 2.1) Dépiler un élément de lstNoeudsATester (le supprimer de la liste) et le stocker dans NoeudCourant.
+ final CatEMHNoeud noeudCourant = lstNoeudsATester.remove(0);
+
+ // 2.2) Tant qu’il existe une branche connectée à NoeudCourant et qui figure dans lstBranchesRestantes :
+ final List<CatEMHBranche> lstBranchesContenantNoeud = findAllBranchesConnectedToNode(lstBranchesRestantes,
+ noeudCourant);
+
+ while (lstBranchesContenantNoeud.size() > 0) {
+ // 2.2.1) Récupérer une telle branche et la stocker dans BrancheCourante.
+ final CatEMHBranche brancheCourante = lstBranchesContenantNoeud.remove(0);
+
+ // 2.2.2) Récupérer le nœud situé à l’autre extrémité de BrancheCourante (par rapport à NoeudCourant) et le
+ // stocker
+ // dans lstNoeudsATester (s’il n’y figure pas déjà).
+ CatEMHNoeud nouveauNoeud = brancheCourante.getNoeudAmont();
+ if (nouveauNoeud != noeudCourant) {
+ lstNoeudsATester.add(nouveauNoeud);
+ } else {
+ nouveauNoeud = brancheCourante.getNoeudAval();
+ lstNoeudsATester.add(nouveauNoeud);
+ }
+
+ // 2.2.3) Supprimer BrancheCourante de lstBranchesRestantes.
+ lstBranchesRestantes.remove(brancheCourante);
+
+ }
+
+ }
+
+ if (lstBranchesRestantes.size() > 0) {
+ analyzer.addError("error.validationModele.branchesNonAffectes",
+ createMapBranchesNonAffectes(lstBranchesRestantes));
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Cree la liste de branches Active a partir de la liste de branches totales.
+ *
+ * @param lstBranchesTotales
+ * @return
+ */
+ public static List<CatEMHBranche> remplirBranchesRestantesActives(final List<CatEMHBranche> lstBranchesTotales) {
+ final List<CatEMHBranche> listeBranches = new ArrayList<CatEMHBranche>();
+
+ for (final CatEMHBranche branche : lstBranchesTotales) {
+ if (branche.isActive()) {
+ listeBranches.add(branche);
+ }
+ }
+ return listeBranches;
+
+ }
+
+ /**
+ * Retrouve toutes les branches connectees au noeud.
+ *
+ * @param lstBranchesRestantes
+ * @param noeud
+ * @return
+ */
+ public static List<CatEMHBranche> findAllBranchesConnectedToNode(final List<CatEMHBranche> lstBranchesRestantes,
+ final CatEMHNoeud noeud) {
+ final List<CatEMHBranche> listeConnected = new ArrayList<CatEMHBranche>();
+
+ for (final CatEMHBranche branche : lstBranchesRestantes) {
+ if (branche.isActive()) {
+ final CatEMHNoeud noeudAmont = branche.getNoeudAmont();
+ if (noeudAmont == noeud) {
+
+ listeConnected.add(branche);
+
+ } else {
+ final CatEMHNoeud noeudAval = branche.getNoeudAval();
+ if (noeudAval == noeud) {
+
+ listeConnected.add(branche);
+
+ }
+ }
+ }
+ }
+
+ return listeConnected;
+ }
+
+ /**
+ * Methode qui recherche dans la liste des branches le premier noeud d'une branche active.
+ *
+ * @param data
+ * @return
+ */
+ public static CatEMHNoeud findNoeudDepart(final CrueData data) {
+
+ for (int i = 0; i < data.getBranches().size(); i++) {
+ if (data.getBranches().get(i).isActive()) {
+
+ CatEMHNoeud findNoeudDep = data.getBranches().get(i).getNoeudAmont();
+ if (findNoeudDep != null) { return findNoeudDep; }
+ findNoeudDep = data.getBranches().get(i).getNoeudAval();
+ if (findNoeudDep != null) { return findNoeudDep; }
+
+ }
+
+ }
+ return null;
+ }
+
+ /**
+ * Verifie que tous les noeuds soient affectés a au moins une branche.
+ *
+ * @param data
+ * @param analyzer
+ * @return
+ */
+ public static boolean IsNoeudsTousAffectes(final CrueData data, final CtuluAnalyze analyzer) {
+
+ final List<CatEMHNoeud> listeNoeudsNonAffectes = new ArrayList<CatEMHNoeud>(data.getNoeuds().size());
+
+ // pourri collections...
+ // Collections.copy(listeNoeudsNonAffectes, data.getNoeuds());
+
+ for (final CatEMHNoeud node : data.getNoeuds()) {
+ listeNoeudsNonAffectes.add(node);
+ }
+
+ for (final CatEMHBranche branche : data.getBranches()) {
+ if (branche.isActive()) {
+ final CatEMHNoeud noeudAmont = branche.getNoeudAmont();
+ if (noeudAmont != null) {
+
+ listeNoeudsNonAffectes.remove(noeudAmont);
+
+ } else {
+ final HashMap<String, Object> map = new HashMap<String, Object>();
+ map.put("branche", branche.getNom());
+ analyzer.addError("error.validationModele.noeudAmontManquant", map);
+ return false;
+ }
+ final CatEMHNoeud noeudAval = branche.getNoeudAval();
+ if (noeudAval != null) {
+
+ listeNoeudsNonAffectes.remove(noeudAval);
+
+ } else {
+ final HashMap<String, Object> map = new HashMap<String, Object>();
+ map.put("branche", branche.getNom());
+ analyzer.addError("error.validationModele.noeudAvalManquant", map);
+ return false;
+ }
+ }
+ }
+ if (listeNoeudsNonAffectes.size() != 0) {
+ analyzer.addError("error.validationModele.noeudNonAffectes", createMapNoeudsNonAffectes(listeNoeudsNonAffectes));
+ }
+
+ return listeNoeudsNonAffectes.size() == 0;
+ }
+
+ /**
+ * Creer la map avec la liste des noeuds non affectes.
+ *
+ * @param listeNoeudsNonAffectes
+ * @return
+ */
+ public static Map<String, Object> createMapNoeudsNonAffectes(final List<CatEMHNoeud> listeNoeudsNonAffectes) {
+ final String key = "noeuds";
+
+ String liste = "";
+
+ for (final CatEMHNoeud noeud : listeNoeudsNonAffectes) {
+ liste += " " + noeud.getNom();
+ }
+
+ final HashMap<String, Object> map = new HashMap<String, Object>();
+ map.put(key, liste);
+ return map;
+
+ }
+
+ /**
+ * Creer la map avec la liste des branches non affectes.
+ *
+ * @param listeBranchesNonAffectes
+ * @return
+ */
+ public static Map<String, Object> createMapBranchesNonAffectes(final List<CatEMHBranche> listeBranchesNonAffectes) {
+ final String key = "branches";
+
+ String liste = "";
+
+ for (final CatEMHBranche branche : listeBranchesNonAffectes) {
+ liste += " " + branche.getNom();
+ }
+
+ final HashMap<String, Object> map = new HashMap<String, Object>();
+ map.put(key, liste);
+ return map;
+
+ }
+}
Added: trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/ValidateModeleScenario.java
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/ValidateModeleScenario.java (rev 0)
+++ trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/ValidateModeleScenario.java 2009-06-03 06:45:44 UTC (rev 4832)
@@ -0,0 +1,54 @@
+/**
+ * Licence GPL
+ * Copyright Genesis
+ */
+package org.fudaa.dodico.crue.validation;
+
+import java.io.File;
+
+import org.fudaa.ctulu.CtuluAnalyze;
+import org.fudaa.dodico.crue.metier.EMHScenario;
+
+/**
+ * Classe permettant de valider la cohérence des fichiers d'un modele
+ *
+ * @author deniger
+ */
+public class ValidateModeleScenario {
+
+ private final File destDir;
+ private final EMHScenario scenario;
+
+ private final String grammaireVersion = "1.0.0";
+
+ /**
+ * @param destDir le répertoire de travail de ce validation
+ * @param project le projet à valider
+ */
+ public ValidateModeleScenario(File destDir, EMHScenario scenario) {
+ super();
+ this.destDir = destDir;
+ this.scenario = scenario;
+ }
+
+ /**
+ * Ecrit le fichier scenario.xml
+ */
+ public CtuluAnalyze writeScenario() {
+ destDir.mkdirs();
+ ScenarioWriter.InputFormatWriter out = new ScenarioWriter.InputFormatWriter();
+ out.scenario = scenario;
+ out.version = grammaireVersion;
+ ScenarioWriter writer = new ScenarioWriter();
+ writer.setFile(getScenarioFile());
+ return writer.write(out).getAnalyze();
+ }
+
+ /**
+ * @return le fichier utiliser pour ecrire le fichier concatene
+ */
+ public File getScenarioFile() {
+ return new File(destDir, "scenario.xml");
+ }
+
+}
Deleted: trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/ValidationFichierScenario.java
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/ValidationFichierScenario.java 2009-06-02 17:50:17 UTC (rev 4831)
+++ trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/validation/ValidationFichierScenario.java 2009-06-03 06:45:44 UTC (rev 4832)
@@ -1,131 +0,0 @@
-/**
- * Licence GPL
- * Copyright Genesis
- */
-package org.fudaa.dodico.crue.validation;
-
-import java.net.URL;
-
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import javax.xml.validation.Schema;
-import javax.xml.validation.SchemaFactory;
-
-import com.memoire.fu.FuLog;
-
-import org.fudaa.dodico.crue.io.AbstractIOTestCase;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * @author deniger
- *
- */
-public class ValidationFichierScenario {
-
- static final String JAXP_SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
- public static final String W3C_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema";
- static final String JAXP_SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource";
-
- public static void main(String[] args) {
- // final ErrorHandlerDefault handler = new ErrorHandlerDefault(res);
- try {
-
- final URL xsdURL = AbstractIOTestCase.class.getResource("/xsd/all-etude-1.0.xsd");
- // final URL xsddfrtURL = AbstractIOTestCase.class.getResource("/xsd/dfrt-1.0.xsd");
- final URL xml = AbstractIOTestCase.class.getResource("/fichierTest/Modele3.drso.xml");
- final SchemaFactory schemaFactory = SchemaFactory.newInstance(W3C_XML_SCHEMA);
- // schemaFactory.setResourceResolver(resourceResolver)
- final Schema schema = schemaFactory.newSchema(xsdURL);
- // //
- //
- // // parser.setSchema(schema);
- DefaultHandler handler = new DefaultHandler() {
-
- @Override
- public void processingInstruction(String target, String data) throws SAXException {
- // FIXME Auto-generated method stub
- super.processingInstruction(target, data);
- }
-
- // @Override
- // public void setDocumentLocator(Locator locator) {
- // // FIXME Auto-generated method stub
- // super.setDocumentLocator(locator);
- // }
-
- @Override
- public void startPrefixMapping(String prefix, String uri) throws SAXException {
- // FIXME Auto-generated method stub
- super.startPrefixMapping(prefix, uri);
- }
-
- @Override
- public void error(SAXParseException e) throws SAXException {
- String msg = e.getMessage();
- if (msg.contains("no grammar found") || msg.contains("must match DOCTYPE root")) { return; }
- System.err.println("erreur dans le fichier " + e.getSystemId() + " a la ligne " + e.getLineNumber() + " = "
- + e.getLocalizedMessage() + "/" + e.getMessage());
- // e.printStackTrace();
- }
-
- @Override
- public void fatalError(SAXParseException e) throws SAXException {
- error(e);
- }
-
- @Override
- public void warning(SAXParseException e) throws SAXException {
- // e.printStackTrace();
- }
- };
- // final Validator validator = schema.newValidator();
- // // validator.s
- // // SAXSource source = new SAXSource(new InputSource(xml.toString()));
- // // validator.validate(source);
- SAXParserFactory parser = SAXParserFactory.newInstance();
- // parser.setSchema(schema);
- parser.setNamespaceAware(true);
- parser.setXIncludeAware(true);
- parser.setValidating(true);
- SAXParser newSAXParser = parser.newSAXParser();
- newSAXParser.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
- newSAXParser.setProperty(JAXP_SCHEMA_SOURCE, new InputSource(xsdURL.toString()));
- newSAXParser.parse(new InputSource(xml.toString()), handler);
- // parser.newSAXParser().p
- // DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
- // documentBuilderFactory.setNamespaceAware(true);
- // documentBuilderFactory.setXIncludeAware(true);
- // documentBuilderFactory.setValidating(true);
- // documentBuilderFactory.setSchema(schema);
- // DocumentBuilder parser = documentBuilderFactory.newDocumentBuilder();
- // parser.setErrorHandler(handler);
- // Document document = parser.parse(xml.toURI().toString());
- // //
- // // // create a SchemaFactory capable of understanding WXS schemas
- // // SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
- // //
- // // // load a WXS schema, represented by a Schema instance
- // // Source schemaFile = new StreamSource(new File("mySchema.xsd"));
- // // Schema schema = factory.newSchema(schemaFile);
- // //
- // // create a Validator instance, which can be used to validate an instance document
- // Validator validator = schema.newValidator();
- // validator.setErrorHandler(handler);
- //
- // // // validate the DOM tree
- // // try {
- // // SAXSource source = new SAXSource(new InputSource(xml.toString()));
- // validator.validate(new DOMSource(document));
- // validator.validate(source);
-
- } catch (final Exception e) {
- // e.printStackTrace();
- FuLog.error(e);
- }
-
- }
-
-}
Modified: trunk/soft/fudaa-crue/dodico/src/main/resources/xsd/scenario-1.0.0.xsd
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/main/resources/xsd/scenario-1.0.0.xsd 2009-06-02 17:50:17 UTC (rev 4831)
+++ trunk/soft/fudaa-crue/dodico/src/main/resources/xsd/scenario-1.0.0.xsd 2009-06-03 06:45:44 UTC (rev 4832)
@@ -27,8 +27,7 @@
<!-- ce fichier n'existe pas ! -->
<!-- xs:include schemaLocation="optr-1.0.0.xsd" /-->
<xs:include schemaLocation="frag-optg-1.0.0.xsd" />
- <!-- ce fichier non géré dans le lot 0-->
- <!-- <xs:include schemaLocation="frag-opti-1.0.0.xsd" />-->
+ <xs:include schemaLocation="frag-opti-1.0.0.xsd" />
<xs:include schemaLocation="frag-pnum-1.0.0.xsd" />
<xs:include schemaLocation="frag-dpti-1.0.0.xsd" />
@@ -46,34 +45,57 @@
permet de concatener tous les fichiers en les prenant dans l'ordre
Scenario-Modele-SousModele.
-->
- <xs:element name="ScenarioValidation">
+ <xs:element name="ValidationScenario">
<xs:complexType>
<xs:sequence>
- <xs:element ref="OCAL" />
- <xs:element ref="ORES" />
- <xs:element ref="PCAL" />
- <xs:element ref="DCLM" />
- <xs:element ref="DLHY" />
+ <xs:element name="ScenarioFichiers">
+ <xs:complexType>
+ <xs:all>
+ <xs:element ref="OCAL" />
+ <xs:element ref="ORES" />
+ <xs:element ref="PCAL" />
+ <xs:element ref="DCLM" />
+ <xs:element ref="DLHY" />
+ </xs:all>
+ </xs:complexType>
+ </xs:element>
<!--
un scenario peut avoir plusieur modeles. Tous les fichiers seront
concaténés à la suite ici
-->
- <xs:element ref="OPTG" maxOccurs="unbounded" />
- <xs:element ref="PNUM" maxOccurs="unbounded" />
- <xs:element ref="DPTI" maxOccurs="unbounded" />
- <!--
- un Modele peut avoir plusieurs sous-modeles.
- -->
- <xs:element ref="DRSO" maxOccurs="unbounded" />
- <xs:element ref="DCSP" maxOccurs="unbounded" />
- <xs:element ref="DPTG" maxOccurs="unbounded" />
- <xs:element ref="DFRT" maxOccurs="unbounded" />
+ <!-- xs:element ref="OPTR" maxOccurs="unbounded" /-->
+ <xs:element name="ValidationModele" maxOccurs="unbounded"
+ minOccurs="1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="ModeleFichiers" maxOccurs="1">
+ <xs:complexType>
+ <xs:all>
+ <xs:element ref="OPTG" />
+ <xs:element ref="OPTI" />
+ <xs:element ref="PNUM" />
+ <xs:element ref="DPTI" />
+ <!--un Modele peut avoir plusieurs sous-modeles.-->
+ </xs:all>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="SousModeleFichiers" maxOccurs="unbounded"
+ minOccurs="1">
+ <xs:complexType>
+ <xs:all>
+ <xs:element ref="DRSO" />
+ <xs:element ref="DCSP" />
+ <xs:element ref="DPTG" />
+ <xs:element ref="DFRT" />
+ </xs:all>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
</xs:sequence>
-
</xs:complexType>
-
-
</xs:element>
Modified: trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/io/TestCrueETUFile.java
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/io/TestCrueETUFile.java 2009-06-02 17:50:17 UTC (rev 4831)
+++ trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/io/TestCrueETUFile.java 2009-06-03 06:45:44 UTC (rev 4832)
@@ -1,7 +1,6 @@
package org.fudaa.dodico.crue.io;
import org.fudaa.ctulu.CtuluAnalyze;
-import org.fudaa.dodico.crue.io.Crue10FileFormatFactory;
import org.fudaa.dodico.crue.metier.EMHScenario;
import org.fudaa.dodico.crue.metier.EMHproject;
@@ -52,7 +51,7 @@
}
- private EMHproject readModele3() {
+ public static EMHproject readModele3() {
final CtuluAnalyze analyzer = new CtuluAnalyze();
final EMHproject jeuDonneesLue = Crue10FileFormatFactory.getETUFileFormat().read(FICHIER_TEST_ETUDE_ETU_XML,
analyzer, null);
Modified: trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/io/TestCrueValidationModele.java
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/io/TestCrueValidationModele.java 2009-06-02 17:50:17 UTC (rev 4831)
+++ trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/io/TestCrueValidationModele.java 2009-06-03 06:45:44 UTC (rev 4832)
@@ -4,7 +4,7 @@
import org.fudaa.ctulu.CtuluAnalyze;
import org.fudaa.dodico.crue.metier.CrueData;
-import org.fudaa.dodico.crue.validation.EMHValidatorModele;
+import org.fudaa.dodico.crue.validation.ValidateConnectionModele;
/**
* Classe test de validation du modele.
@@ -28,7 +28,7 @@
// analyzer.printResume();
analyzer = new CtuluAnalyze();
- final boolean res = EMHValidatorModele.validateConnexite(data, analyzer);
+ final boolean res = ValidateConnectionModele.validateConnexite(data, analyzer);
analyzer.printResume();
assertEquals(resAttendu, res);
Added: trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/validation/TestValidateModeleScenario.java
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/validation/TestValidateModeleScenario.java (rev 0)
+++ trunk/soft/fudaa-crue/dodico/src/test/java/org/fudaa/dodico/crue/validation/TestValidateModeleScenario.java 2009-06-03 06:45:44 UTC (rev 4832)
@@ -0,0 +1,54 @@
+/**
+ * Licence GPL
+ * Copyright Genesis
+ */
+package org.fudaa.dodico.crue.validation;
+
+import java.io.File;
+import java.io.IOException;
+
+import com.memoire.fu.FuLogCrue;
+
+import org.fudaa.ctulu.CtuluAnalyze;
+import org.fudaa.ctulu.CtuluLibFile;
+import org.fudaa.dodico.crue.common.AbstractTestCase;
+import org.fudaa.dodico.crue.io.TestCrueETUFile;
+import org.fudaa.dodico.crue.metier.EMHScenario;
+import org.fudaa.dodico.crue.metier.EMHproject;
+
+/**
+ * @author deniger
+ */
+@SuppressWarnings("PMD.SystemPrintln")
+public class TestValidateModeleScenario extends AbstractTestCase {
+
+ public void testWriter() {
+ final EMHproject projet3 = TestCrueETUFile.readModele3();
+ // on va cr
+ File destDir = null;
+ try {
+ destDir = CtuluLibFile.createTempDir("validate");
+ } catch (final IOException e) {
+ fail(e.getMessage());
+ FuLogCrue.error(e);
+ }
+ System.err.println("Dossier de destination= " + destDir.getAbsolutePath());
+ final EMHScenario scenarioCourant = projet3.getScenarioCourant();
+ // TODO il faut continuer le scenarioWriter pour obtenir le meme resultat que le fichier:
+ // Modele3.scenario.xml fourni dans le répertoire de test. Mise
+ final ValidateModeleScenario validator = new ValidateModeleScenario(destDir, scenarioCourant);
+ CtuluAnalyze writeScenario = validator.writeScenario();
+ testAnalyser(writeScenario);
+ try {
+ String content = CtuluLibFile.litFichierTexte(validator.getScenarioFile());
+ System.out.println("le contenu: ");
+ System.out.println("");
+ System.out.println(content);
+ } catch (IOException e) {
+ e.printStackTrace();
+ fail(e.getMessage());
+ FuLogCrue.error(e);
+ }
+
+ }
+}
Deleted: trunk/soft/fudaa-crue/dodico/src/test/resources/fichierTest/Modele3.run.xml.tmp
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/test/resources/fichierTest/Modele3.run.xml.tmp 2009-06-02 17:50:17 UTC (rev 4831)
+++ trunk/soft/fudaa-crue/dodico/src/test/resources/fichierTest/Modele3.run.xml.tmp 2009-06-03 06:45:44 UTC (rev 4832)
@@ -1,3 +0,0 @@
-
-xmlns:xi="http://www.w3.org/2001/XInclude"
-<xi:include href="Modele3.dfrt.xml"/>
Copied: trunk/soft/fudaa-crue/dodico/src/test/resources/fichierTest/Modele3.scenario.xml (from rev 4817, trunk/soft/fudaa-crue/dodico/src/test/resources/fichierTest/Modele3.run.xml.tmp)
===================================================================
--- trunk/soft/fudaa-crue/dodico/src/test/resources/fichierTest/Modele3.scenario.xml (rev 0)
+++ trunk/soft/fudaa-crue/dodico/src/test/resources/fichierTest/Modele3.scenario.xml 2009-06-03 06:45:44 UTC (rev 4832)
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ValidationScenario xmlns="http://www.fudaa.fr/xsd/crue"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xi="http://www.w3.org/2001/XInclude"
+ xsi:schemaLocation="http://www.fudaa.fr/xsd/crue http://www.fudaa.fr/xsd/crue/scenario-1.0.0.xsd">
+
+ <ScenarioFichiers>
+ <!-- l'ordre des fichier n'est pas important -->
+ <xi:include href="Modele3.ocal.xml" />
+ <xi:include href="Modele3.ores.xml" />
+ <xi:include href="Modele3.pcal.xml" />
+ <xi:include href="Modele3.dclm.xml" />
+ <xi:include href="Modele3.dlhy.xml" />
+ </ScenarioFichiers>
+ <ValidationModele>
+ <ModeleFichiers>
+ <!--ce fichier n'est pas géré en v0-->
+ <xi:include href="Modele3.optr.xml" />
+ <xi:include href="Modele3.optg.xml" />
+ <xi:include href="Modele3.opti.xml" />
+ <xi:include href="Modele3.pnum.xml" />
+ <xi:include href="Modele3.dpti.xml" />
+ </ModeleFichiers>
+ <SousModeleFichiers>
+ <xi:include href="Modele3.drso.xml" />
+ <xi:include href="Modele3.dcsp.xml" />
+ <xi:include href="Modele3.dptg.xml" />
+ <xi:include href="Modele3.dfrt.xml" />
+ </SousModeleFichiers>
+ </ValidationModele>
+</ValidationScenario>
\ No newline at end of file
Modified: trunk/soft/fudaa-crue/fudaa/src/main/java/org/fudaa/fudaa/crue/projet/ScenarioLoader.java
===================================================================
--- trunk/soft/fudaa-crue/fudaa/src/main/java/org/fudaa/fudaa/crue/projet/ScenarioLoader.java 2009-06-02 17:50:17 UTC (rev 4831)
+++ trunk/soft/fudaa-crue/fudaa/src/main/java/org/fudaa/fudaa/crue/projet/ScenarioLoader.java 2009-06-03 06:45:44 UTC (rev 4832)
@@ -20,7 +20,7 @@
import org.fudaa.dodico.crue.metier.emh.OrdResScenario;
import org.fudaa.dodico.crue.metier.emh.ParamCalcScenario;
import org.fudaa.dodico.crue.metier.emh.ParamNumModeleBase;
-import org.fudaa.dodico.crue.validation.EMHValidatorModele;
+import org.fudaa.dodico.crue.validation.ValidateConnectionModele;
import org.fudaa.ebli.commun.EbliActionSimple;
import org.fudaa.fudaa.crue.common.CrueCommomImplementation;
import org.fudaa.fudaa.crue.common.FCrueResource;
@@ -217,7 +217,7 @@
// -- Verifier la connexité du graphe --//
CtuluAnalyze analyseValidationCOnnexite = projet.getManagerError().getNewAnalyser();
analyseValidationCOnnexite.setDesc(FCrueResource.getS("ihm.validation.connexite"));
- final boolean res = EMHValidatorModele.validateConnexite(cruedataSousModele, analyseValidationCOnnexite);
+ final boolean res = ValidateConnectionModele.validateConnexite(cruedataSousModele, analyseValidationCOnnexite);
if (!res) { return; }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|