From: <had...@us...> - 2009-03-17 18:50:32
|
Revision: 4554 http://fudaa.svn.sourceforge.net/fudaa/?rev=4554&view=rev Author: hadouxad Date: 2009-03-17 18:50:18 +0000 (Tue, 17 Mar 2009) Log Message: ----------- - Gestion Fichier ETU Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modifications-Obligatoires.txt branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Questions-ModelisationDonnees.txt branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryCommom.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDCSP.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoParsing.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDCSP.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDFRT.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDPTG.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDPTI.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDRSO.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/EMHModeleBase.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryETU.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoPersistETU.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatETU.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/validatorXML/valideETU.xsd branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/EMHProjectInfos.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/EMHproject.java branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/FichierCrue.java Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modifications-Obligatoires.txt =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modifications-Obligatoires.txt 2009-03-17 18:48:26 UTC (rev 4553) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Modifications-Obligatoires.txt 2009-03-17 18:50:18 UTC (rev 4554) @@ -17,4 +17,60 @@ - balise <BrancheSeuilTransversal> et <BrancheSeuilLateral> contiennent des \xE9l\xE9ments <ElemSeuilPdc> au lieu de <ElemSeuil> car ce sont les balises <BrancheBarrageFilEau> qui contiennent des \xE9l\xE9ments <ElemSeuil> (sans pdc) - En effet avant la contrainte d'unicit\xE9 n'est pas appliqu\xE9e. \ No newline at end of file + En effet avant la contrainte d'unicit\xE9 n'est pas appliqu\xE9e. + + + + - FICHIER ETU + -Unicit\xE9 contrainte: + - remplacer la structure de la balise scenario courant: + <ScenarioCourant> + <Scenario NomRef="SCMod3"/> + </ScenarioCourant> + par + <ScenarioCourant NomRef="SCMod3" /> + (la balise Scenario d\xE9ja utilis\xE9e) + + - remplacer dans la balise <Repertoire>: + + remplacer <Repertoire Nom="FICHETUDES">C:\DATA\Crue\Modele3\</Repertoire> + par + <Repertoire Nom="FICHETUDES"> + <path> C:\DATA\Crue\Modele3\</path> + </Repertoire> + + - remplacer dans la balise <SousModele>, <Modeles> et <Scenario> pour la liste des fichiers + <FichEtudes> + <DRSO NomRef="SMMOModele3.drso.xml" /> + <DCSP NomRef="SMMOModele3.dcsp.xml" /> + <DPTG NomRef="SMMOModele3.dptg.xml" /> + .... + <DFRT NomRef="SMMOModele3.dfrt.xml" /> + </FichEtudes> + par + <FichEtudes> + <Fichier NomRef="SMMOModele3.drso.xml" /> + <Fichier NomRef="SMMOModele3.dcsp.xml" /> + <Fichier NomRef="SMMOModele3.dptg.xml" /> + .... + <Fichier NomRef="SMMOModele3.dfrt.xml" /> + </FichEtudes> + en effet les fichiers sont d\xE9ja d\xE9fini par leur r\xE9f\xE9rence, inutile de pr\xE9ciser les balises: redondance et non unicit\xE9. + + - remplacer dans la balise <Modele>: renomer les balises <SousModele> par <SousModele-ref> + + - remplacer dans la balise <Scenario>: renomer les balises <Modele> par <Modele-ref> + + + - remplacer dans la balise <runs>; renommer les balises <Modele> en <Modele-run> + + + - remplacer dans la balise <scenario>: renommer la balise <RunCourant> : + <RunCourant> + <Run NomRef="20090211152047"/> + </RunCourant> + + a remplacer par : + <RunCourant NomRef="20090211152047"/> + + \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Questions-ModelisationDonnees.txt =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Questions-ModelisationDonnees.txt 2009-03-17 18:48:26 UTC (rev 4553) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/Fichiers_donnees_Crue/Questions-ModelisationDonnees.txt 2009-03-17 18:50:18 UTC (rev 4554) @@ -64,6 +64,11 @@ exemple: nomProfil="toto" pr\xE9sent \xE0 la fois dans 2 sectionProfils du fichier DRSO ? + + - Fichier ETU: + - A quoi sert la balise rapport ? peut on avoir un exemple ? + - Balise <Runs>: dans la balise <FichRuns> on ne voit dans l'exemple que des balises <Modeles>. Est ce qu'il peut y avoir autre chose? + - Fichier OCAL: pourrait-on avoir un exemple de fichier OCAL ? Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryCommom.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryCommom.java 2009-03-17 18:48:26 UTC (rev 4553) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryCommom.java 2009-03-17 18:50:18 UTC (rev 4554) @@ -12,6 +12,38 @@ */ public class CrueDaoFactoryCommom { + + + //-- listing des diff\xE9rents fichiers et leur noms utilis\xE9s --// + public static String ETU="ETU"; + + public static String DRSO="DRSO"; + public static String ORES="ORES"; + public static String PCAL="PCAL"; + public static String DCLM="DCLM"; + public static String DLHY="DLHY"; + public static String OPTR="OPTR"; + public static String OPTG="OPTG"; + public static String OPTI="OPTI"; + public static String PNUM="PNUM"; + public static String DPTI="DPTI"; + public static String DCSP="DCSP"; + public static String DPTG="DPTG"; + public static String DFRT="DFRT"; + public static String DC="DRSO"; + public static String DH="DRSO"; + + + //-- fichiers de resultats --// + public static String RPTR="RPTR"; + public static String RPTG="RPTG"; + public static String RPTI="RPTI"; + public static String RCAL="RCAL"; + + + + + /** * Construit un ptProfil a partir d'une chaine de caracteres. * Utilis\xE9 pour DPTG @@ -71,7 +103,26 @@ return CrueRessource.getS(balise+": Impossible de trouver la "+balise+" de r\xE9f\xE9rence "+nomRef); } + /** + * Envoie un message formatt\xE9 pour une erreur de doublons d'id + * @param balise + * @param nomRef + * @return + */ + public static String errorIdNonUnique(String balise,String nomRef){ + return CrueRessource.getS("<"+balise+">: l'id "+nomRef+" est en doublon, il ne sera donc pas "); + + } + + + public static String messageBaliseError(String balise,String message){ + return CrueRessource.getS(balise+": "+message); + + } + + + /** * Message qui indique la balise n'est pas reconnue par les structures de donn\xE9es EMH. * @param balise * @param nomRef Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDCSP.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDCSP.java 2009-03-17 18:48:26 UTC (rev 4553) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryDCSP.java 2009-03-17 18:50:18 UTC (rev 4554) @@ -62,7 +62,7 @@ //CrueDaoFactoryDCSP.remplirPersistanceAvecBrancheDSCP(persistance.Branches,data,listeMessageError); if(data==null || data.size()==0){ - listeMessageError.add(CrueDaoFactoryCommom.emhEmpty("DCSP")); + listeMessageError.add(CrueDaoFactoryCommom.emhEmpty(CrueDaoFactoryCommom.DCSP)); }else for(EMH emh:data ){ if(emh instanceof CatEMHBranche){ @@ -74,7 +74,7 @@ if(dataCalc!=null ){ CrueDaoFactoryDCSP.remplirPersistanceAvecBrancheDSCP(persistance.Branches,branche,dataCalc,listeMessageError); }else{ - listeMessageError.add(CrueDaoFactoryCommom.unknowdataFromFile("Branches", "DCSP", branche.getNom())); + listeMessageError.add(CrueDaoFactoryCommom.unknowdataFromFile("Branches", CrueDaoFactoryCommom.DCSP, branche.getNom())); } } @@ -87,7 +87,7 @@ remplirPersistanceAvecSectionsBrancheDSCP(persistance.Sections, section,(DonCalcSansPrtSection)dataCalc, listeMessageError); }else{ - listeMessageError.add(CrueDaoFactoryCommom.unknowdataFromFile("Section", "DCSP", section.getNom())); + listeMessageError.add(CrueDaoFactoryCommom.unknowdataFromFile("Section", CrueDaoFactoryCommom.DCSP, section.getNom())); } Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryETU.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryETU.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoFactoryETU.java 2009-03-17 18:50:18 UTC (rev 4554) @@ -0,0 +1,165 @@ +package main.java.org.fudaa.dodico.crue.dao; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import main.java.org.fudaa.dodico.crue.commun.CrueRessource; +import main.java.org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatETU.Repertoire; +import main.java.org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatETU.TypeFichierDispo; +import main.java.org.fudaa.dodico.crue.metier.EMHProjectInfos; +import main.java.org.fudaa.dodico.crue.metier.EMHproject; +import main.java.org.fudaa.dodico.crue.metier.FichierCrue; + + + +/** + * Factory qui se charge de remplir les structures DAO dufichier ETU avec les donn\xE9es m\xE9tier et inversement. + * @author Adrien Hadoux + * + */ +public class CrueDaoFactoryETU { + + /** + * Remplit un projet EMH avec les donn\xE9es du fichier ETU. + * @param persistance + * @param listeMessageError + * @return + */ + public static EMHproject remplirMetierETU(CrueDaoPersistETU persistance,List<String> listeMessageError){ + EMHproject project=new EMHproject(); + + //-- remplissage des infos du projet --// + EMHProjectInfos infos=remplirMetierInfos(persistance); + + //-- remplissage de la base de fichiers utilis\xE9s dans tout le projet --// + remplirBaseDeFichiers(persistance.FichEtudes, infos, listeMessageError); + + //-- Directories --// + remplirBaseDirectories(persistance.Repertoires, infos, listeMessageError); + + + //TODO la suite en commencant par les sous modeles... // + + + + + //-- ajout des infos au projet actuel --// + project.setInfos(infos); + + + + + + return project; + } + + /** + * Remplit les infos avce les commentaires,dates, user,... + * Donnees optionnelles. + * @param persistance + * @return + */ + public static EMHProjectInfos remplirMetierInfos(CrueDaoPersistETU persistance){ + EMHProjectInfos infos=new EMHProjectInfos(); + + if(persistance.AuteurDerniereModif!=null) + infos.setAuteurDerniereModif(persistance.AuteurDerniereModif); + if(persistance.Commentaire!=null) + infos.setCommentaire(persistance.Commentaire); + if(persistance.Creation!=null) + infos.setCreation(persistance.Creation); + if(persistance.DateCreation!=null) + infos.setDateCreation(persistance.DateCreation); + if(persistance.DateDerniereModif!=null) + infos.setDateDerniereModif(persistance.DateDerniereModif); + if(persistance.VersionCrue!=null) + infos.setVersionCrue(persistance.VersionCrue); + + return infos; + } + + /** + * Remplit la base de fichiers du projet. + * @param FichEtudesPersist + * @param infoProjet + * @param listeMessageError + * @return + */ + public static void remplirBaseDeFichiers(List<TypeFichierDispo> fichEtudesPersist,EMHProjectInfos infoProjet,List<String> listeMessageError){ + + if(fichEtudesPersist==null){ + listeMessageError.add(CrueDaoFactoryCommom.listEmpty("FichEtudes")); + return; + } + for(TypeFichierDispo fichierPersist:fichEtudesPersist){ + + if(fichierPersist.Nom!=null && fichierPersist.Chemin!=null && fichierPersist.getType()!=null){ + FichierCrue file=new FichierCrue(fichierPersist.Nom,fichierPersist.Chemin,fichierPersist.getType()); + + if(!infoProjet.addCrueFileToProject(file)){ + listeMessageError.add(CrueDaoFactoryCommom.errorIdNonUnique("FichEtudes",file.getId())); + } + + } + else{ + listeMessageError.add(CrueDaoFactoryCommom.messageBaliseError("FichEtudes",CrueRessource.getS("Erreur Fichier ETU: un des 3 param\xE8tres (id,path,type) est manquant"))); + } + + + + } + + + } + + /** + * Remplit les directories: les r\xE9pertoires principaux qui contiennent les fichier de donn\xE9es, ETUDE,RUN et RAPPORT. + * Gere les no clef et retourne les erreurs en cas de probl\xE8me. + * @param directoriesPersist + * @param infoProjet + * @param listeMessageError + */ + public static void remplirBaseDirectories(List<Repertoire> directoriesPersist,EMHProjectInfos infoProjet,List<String> listeMessageError){ + if(directoriesPersist==null){ + listeMessageError.add(CrueDaoFactoryCommom.listEmpty("Repertoires")); + return; + } + Map<String,String> directories=new HashMap<String, String>(); + + for(Repertoire fichierPersist:directoriesPersist){ + + if(fichierPersist.Nom!=null && fichierPersist.path!=null){ + String key=fichierPersist.Nom; + if(key.toUpperCase().equals(EMHProjectInfos.FICHETUDES)) + //-- fichier etudes --// + directories.put(EMHProjectInfos.FICHETUDES, fichierPersist.path); + else + if(key.toUpperCase().equals(EMHProjectInfos.RAPPORTS)) + //-- fichier etudes --// + directories.put(EMHProjectInfos.RAPPORTS, fichierPersist.path); + else + if(key.toUpperCase().equals(EMHProjectInfos.RUNS)) + //-- fichier etudes --// + directories.put(EMHProjectInfos.RUNS, fichierPersist.path); + else{ + //-- erreur clef non reconnue --// + listeMessageError.add(CrueDaoFactoryCommom.messageBaliseError("Repertoires",CrueRessource.getS("Erreur Fichier ETU: le nom-clef "+key+" du r\xE9pertoire est invalide: doit etre "+EMHProjectInfos.FICHETUDES+" ou "+EMHProjectInfos.RAPPORTS+" ou "+EMHProjectInfos.RUNS))); + } + + } + else{ + listeMessageError.add(CrueDaoFactoryCommom.messageBaliseError("Repertoires",CrueRessource.getS("Erreur Fichier ETU: un des 2 param\xE8tres (nom,path) est manquant"))); + } + + + + } + + //-- ajout du directories dans les infos EMH --// + infoProjet.setDirectories(directories); + + } + + +} Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoParsing.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoParsing.java 2009-03-17 18:48:26 UTC (rev 4553) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoParsing.java 2009-03-17 18:50:18 UTC (rev 4554) @@ -62,7 +62,7 @@ */ public boolean persistData(File fichier,List<String> listeMessageError) { boolean isOk=true; - ObjectOutputStream out=null; + OutputStreamWriter writer=null; try { writer=new OutputStreamWriter(new FileOutputStream(fichier),"UTF-8"); Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoPersistETU.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoPersistETU.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoPersistETU.java 2009-03-17 18:50:18 UTC (rev 4554) @@ -0,0 +1,60 @@ +package main.java.org.fudaa.dodico.crue.dao; + +import java.util.List; + +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; + +import main.java.org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatETU.Modele; +import main.java.org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatETU.Repertoire; +import main.java.org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatETU.Scenario; +import main.java.org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatETU.ScenarioCourant; +import main.java.org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatETU.SousModele; +import main.java.org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatETU.TypeFichierDispo; +import main.java.org.fudaa.dodico.crue.metier.EMHproject; + +/** + * Persistence du fichier XML ETU, + * le seul pour les gouverner tous. + * @author Adrien Hadoux + * + */ +public class CrueDaoPersistETU extends CrueDaoParsing<EMHproject>{ + + + public String Creation; + public String DateCreation; + public String AuteurDerniereModif; + public String DateDerniereModif; + public ScenarioCourant ScenarioCourant; + public List<Repertoire> Repertoires; + public List<TypeFichierDispo> FichEtudes; + public List<SousModele> SousModeles; + public List<Modele> Modeles; + //TODO definir utilisation + public String Rapports; + public List<Scenario> Scenarios; + + + @Override + public void fillInfosWith(EMHproject data, List<String> listeMessageError) { + + //-- on ne fais pas d'\xE9criture pour ce fichier --// + } + + @Override + public EMHproject fillInfosWithPersistant(Object dataLinked, + List<String> listeMessageError) { + // TODO Auto-generated method stub + return CrueDaoFactoryETU.remplirMetierETU(this, listeMessageError); + } + + @Override + public XStream initXmlParser(){ + XStream xstream = new XStream(new DomDriver()); + //-- initialisation du format de la structure des documents --// + (new CrueDaoStructuresFormatETU()).initXmlParserForETU(xstream); + return xstream; + } + +} Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDCSP.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDCSP.java 2009-03-17 18:48:26 UTC (rev 4553) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDCSP.java 2009-03-17 18:50:18 UTC (rev 4554) @@ -14,7 +14,7 @@ */ public void initXmlParserForDSCP(XStream xstream ){ //-- creation des alias pour que ce soit + parlant dans le xml file --// - xstream.alias("DCSP", CrueDaoPersistDCSP.class); + xstream.alias(CrueDaoFactoryCommom.DCSP, CrueDaoPersistDCSP.class); //-- liste des initialisations n\xE9cessaires pour le formattage des donn\xE9es--// initXmlParserBranche(xstream); initXmlParserSection(xstream); Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDFRT.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDFRT.java 2009-03-17 18:48:26 UTC (rev 4553) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDFRT.java 2009-03-17 18:50:18 UTC (rev 4554) @@ -31,7 +31,7 @@ public void initXmlParserForDFRT(XStream xstream ){ //-- creation des alias pour que ce soit + parlant dans le xml file --// - xstream.alias("DFRT", CrueDaoPersistDFRT.class); + xstream.alias(CrueDaoFactoryCommom.DFRT, CrueDaoPersistDFRT.class); //-- liste des initialisations n\xE9cessaires pour le formattage des donn\xE9es--// initXmlParserStriRef(xstream); Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDPTG.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDPTG.java 2009-03-17 18:48:26 UTC (rev 4553) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDPTG.java 2009-03-17 18:50:18 UTC (rev 4554) @@ -18,7 +18,7 @@ public void initXmlParserForDPTG(XStream xstream ){ //-- creation des alias pour que ce soit + parlant dans le xml file --// - xstream.alias("DPTG", CrueDaoPersistDPTG.class); + xstream.alias(CrueDaoFactoryCommom.DPTG, CrueDaoPersistDPTG.class); //-- liste des initialisations n\xE9cessaires pour le formattage des donn\xE9es--// initXmlParserProfils(xstream); initXmlParserSections(xstream); Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDPTI.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDPTI.java 2009-03-17 18:48:26 UTC (rev 4553) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDPTI.java 2009-03-17 18:50:18 UTC (rev 4554) @@ -15,7 +15,7 @@ public void initXmlParserForDPTI(XStream xstream ){ //-- creation des alias pour que ce soit + parlant dans le xml file --// - xstream.alias("DPTI", CrueDaoPersistDPTI.class); + xstream.alias(CrueDaoFactoryCommom.DPTI, CrueDaoPersistDPTI.class); //-- liste des initialisations n\xE9cessaires pour le formattage des donn\xE9es--// initXmlParserNode(xstream); initXmlParserBranche(xstream); Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDRSO.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDRSO.java 2009-03-17 18:48:26 UTC (rev 4553) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatDRSO.java 2009-03-17 18:50:18 UTC (rev 4554) @@ -24,7 +24,7 @@ */ public void initXmlParserForDRSO(XStream xstream ){ //-- creation des alias pour que ce soit + parlant dans le xml file --// - xstream.alias("DRSO", CrueDaoPersistDRSO.class); + xstream.alias(CrueDaoFactoryCommom.DRSO, CrueDaoPersistDRSO.class); //-- liste des initialisations n\xE9cessaires pour le formattage des donn\xE9es--// initXmlParserNode(xstream); initXmlParserBranche(xstream); @@ -42,7 +42,7 @@ */ public void initXmlParserNode(XStream xstream ){ //-- alias gestion pour les noeuds --// - xstream.alias("NoeudNiveauContinu", NoeudNiveauContinu.class); + //xstream.alias("NoeudNiveauContinu", NoeudNiveauContinu.class); //-- mettre attribut Nom comme attribut de la balise Noeud et son converter appropri\xE9 --// //-- creation des alias pour que ce soit + parlant dans le xml file --// xstream.useAttributeFor(NoeudNiveauContinu.class, "Nom"); @@ -448,6 +448,7 @@ public static class ReferenceProfil { public String NomRef; } + public static class ReferenceProfilConverter implements SingleValueConverter { public String toString(Object obj) { return ((ReferenceProfil) obj).NomRef; } Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatETU.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatETU.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/CrueDaoStructuresFormatETU.java 2009-03-17 18:50:18 UTC (rev 4554) @@ -0,0 +1,445 @@ +package main.java.org.fudaa.dodico.crue.dao; + +import java.util.List; + +import main.java.org.fudaa.dodico.crue.dao.CrueDaoStructuresFormatDRSO.ReferenceProfil; + +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.converters.Converter; +import com.thoughtworks.xstream.converters.MarshallingContext; +import com.thoughtworks.xstream.converters.SingleValueConverter; +import com.thoughtworks.xstream.converters.UnmarshallingContext; +import com.thoughtworks.xstream.io.HierarchicalStreamReader; +import com.thoughtworks.xstream.io.HierarchicalStreamWriter; +/** + * + * @author Adrien Hadoux + * + */ +public class CrueDaoStructuresFormatETU { + + public void initXmlParserForETU(XStream xstream ){ + //-- creation des alias pour que ce soit + parlant dans le xml file --// + xstream.alias(CrueDaoFactoryCommom.ETU, CrueDaoPersistDCSP.class); + //-- liste des initialisations n\xE9cessaires pour le formattage des donn\xE9es--// + initXmlParserForScenario(xstream); + initXmlParserForRepertoires(xstream); + initXmlParserForFichiers(xstream); + initXmlParserForSousModele(xstream); + initXmlParserForModele(xstream); + initXmlParserForReference(xstream); + initXmlParserForRun(xstream); + } + + public void initXmlParserForScenario(XStream xstream ){ + xstream.alias("ScenarioCourant", ScenarioCourant.class); + xstream.useAttributeFor(ScenarioCourant.class, "NomRef"); + xstream.registerConverter(new ScenarioCourantConverter()); + + xstream.alias("Scenario", Scenario.class); + xstream.useAttributeFor(Scenario.class, "Nom"); + xstream.registerConverter(new ScenarioConverter()); + + + + } + public void initXmlParserForRepertoires(XStream xstream ){ + xstream.alias("Repertoire", Repertoire.class); + xstream.useAttributeFor(Repertoire.class, "Nom"); + xstream.registerConverter(new RepertoireConverter()); + } + public void initXmlParserForFichiers(XStream xstream ){ + + /** + * Ce fonctionnement ne peut etre ok que dans le cas de la lecture seule. + */ + xstream.alias(CrueDaoFactoryCommom.DRSO, TypeFichierDispo.class); + xstream.alias(CrueDaoFactoryCommom.ORES, TypeFichierDispo.class); + xstream.alias(CrueDaoFactoryCommom.PCAL, TypeFichierDispo.class); + xstream.alias(CrueDaoFactoryCommom.DCLM, TypeFichierDispo.class); + xstream.alias(CrueDaoFactoryCommom.DLHY, TypeFichierDispo.class); + xstream.alias(CrueDaoFactoryCommom.OPTR, TypeFichierDispo.class); + xstream.alias(CrueDaoFactoryCommom.OPTG, TypeFichierDispo.class); + xstream.alias(CrueDaoFactoryCommom.OPTI, TypeFichierDispo.class); + xstream.alias(CrueDaoFactoryCommom.PNUM, TypeFichierDispo.class); + xstream.alias(CrueDaoFactoryCommom.DPTI, TypeFichierDispo.class); + xstream.alias(CrueDaoFactoryCommom.DCSP, TypeFichierDispo.class); + xstream.alias(CrueDaoFactoryCommom.DPTG, TypeFichierDispo.class); + xstream.alias(CrueDaoFactoryCommom.DFRT, TypeFichierDispo.class); + xstream.alias(CrueDaoFactoryCommom.DC, TypeFichierDispo.class); + xstream.alias(CrueDaoFactoryCommom.DH, TypeFichierDispo.class); + xstream.registerConverter(new TypeFichierConverter()); + } + + public void initXmlParserForSousModele(XStream xstream ){ + // --Ce fonctionnement ne peut etre ok que dans le cas de la lecture seule. --// + xstream.alias("SousModele", SousModele.class); + xstream.useAttributeFor(SousModele.class, "Nom"); + //xstream.registerConverter(new ReferenceFichierConverter()); + //--Ce fonctionnement ne peut etre ok que dans le cas de la lecture seule.--// + //xstream.alias("Fichier", ReferenceFichier.class); + + + + } + + public void initXmlParserForModele(XStream xstream ){ + // --Ce fonctionnement ne peut etre ok que dans le cas de la lecture seule. --// + xstream.alias("Modele", Modele.class); + xstream.useAttributeFor(Modele.class, "Nom"); + xstream.registerConverter(new ModeleConverter()); + //xstream.registerConverter(new ReferenceFichierConverter()); + //--Ce fonctionnement ne peut etre ok que dans le cas de la lecture seule.--// + //xstream.alias("Fichier", ReferenceFichier.class); + + + + } + + public void initXmlParserForReference(XStream xstream){ + xstream.useAttributeFor(Ref.class, "NomRef"); + xstream.registerConverter(new RefConverter()); + + //-- la reference est utilisee pour toutes ces balises --// + //-- dans la les balsies <FichEtudes> --// + xstream.alias("Fichier", Ref.class); + //-- dans la balise <Modele> --// + xstream.alias("SousModele-ref", Ref.class); + //-- dans la balise <Scenario> --// + xstream.alias("Modele-ref", Ref.class); + //-- dans la balise <Scenario> --// + xstream.alias("RunCourant", Ref.class); + } + + + public void initXmlParserForRun(XStream xstream){ + xstream.alias("Run", Run.class); + xstream.useAttributeFor(Run.class, "Nom"); + xstream.registerConverter(new RunConverter()); + xstream.alias("FichRuns", FichRuns.class); + + //-- gestion des modeles du run --// + xstream.alias("Modele-run",ModeleRun.class); + xstream.useAttributeFor(ModeleRun.class, "NomRef"); + xstream.registerConverter(new ModeleRunConverter()); + xstream.addImplicitCollection(ModeleRun.class, "fichiersRes"); + + //-- gestion des fichiers resultats du modele run --// + xstream.alias(CrueDaoFactoryCommom.RCAL, FichierResultat.class); + xstream.alias(CrueDaoFactoryCommom.RPTG, FichierResultat.class); + xstream.alias(CrueDaoFactoryCommom.RPTI, FichierResultat.class); + xstream.alias(CrueDaoFactoryCommom.RPTR, FichierResultat.class); + xstream.useAttributeFor(FichierResultat.class, "Nom"); + xstream.registerConverter(new FichierResultatConverter()); + + } + + +//-------------------------------------- SCENARIO --------------------------------------// + + public static class ScenarioCourant{ + String NomRef; + } + public static class ScenarioCourantConverter implements SingleValueConverter { + public String toString(Object obj) { + return ((ScenarioCourant) obj).NomRef; } + public Object fromString(String name){ + ScenarioCourant pf=new ScenarioCourant(); + pf.NomRef=name; + return pf; + } + public boolean canConvert(Class type) { + return type.isInstance(ScenarioCourant.class); + }} + + + + public static class Scenario{ + public String Nom; + public String Type; + public String VersionCrue; + public String Commentaire; + public String Creation; + public String DerniereModif; + public String DateCreation; + public List<Ref> FichEtudes; + public List<Ref> Modeles; + public List<Run> Runs; + public Ref RunCourant; + + } + + public static class ScenarioConverter implements SingleValueConverter { + public String toString(Object obj) { + return ((Scenario) obj).Nom; } + public Object fromString(String name){ + Scenario pf=new Scenario(); + pf.Nom=name; + return pf; + } + public boolean canConvert(Class type) { + return type.isInstance(Scenario.class); + }} + //-------------------------------------- Repertoires --------------------------------------// + public static class Repertoire{ + public String Nom; + public String path; + } + public static class RepertoireConverter implements SingleValueConverter { + public String toString(Object obj) { + return ((Repertoire) obj).Nom; } + public Object fromString(String name){ + Repertoire pf=new Repertoire(); + pf.Nom=name; + return pf; + } + public boolean canConvert(Class type) { + return type.isInstance(Repertoire.class); + }} + + + //-------------------------------------- TYPE FICHIER --------------------------------------// + /** + * classe abstraite qui gere tous les differents fichiers disponibles. + * @author Adrien Hadoux + * + */ + public static class TypeFichierDispo{ + public String Nom; + public String Chemin; + /** + * Type du fichier: DRSO,DCSP.... + * est lu au chargement du fichier masi pas \xE0 l'\xE9criture. + */ + private String type=null; + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + } + +// public static class ReferenceFichier{ +// public String NomRef; +// } +// public static class ReferenceFichierConverter implements SingleValueConverter { +// public String toString(Object obj) { +// return ((ReferenceFichier) obj).NomRef; } +// public Object fromString(String name){ +// ReferenceFichier pf=new ReferenceFichier(); +// pf.NomRef=name; +// return pf; +// } +// @Override +// public boolean canConvert(Class type) { +// // TODO Auto-generated method stub +// return type.isInstance(ReferenceFichier.class); +// } +// +// } + + + /** + * Converter pour la classe \xE0 2 attributs. + * Pour les types fichiers mais \xE9galement les references + * @author Adrien Hadoux + * + */ + public class TypeFichierConverter implements Converter{ + + @Override + public void marshal(Object source, HierarchicalStreamWriter writer, + MarshallingContext context) { + if(source instanceof TypeFichierDispo){ + TypeFichierDispo typeFichier = (TypeFichierDispo) source; + // writer.startNode("fullname"); + writer.addAttribute("Nom", typeFichier.Nom); + writer.addAttribute("Chemin", typeFichier.Chemin); + } +// else{ +// ReferenceFichier refFichier = (ReferenceFichier) source; +// // writer.startNode("fullname"); +// writer.addAttribute("NomRef", refFichier.NomRef); +// } + + // writer.endNode(); + } + + public Object unmarshal(HierarchicalStreamReader reader, + UnmarshallingContext context) { + + //-- retrouver le type du node par rapport au nom du node --// + String nom=reader.getNodeName(); + if(reader.getAttribute("Nom")!=null){ + TypeFichierDispo typeFichier=new TypeFichierDispo(); + + typeFichier.Nom=reader.getAttribute("Nom"); + typeFichier.Chemin=reader.getAttribute("Chemin"); + typeFichier.setType(nom); + return typeFichier; + } +// else{ +// ReferenceFichier refFichier = new ReferenceFichier(); +// refFichier.NomRef=reader.getAttribute("NomRef"); +// return refFichier; +// } + return null; + } + + public boolean canConvert(Class type){ + return type.isInstance(TypeFichierDispo.class)/*|| type.isInstance(ReferenceFichier.class)*/; + } + + } + + //-------------------------------------- SousModele --------------------------------------// + public static class SousModele{ + public String Nom; + public String Type; + public String Commentaire; + public String Creation; + public String DerniereModif; + public String DateDerniereModif; + public List<Ref> FichEtudes; + + } + + + + public static class SousModeleConverter implements SingleValueConverter { + public String toString(Object obj) { + return ((SousModele) obj).Nom; } + public Object fromString(String name){ + SousModele pf=new SousModele(); + pf.Nom=name; + return pf; + } + public boolean canConvert(Class type) { + return type.isInstance(SousModele.class); + }} + + +// public static class ReferenceFichierConverter implements SingleValueConverter { +// public String toString(Object obj) { +// return ((ReferenceFichier) obj).NomRef; } +// public Object fromString(String name){ +// ReferenceFichier pf=new ReferenceFichier(); +// pf.NomRef=name; +// return pf; +// } +// public boolean canConvert(Class type) { +// return type.isInstance(ReferenceFichier.class); +// }} + + + //-------------------------------------- SousModele --------------------------------------// + public static class Ref{ + public String NomRef; + + + } + + public static class RefConverter implements SingleValueConverter { + public String toString(Object obj) { + return ((Ref) obj).NomRef; } + public Object fromString(String name){ + Ref pf=new Ref(); + pf.NomRef=name; + return pf; + } + public boolean canConvert(Class type) { + return type.isInstance(Ref.class); + }} + + + public static class Modele{ + public String Nom; + public String Type; + public String Commentaire; + public String Creation; + public String DerniereModif; + public String DateCreation; + public List<Ref> FichEtudes; + public List<Ref> SousModeles; + + } + + public static class ModeleConverter implements SingleValueConverter { + public String toString(Object obj) { + return ((Modele) obj).Nom; } + public Object fromString(String name){ + Modele pf=new Modele(); + pf.Nom=name; + return pf; + } + public boolean canConvert(Class type) { + return type.isInstance(Modele.class); + }} + + + //-------------------------------------- RUNS --------------------------------------// + + public static class Run{ + public String Nom; + public String Commentaire; + public FichRuns FichRuns; + } + + public static class RunConverter implements SingleValueConverter { + public String toString(Object obj) { + return ((Run) obj).Nom; } + public Object fromString(String name){ + Run pf=new Run(); + pf.Nom=name; + return pf; + } + public boolean canConvert(Class type) { + return type.isInstance(Run.class); + }} + + + public static class FichRuns{ + public List<ModeleRun> Modeles; + } + + public static class ModeleRun{ + public String NomRef; + public List<FichierResultat> fichiersRes; + + + } + + public static class ModeleRunConverter implements SingleValueConverter { + public String toString(Object obj) { + return ((ModeleRun) obj).NomRef; } + public Object fromString(String name){ + ModeleRun pf=new ModeleRun(); + pf.NomRef=name; + return pf; + } + public boolean canConvert(Class type) { + return type.isInstance(ModeleRun.class); + }} + + + public static class FichierResultat{ + public String Nom; + } + + public static class FichierResultatConverter implements SingleValueConverter { + public String toString(Object obj) { + return ((FichierResultat) obj).Nom; } + public Object fromString(String name){ + FichierResultat pf=new FichierResultat(); + pf.Nom=name; + return pf; + } + public boolean canConvert(Class type) { + return type.isInstance(FichierResultat.class); + }} + +} Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/validatorXML/valideETU.xsd =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/validatorXML/valideETU.xsd (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/dao/validatorXML/valideETU.xsd 2009-03-17 18:50:18 UTC (rev 4554) @@ -0,0 +1,227 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> + + +<!-- TYPE ScenarioCourant --> + +<xs:complexType name="ScenarioCourant"> + <xs:attribute name="NomRef" type="xs:string"/> +</xs:complexType> + + +<!-- TYPE Repertoires --> + +<xs:complexType name="Repertoire"> + <xs:sequence> + <xs:element name="path" type="xs:string" /> + </xs:sequence> + <xs:attribute name="Nom" type="xs:string"/> +</xs:complexType> + +<xs:complexType name="Repertoires"> + <xs:choice minOccurs="1" maxOccurs="unbounded"> + <xs:element name="Repertoire" type="Repertoire" /> + </xs:choice> +</xs:complexType> + +<!-- Fichier ETUDES --> +<xs:complexType name="TypeFichier"> + <xs:attribute name="Nom" type="xs:string"/> + <xs:attribute name="Chemin" type="xs:string"/> +</xs:complexType> + +<xs:complexType name="FichEtudes"> + <xs:choice minOccurs="1" maxOccurs="unbounded"> + <xs:element name="ORES" type="TypeFichier" /> + <xs:element name="PCAL" type="TypeFichier" /> + <xs:element name="DCLM" type="TypeFichier" /> + <xs:element name="DLHY" type="TypeFichier" /> + <xs:element name="OPTR" type="TypeFichier" /> + <xs:element name="OPTG" type="TypeFichier" /> + <xs:element name="OPTI" type="TypeFichier" /> + <xs:element name="PNUM" type="TypeFichier" /> + <xs:element name="DPTI" type="TypeFichier" /> + <xs:element name="DRSO" type="TypeFichier" /> + <xs:element name="DCSP" type="TypeFichier" /> + <xs:element name="DPTG" type="TypeFichier" /> + <xs:element name="DFRT" type="TypeFichier" /> + <xs:element name="DC" type="TypeFichier" /> + <xs:element name="DH" type="TypeFichier" /> + </xs:choice> +</xs:complexType> + + + +<!-- Sous modeles --> + +<xs:complexType name="SousModele"> + <xs:sequence> + <xs:element name="Type" type="xs:string" /> + <xs:element name="Commentaire" type="xs:string" /> + <xs:element name="Creation" type="xs:string" /> + <xs:element name="DateCreation" type="xs:string" /> + <xs:element name="DerniereModif" type="xs:string" /> + <xs:element name="DateDerniereModif" type="xs:string" /> + <xs:element name="FichEtudes" type="ListeReferencesFichier" /> + </xs:sequence> + <xs:attribute name="Nom" type="xs:string"/> +</xs:complexType> + + + + +<xs:complexType name="SousModeles"> + <xs:choice minOccurs="1" maxOccurs="unbounded"> + <xs:element name="SousModele" type="SousModele" /> + </xs:choice> +</xs:complexType> + + +<!-- MODELES --> +<xs:complexType name=" Modele"> + + <xs:sequence> + <xs:element name="Type" type="xs:string" /> + <xs:element name="Commentaire" type="xs:string" /> + <xs:element name="Creation" type="xs:string" /> + <xs:element name="DateCreation" type="xs:string" /> + <xs:element name="DerniereModif" type="xs:string" /> + <xs:element name="DateDerniereModif" type="xs:string" /> + <xs:element name="FichEtudes" type="ListeReferencesFichier" /> + <xs:element name="SousModeles" type="ListeReferencesSousModele" /> + </xs:sequence> + <xs:attribute name="Nom" type="xs:string"/> +</xs:complexType> + + + + + +<xs:complexType name="Modeles"> + <xs:choice minOccurs="1" maxOccurs="unbounded"> + <xs:element name="Modele" type="Modele" /> + </xs:choice> +</xs:complexType> + +<!-- Scenarios --> + +<xs:complexType name="Scenarios"> + <xs:choice minOccurs="1" maxOccurs="unbounded"> + <xs:element name="Scenario" type="Scenario" /> + </xs:choice> +</xs:complexType> + + +<xs:complexType name=" Scenario"> + + <xs:sequence> + <xs:element name="Type" type="xs:string" /> + <xs:element name="VersionCrue" type="xs:string" /> + <xs:element name="Commentaire" type="xs:string" /> + <xs:element name="Creation" type="xs:string" /> + <xs:element name="DateCreation" type="xs:string" /> + <xs:element name="DerniereModif" type="xs:string" /> + <xs:element name="DateDerniereModif" type="xs:string" /> + <xs:element name="FichEtudes" type="ListeReferencesFichier" /> + <xs:element name="Modeles" type="ListeReferencesModele" /> + <xs:element name="Runs" type="Runs" /> + <xs:element name="RunCourant" type="Reference" /> + + </xs:sequence> + <xs:attribute name="Nom" type="xs:string"/> +</xs:complexType> + + + +<!-- RUNS --> + <xs:complexType name="Runs"> + <xs:choice minOccurs="1" maxOccurs="unbounded"> + <xs:element name="Run" type="Run" /> + </xs:choice> +</xs:complexType> + +<xs:complexType name=" Run"> + <xs:sequence> + <xs:element name="Commentaire" type="xs:string" /> + <xs:element name="FichRuns" type="FichRuns" /> + </xs:sequence> + <xs:attribute name="Nom" type="xs:string"/> +</xs:complexType> + + + <xs:complexType name="FichRuns"> + <xs:choice minOccurs="1" maxOccurs="unbounded"> + <xs:element name="Modeles" type="ModelesRuns" /> + </xs:choice> +</xs:complexType> + + <xs:complexType name="ModelesRuns"> + <xs:choice minOccurs="1" maxOccurs="unbounded"> + <xs:element name="Modele-run" type="ModeleRun" /> + </xs:choice> +</xs:complexType> + +<xs:complexType name=" ModeleRun"> + <xs:choice minOccurs="1" maxOccurs="unbounded"> + <xs:element name="RPTG" type="ModeleResultat" /> + <xs:element name="RPTI" type="ModeleResultat" /> + <xs:element name="RCAL" type="ModeleResultat" /> + <xs:element name="RPTG" type="ModeleResultat" /> + </xs:choice> + <xs:attribute name="Nom" type="xs:string"/> +</xs:complexType> + + + + +<xs:complexType name="ModeleResultat"> + <xs:attribute name="Nom" type="xs:string"/> +</xs:complexType> + + + +<!-- REFERENCE --> + +<xs:complexType name="Reference"> + <xs:attribute name="NomRef" type="xs:string"/> +</xs:complexType> + + +<xs:complexType name="ListeReferencesFichier"> + <xs:choice minOccurs="1" maxOccurs="unbounded"> + <xs:element name="Fichier" type="Reference" /> + </xs:choice> +</xs:complexType> + +<xs:complexType name="ListeReferencesSousModele"> + <xs:choice minOccurs="1" maxOccurs="unbounded"> + <xs:element name="SousModele-ref" type="Reference" /> + </xs:choice> +</xs:complexType> + + +<xs:complexType name="ListeReferencesModele"> + <xs:choice minOccurs="1" maxOccurs="unbounded"> + <xs:element name="Modele-ref" type="Reference" /> + </xs:choice> +</xs:complexType> + +<!-- FICHIER ETU --> + <xs:element name="ETU"> + <xs:complexType> + <xs:sequence> + <xs:element name="Creation" type="xs:string" /> + <xs:element name="DateCreation" type="xs:string" /> + <xs:element name="AuteurDerniereModif" type="xs:string" /> + <xs:element name="DateDerniereModif" type="xs:string" /> + <xs:element name="ScenarioCourant" type="ScenarioCourant" /> + <xs:element name="Repertoires" type="Repertoires" /> + <xs:element name="FichEtudes" type="FichEtudes" /> + <xs:element name="SousModeles" type="SousModeles" /> + <xs:element name="Modeles" type="Modeles" /> + <xs:element name="Rapports" type="xs:string" /> + <xs:element name="Scenarios" type="Scenarios" /> + </xs:sequence> + </xs:complexType> + </xs:element> +</xs:schema> \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/EMHModeleBase.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/EMHModeleBase.java 2009-03-17 18:48:26 UTC (rev 4553) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/EMHModeleBase.java 2009-03-17 18:50:18 UTC (rev 4554) @@ -1,4 +1,7 @@ package main.java.org.fudaa.dodico.crue.metier; + +import java.util.List; + /** * Entit\xE9 correspondant \xE0 la port\xE9e d'un calcul * @author Adrien Hadoux @@ -6,7 +9,12 @@ */ public class EMHModeleBase { + /** + * La liste des sous modeles associ\xE9s au modele. ETU + */ + List<EMHModeleBase> listeSousModeles; + public EMHModeleBase(){ } Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/EMHProjectInfos.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/EMHProjectInfos.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/EMHProjectInfos.java 2009-03-17 18:50:18 UTC (rev 4554) @@ -0,0 +1,114 @@ +package main.java.org.fudaa.dodico.crue.metier; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * Infos relatives au projet et la base de fichiers disponible pour tout le projet. . + * @author Adrien Hadoux + * + */ +public class EMHProjectInfos { + + + protected String versionCrue_; + protected String creation_; + protected String commentaire_; + protected String dateCreation_; + protected String auteurDerniereModif_; + protected String dateDerniereModif_; + + /** + * Contient l'ensemble des fichiers du projet qui seront utilis\xE9s pour r\xE9aliser les chargements des projets. + */ + protected List<FichierCrue> baseFichiersProjets; + + /** + * D\xE9finit les r\xE9pertoires dans lesquels se situent les projets. + * Utilise pour les key, les string static d\xE9clar\xE9es plus bas. + * la value indique le chemin absolu vers le repertoire. + */ + protected Map<String,String> directories; + + /** + * Emplacements des fichiers d'\xE9tudes + */ + public static String FICHETUDES="FICHETUDES"; + /** + * Emplacement des runs + */ + public static String RUNS="RUNS"; + /** + * Emplacemet des rapports + */ + public static String RAPPORTS="RAPPORTS"; + + + + + public List<FichierCrue> getBaseFichiersProjets() { + return baseFichiersProjets; + } + public void setBaseFichiersProjets(List<FichierCrue> listFileAvailable) { + this.baseFichiersProjets = listFileAvailable; + } + public String getCreation() { + return creation_; + } + public void setCreation(String creation) { + creation_ = creation; + } + public String getDateCreation() { + return dateCreation_; + } + public void setDateCreation(String dateCreation) { + dateCreation_ = dateCreation; + } + public String getAuteurDerniereModif() { + return auteurDerniereModif_; + } + public void setAuteurDerniereModif(String auteurDerniereModif) { + auteurDerniereModif_ = auteurDerniereModif; + } + public String getDateDerniereModif() { + return dateDerniereModif_; + } + public void setDateDerniereModif(String dateDerniereModif) { + dateDerniereModif_ = dateDerniereModif; + } + public String getCommentaire() { + return commentaire_; + } + public void setCommentaire(String commentaire) { + this.commentaire_ = commentaire; + } + public String getVersionCrue() { + return versionCrue_; + } + public void setVersionCrue(String versionCrue) { + this.versionCrue_ = versionCrue; + } + + + /** + * Ajoute un fichier a la base de fichier Crue disponibles pour le projet. + * @param file + * @return + */ + public boolean addCrueFileToProject(FichierCrue file){ + if(baseFichiersProjets==null) + baseFichiersProjets=new ArrayList<FichierCrue>(); + if( file !=null && FichierCrue.findById(file.getId(), baseFichiersProjets)==null){ + return baseFichiersProjets.add(file); + } + return false; + } + public Map<String, String> getDirectories() { + return directories; + } + public void setDirectories(Map<String, String> directories) { + this.directories = directories; + } + +} Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/EMHproject.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/EMHproject.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/EMHproject.java 2009-03-17 18:50:18 UTC (rev 4554) @@ -0,0 +1,74 @@ +package main.java.org.fudaa.dodico.crue.metier; + +import java.util.List; + +/** + * Gere un projet EMH. + * Est construit a partir du fichier XML ETU. + * @author Adrien Hadoux + * + */ +public class EMHproject { + + /** + * Infos du projet + */ + EMHProjectInfos infos_; + + + + + /** + * Liste de projets du fichier ETU. + */ + List<EMHScenario> listeScenarios_; + + /** + * Liste des mod\xE8les ETU. + */ + EMHModeleEnchainement listeModeles_; + + /** + * Liste totale des sous mod\xE8les ETU. + */ + EMHModeleEnchainement listeSousModeles_; + + + + + + public EMHProjectInfos getInfos() { + return infos_; + } + + public void setInfos(EMHProjectInfos _infos) { + this.infos_ = _infos; + } + + public List<EMHScenario> getListeScenarios() { + return listeScenarios_; + } + + public void setListeScenarios(List<EMHScenario> listeScenarios) { + this.listeScenarios_ = listeScenarios; + } + + public EMHModeleEnchainement getListeModeles() { + return listeModeles_; + } + + public void setListeModeles(EMHModeleEnchainement listeModeles) { + this.listeModeles_ = listeModeles; + } + + public EMHModeleEnchainement getListeSousModeles() { + return listeSousModeles_; + } + + public void setListeSousModeles(EMHModeleEnchainement listeSousModeles) { + this.listeSousModeles_ = listeSousModeles; + } + + + +} Added: branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/FichierCrue.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/FichierCrue.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/Fudaa-crue/src/main/java/org/fudaa/dodico/crue/metier/FichierCrue.java 2009-03-17 18:50:18 UTC (rev 4554) @@ -0,0 +1,96 @@ +package main.java.org.fudaa.dodico.crue.metier; + +import java.io.File; +import java.util.List; + +/** + * Gere les fichiers Crue d\xE9finis dans le fichier xml ETU. + * un fichier est d\xE9fini par: + * son id unique + * son type + * le chemin vers ce fichier. + * Sert de base de recherche pour lancer \xE0 la demande les diff\xE9rents sc\xE9narios. + * @author Adrien Hadoux + * + */ +public class FichierCrue { + + public FichierCrue(String id, String path, String type) { + super(); + this.id_ = id; + this.path_ = path; + this.type_ = type; + } + + + private String id_; + /** + * le type du fichier. Tous les types sont dispo via la classe CrueDaoFactorxCommom. + */ + String type_; + + String path_; + + + /** + * Retourne le fichier qui contient les infos. + * @return + */ + public File getFichier(){ + if(path_!=null){ + File fichier=new File(path_); + if(fichier.exists()) + return fichier; + } + return null; + } + + + /** + * Retrouve le bon fichier par sa reference. + * @param nomRef + * @param listeFiles + * @return + */ + public static FichierCrue findById(String nomRef, List<FichierCrue> listeFiles){ + if(listeFiles!=null) + for(FichierCrue f:listeFiles){ + if(f.id_.equals(nomRef)) + return f; + } + return null; + } + + + public String getId() { + return id_; + } + + + public void setId(String id) { + this.id_ = id; + } + + + public String getType() { + return type_; + } + + + public void setType(String type) { + this.type_ = type; + } + + + public String getPath() { + return path_; + } + + + public void setPath(String path) { + this.path_ = path; + } + + + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |