Index: /ether_megapoli/trunk/service/implementation/com/ether/EtherServiceImpl.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/ether/EtherServiceImpl.java	(revision 481)
+++ /ether_megapoli/trunk/service/implementation/com/ether/EtherServiceImpl.java	(revision 482)
@@ -25,5 +25,4 @@
 import org.springframework.transaction.annotation.Transactional;
 
-import java.io.File;
 import java.util.ArrayList;
 import java.util.Date;
@@ -550,23 +549,4 @@
     }
 
-    /**
-     * This method moves all dataset's files from download directory to upload directory
-     *
-     * @param jeu
-     * @param downloadDirectory
-     * @param uploadDirectory
-     */
-    public boolean moveFilesFromDownloadToUpload( @NotNull final Jeu jeu, @NotNull final String downloadDirectory, @NotNull final String uploadDirectory )
-            throws ServiceException
-    {
-        if( null == jeu.getCategorie() || null == jeu.getCategorie().getCategorieNom() )
-            throw new ServiceException( ServiceException.ServiceCode.JEU_NOT_CORRECT, "ERROR to move jeu to download directory to upload directory" + jeu );
-
-        final String downloadFilesPath = downloadDirectory + File.separatorChar + jeu.getCategorie().getCategorieNom() + File.separatorChar + jeu.getJeuNom();
-        final String uploadFilesPath = uploadDirectory + File.separatorChar + jeu.getCategorie().getCategorieNom() + File.separatorChar + jeu.getJeuNom();
-
-        return EtherHelper.moveFiles( downloadFilesPath, uploadFilesPath );
-    }
-
     @Required
     public void setPlateformDAO( final PlateformDAO plateformDAO )
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/exceptions/XMLException.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/exceptions/XMLException.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/exceptions/XMLException.java	(revision 482)
@@ -0,0 +1,32 @@
+/*
+ * Created on 23 Janvier. 2007
+ */
+package integration.exceptions;
+
+/**
+ * @author 
+ *
+ * Exception XML
+ */
+public class XMLException extends Exception {
+
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * Construit une XMLException.
+     */
+    public XMLException(Exception e) {
+        super(e);
+    }
+
+    /**
+     * Construit une XMLException.
+     * @param message Message de l'exception.
+     */
+    public XMLException(String message) {
+        super(message);
+    }
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Adresse.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Adresse.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Adresse.java	(revision 482)
@@ -0,0 +1,100 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Adresse generated by hbm2java
+ */
+public class Adresse implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int adresseId;
+
+	private String adresseRue;
+
+	private String adresseZip;
+
+	private String adresseVille;
+
+	private String adressePays;
+
+	private Set<Organisme> organismes = new HashSet<Organisme>(0);
+
+	public Adresse() {
+	}
+
+	public Adresse(int adresseId, String adresseRue, String adresseZip,
+			String adresseVille, String adressePays) {
+		this.adresseId = adresseId;
+		this.adresseRue = adresseRue;
+		this.adresseZip = adresseZip;
+		this.adresseVille = adresseVille;
+		this.adressePays = adressePays;
+	}
+
+	public Adresse(int adresseId, String adresseRue, String adresseZip,
+			String adresseVille, String adressePays, Set<Organisme> organismes) {
+		this.adresseId = adresseId;
+		this.adresseRue = adresseRue;
+		this.adresseZip = adresseZip;
+		this.adresseVille = adresseVille;
+		this.adressePays = adressePays;
+		this.organismes = organismes;
+	}
+
+	public int getAdresseId() {
+		return this.adresseId;
+	}
+
+	public void setAdresseId(int adresseId) {
+		this.adresseId = adresseId;
+	}
+
+	public String getAdresseRue() {
+		return this.adresseRue;
+	}
+
+	public void setAdresseRue(String adresseRue) {
+		this.adresseRue = adresseRue;
+	}
+
+	public String getAdresseZip() {
+		return this.adresseZip;
+	}
+
+	public void setAdresseZip(String adresseZip) {
+		this.adresseZip = adresseZip;
+	}
+
+	public String getAdresseVille() {
+		return this.adresseVille;
+	}
+
+	public void setAdresseVille(String adresseVille) {
+		this.adresseVille = adresseVille;
+	}
+
+	public String getAdressePays() {
+		return this.adressePays;
+	}
+
+	public void setAdressePays(String adressePays) {
+		this.adressePays = adressePays;
+	}
+
+	public Set<Organisme> getOrganismes() {
+		return this.organismes;
+	}
+
+	public void setOrganismes(Set<Organisme> organismes) {
+		this.organismes = organismes;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Bilan.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Bilan.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Bilan.java	(revision 482)
@@ -0,0 +1,245 @@
+package integration.hibernate;
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+import java.util.Date;
+
+/**
+ * Bilan generated by hbm2java
+ */
+
+public class Bilan implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int bilanId;
+
+	private Capteur capteur;
+
+	private Plateforme plateforme;
+
+	private Parametre parametre;
+
+	private Jeu jeu;
+
+	private Date bilanDated;
+
+	private Date bilanDatef;
+
+	private Integer bilanFreq;
+
+	private Integer bilanLatmin;
+
+	private Integer bilanLatmax;
+
+	private Integer bilanLonmin;
+
+	private Integer bilanLonmax;
+
+	private Integer bilanAltmin;
+
+	private Integer bilanAltmax;
+
+	private Integer bilanHsmin;
+
+	private Integer bilanHsmax;
+
+	private Double bilanValmin;
+
+	private Double bilanValmax;
+
+	private Integer bilanNbval;
+
+	public Bilan() {
+	}
+
+	public Bilan(int bilanId, Capteur capteur, Plateforme plateforme,
+			Parametre parametre, Jeu jeu) {
+		this.bilanId = bilanId;
+		this.capteur = capteur;
+		this.plateforme = plateforme;
+		this.parametre = parametre;
+		this.jeu = jeu;
+	}
+
+	public Bilan(int bilanId, Capteur capteur, Plateforme plateforme,
+			Parametre parametre, Jeu jeu, Date bilanDated, Date bilanDatef,
+			Integer bilanFreq, Integer bilanLatmin, Integer bilanLatmax,
+			Integer bilanLonmin, Integer bilanLonmax, Integer bilanAltmin,
+			Integer bilanAltmax, Integer bilanHsmin, Integer bilanHsmax,
+			Double bilanValmin, Double bilanValmax, Integer bilanNbval) {
+		this.bilanId = bilanId;
+		this.capteur = capteur;
+		this.plateforme = plateforme;
+		this.parametre = parametre;
+		this.jeu = jeu;
+		this.bilanDated = bilanDated;
+		this.bilanDatef = bilanDatef;
+		this.bilanFreq = bilanFreq;
+		this.bilanLatmin = bilanLatmin;
+		this.bilanLatmax = bilanLatmax;
+		this.bilanLonmin = bilanLonmin;
+		this.bilanLonmax = bilanLonmax;
+		this.bilanAltmin = bilanAltmin;
+		this.bilanAltmax = bilanAltmax;
+		this.bilanHsmin = bilanHsmin;
+		this.bilanHsmax = bilanHsmax;
+		this.bilanValmin = bilanValmin;
+		this.bilanValmax = bilanValmax;
+		this.bilanNbval = bilanNbval;
+	}
+
+	public int getBilanId() {
+		return this.bilanId;
+	}
+
+	public void setBilanId(int bilanId) {
+		this.bilanId = bilanId;
+	}
+
+	public Capteur getCapteur() {
+		return this.capteur;
+	}
+
+	public void setCapteur(Capteur capteur) {
+		this.capteur = capteur;
+	}
+
+	public Plateforme getPlateforme() {
+		return this.plateforme;
+	}
+
+	public void setPlateforme(Plateforme plateforme) {
+		this.plateforme = plateforme;
+	}
+
+	public Parametre getParametre() {
+		return this.parametre;
+	}
+
+	public void setParametre(Parametre parametre) {
+		this.parametre = parametre;
+	}
+
+	public Jeu getJeu() {
+		return this.jeu;
+	}
+
+	public void setJeu(Jeu jeu) {
+		this.jeu = jeu;
+	}
+
+	public Date getBilanDated() {
+		return this.bilanDated;
+	}
+
+	public void setBilanDated(Date bilanDated) {
+		this.bilanDated = bilanDated;
+	}
+
+	public Date getBilanDatef() {
+		return this.bilanDatef;
+	}
+
+	public void setBilanDatef(Date bilanDatef) {
+		this.bilanDatef = bilanDatef;
+	}
+
+	public Integer getBilanFreq() {
+		return this.bilanFreq;
+	}
+
+	public void setBilanFreq(Integer bilanFreq) {
+		this.bilanFreq = bilanFreq;
+	}
+
+	public Integer getBilanLatmin() {
+		return this.bilanLatmin;
+	}
+
+	public void setBilanLatmin(Integer bilanLatmin) {
+		this.bilanLatmin = bilanLatmin;
+	}
+
+	public Integer getBilanLatmax() {
+		return this.bilanLatmax;
+	}
+
+	public void setBilanLatmax(Integer bilanLatmax) {
+		this.bilanLatmax = bilanLatmax;
+	}
+
+	public Integer getBilanLonmin() {
+		return this.bilanLonmin;
+	}
+
+	public void setBilanLonmin(Integer bilanLonmin) {
+		this.bilanLonmin = bilanLonmin;
+	}
+
+	public Integer getBilanLonmax() {
+		return this.bilanLonmax;
+	}
+
+	public void setBilanLonmax(Integer bilanLonmax) {
+		this.bilanLonmax = bilanLonmax;
+	}
+
+	public Integer getBilanAltmin() {
+		return this.bilanAltmin;
+	}
+
+	public void setBilanAltmin(Integer bilanAltmin) {
+		this.bilanAltmin = bilanAltmin;
+	}
+
+	public Integer getBilanAltmax() {
+		return this.bilanAltmax;
+	}
+
+	public void setBilanAltmax(Integer bilanAltmax) {
+		this.bilanAltmax = bilanAltmax;
+	}
+
+	public Integer getBilanHsmin() {
+		return this.bilanHsmin;
+	}
+
+	public void setBilanHsmin(Integer bilanHsmin) {
+		this.bilanHsmin = bilanHsmin;
+	}
+
+	public Integer getBilanHsmax() {
+		return this.bilanHsmax;
+	}
+
+	public void setBilanHsmax(Integer bilanHsmax) {
+		this.bilanHsmax = bilanHsmax;
+	}
+
+	public Double getBilanValmin() {
+		return this.bilanValmin;
+	}
+
+	public void setBilanValmin(Double bilanValmin) {
+		this.bilanValmin = bilanValmin;
+	}
+
+	public Double getBilanValmax() {
+		return this.bilanValmax;
+	}
+
+	public void setBilanValmax(Double bilanValmax) {
+		this.bilanValmax = bilanValmax;
+	}
+
+	public Integer getBilanNbval() {
+		return this.bilanNbval;
+	}
+
+	public void setBilanNbval(Integer bilanNbval) {
+		this.bilanNbval = bilanNbval;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Capteur.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Capteur.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Capteur.java	(revision 482)
@@ -0,0 +1,171 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Capteur generated by hbm2java
+ */
+public class Capteur implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int capteurId;
+
+	private Fabriquant fabriquant;
+
+	private TypeCapteur typeCapteur;
+
+	private Commentaire commentaire;
+
+	private String capteurModele;
+
+	private String capteurNumserie;
+
+	private String capteurEtalonnage;
+
+	private Set<Valeur> valeurs = new HashSet<Valeur>(0);
+
+	private Set<Bilan> bilans = new HashSet<Bilan>(0);
+
+	private Set<Jeu> jeus = new HashSet<Jeu>(0);
+
+	private Set<Plateforme> plateformes = new HashSet<Plateforme>(0);
+
+	private Set<Parametre> parametres = new HashSet<Parametre>(0);
+
+	public Capteur() {
+	}
+
+	public Capteur(int capteurId, Fabriquant fabriquant,
+			TypeCapteur typeCapteur, String capteurModele,
+			String capteurNumserie) {
+		this.capteurId = capteurId;
+		this.fabriquant = fabriquant;
+		this.typeCapteur = typeCapteur;
+		this.capteurModele = capteurModele;
+		this.capteurNumserie = capteurNumserie;
+	}
+
+	public Capteur(int capteurId, Fabriquant fabriquant,
+			TypeCapteur typeCapteur, Commentaire commentaire,
+			String capteurModele, String capteurNumserie,
+			String capteurEtalonnage, Set<Valeur> valeurs, Set<Bilan> bilans,
+			Set<Jeu> jeus, Set<Plateforme> plateformes,
+			Set<Parametre> parametres) {
+		this.capteurId = capteurId;
+		this.fabriquant = fabriquant;
+		this.typeCapteur = typeCapteur;
+		this.commentaire = commentaire;
+		this.capteurModele = capteurModele;
+		this.capteurNumserie = capteurNumserie;
+		this.capteurEtalonnage = capteurEtalonnage;
+		this.valeurs = valeurs;
+		this.bilans = bilans;
+		this.jeus = jeus;
+		this.plateformes = plateformes;
+		this.parametres = parametres;
+	}
+
+	public int getCapteurId() {
+		return this.capteurId;
+	}
+
+	public void setCapteurId(int capteurId) {
+		this.capteurId = capteurId;
+	}
+
+	public Fabriquant getFabriquant() {
+		return this.fabriquant;
+	}
+
+	public void setFabriquant(Fabriquant fabriquant) {
+		this.fabriquant = fabriquant;
+	}
+
+	public TypeCapteur getTypeCapteur() {
+		return this.typeCapteur;
+	}
+
+	public void setTypeCapteur(TypeCapteur typeCapteur) {
+		this.typeCapteur = typeCapteur;
+	}
+
+	public Commentaire getCommentaire() {
+		return this.commentaire;
+	}
+
+	public void setCommentaire(Commentaire commentaire) {
+		this.commentaire = commentaire;
+	}
+
+	public String getCapteurModele() {
+		return this.capteurModele;
+	}
+
+	public void setCapteurModele(String capteurModele) {
+		this.capteurModele = capteurModele;
+	}
+
+	public String getCapteurNumserie() {
+		return this.capteurNumserie;
+	}
+
+	public void setCapteurNumserie(String capteurNumserie) {
+		this.capteurNumserie = capteurNumserie;
+	}
+
+	public String getCapteurEtalonnage() {
+		return this.capteurEtalonnage;
+	}
+
+	public void setCapteurEtalonnage(String capteurEtalonnage) {
+		this.capteurEtalonnage = capteurEtalonnage;
+	}
+
+	public Set<Valeur> getValeurs() {
+		return this.valeurs;
+	}
+
+	public void setValeurs(Set<Valeur> valeurs) {
+		this.valeurs = valeurs;
+	}
+
+	public Set<Bilan> getBilans() {
+		return this.bilans;
+	}
+
+	public void setBilans(Set<Bilan> bilans) {
+		this.bilans = bilans;
+	}
+
+	public Set<Jeu> getJeus() {
+		return this.jeus;
+	}
+
+	public void setJeus(Set<Jeu> jeus) {
+		this.jeus = jeus;
+	}
+
+	public Set<Plateforme> getPlateformes() {
+		return this.plateformes;
+	}
+
+	public void setPlateformes(Set<Plateforme> plateformes) {
+		this.plateformes = plateformes;
+	}
+
+	public Set<Parametre> getParametres() {
+		return this.parametres;
+	}
+
+	public void setParametres(Set<Parametre> parametres) {
+		this.parametres = parametres;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Categorie.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Categorie.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Categorie.java	(revision 482)
@@ -0,0 +1,62 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Categorie generated by hbm2java
+ */
+public class Categorie implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int categorieId;
+
+	private String categorieNom;
+
+	private Set<Jeu> jeus = new HashSet<Jeu>(0);
+
+	public Categorie() {
+	}
+
+	public Categorie(int categorieId, String categorieNom) {
+		this.categorieId = categorieId;
+		this.categorieNom = categorieNom;
+	}
+
+	public Categorie(int categorieId, String categorieNom, Set<Jeu> jeus) {
+		this.categorieId = categorieId;
+		this.categorieNom = categorieNom;
+		this.jeus = jeus;
+	}
+
+	public int getCategorieId() {
+		return this.categorieId;
+	}
+
+	public void setCategorieId(int categorieId) {
+		this.categorieId = categorieId;
+	}
+
+	public String getCategorieNom() {
+		return this.categorieNom;
+	}
+
+	public void setCategorieNom(String categorieNom) {
+		this.categorieNom = categorieNom;
+	}
+
+	public Set<Jeu> getJeus() {
+		return this.jeus;
+	}
+
+	public void setJeus(Set<Jeu> jeus) {
+		this.jeus = jeus;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/CategorieParam.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/CategorieParam.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/CategorieParam.java	(revision 482)
@@ -0,0 +1,76 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * CategorieParam generated by hbm2java
+ */
+public class CategorieParam implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int categorieParamId;
+
+	private String categorieParamNom;
+
+	private String categorieParamDomaine;
+
+	private Set<Parametre> parametres = new HashSet<Parametre>(0);
+
+	public CategorieParam() {
+	}
+
+	public CategorieParam(int categorieParamId, String categorieParamNom,
+			String categorieParamDomaine) {
+		this.categorieParamId = categorieParamId;
+		this.categorieParamNom = categorieParamNom;
+		this.categorieParamDomaine = categorieParamDomaine;
+	}
+
+	public CategorieParam(int categorieParamId, String categorieParamNom,
+			String categorieParamDomaine, Set<Parametre> parametres) {
+		this.categorieParamId = categorieParamId;
+		this.categorieParamNom = categorieParamNom;
+		this.categorieParamDomaine = categorieParamDomaine;
+		this.parametres = parametres;
+	}
+
+	public int getCategorieParamId() {
+		return this.categorieParamId;
+	}
+
+	public void setCategorieParamId(int categorieParamId) {
+		this.categorieParamId = categorieParamId;
+	}
+
+	public String getCategorieParamNom() {
+		return this.categorieParamNom;
+	}
+
+	public void setCategorieParamNom(String categorieParamNom) {
+		this.categorieParamNom = categorieParamNom;
+	}
+
+	public String getCategorieParamDomaine() {
+		return this.categorieParamDomaine;
+	}
+
+	public void setCategorieParamDomaine(String categorieParamDomaine) {
+		this.categorieParamDomaine = categorieParamDomaine;
+	}
+
+	public Set<Parametre> getParametres() {
+		return this.parametres;
+	}
+
+	public void setParametres(Set<Parametre> parametres) {
+		this.parametres = parametres;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Commentaire.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Commentaire.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Commentaire.java	(revision 482)
@@ -0,0 +1,190 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Commentaire generated by hbm2java
+ */
+public class Commentaire implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int commentaireId;
+
+	private Langue langue;
+
+	private String commentaireTxt;
+
+	private String commentaireUrl;
+
+	private Set<Plateforme> plateformes = new HashSet<Plateforme>(0);
+
+	private Set<Parametre> parametres = new HashSet<Parametre>(0);
+
+	private Set<Jeu> jeus = new HashSet<Jeu>(0);
+
+	private Set<Organisme> organismes = new HashSet<Organisme>(0);
+
+	private Set<Capteur> capteurs = new HashSet<Capteur>(0);
+
+	private Set<TypeCapteur> typeCapteurs = new HashSet<TypeCapteur>(0);
+
+	private Set<Sequence> sequences = new HashSet<Sequence>(0);
+
+	private Set<Zone> zones = new HashSet<Zone>(0);
+
+	private Set<Personne> personnes = new HashSet<Personne>(0);
+
+	private Set<TypePlateforme> typePlateformes = new HashSet<TypePlateforme>(0);
+
+	public Commentaire() {
+	}
+
+	public Commentaire(int commentaireId, Langue langue, String commentaireTxt) {
+		this.commentaireId = commentaireId;
+		this.langue = langue;
+		this.commentaireTxt = commentaireTxt;
+	}
+
+	public Commentaire(int commentaireId, Langue langue, String commentaireTxt,
+			String commentaireUrl, Set<Plateforme> plateformes,
+			Set<Parametre> parametres, Set<Jeu> jeus,
+			Set<Organisme> organismes, Set<Capteur> capteurs,
+			Set<TypeCapteur> typeCapteurs, Set<Sequence> sequences,
+			Set<Zone> zones, Set<Personne> personnes,
+			Set<TypePlateforme> typePlateformes) {
+		this.commentaireId = commentaireId;
+		this.langue = langue;
+		this.commentaireTxt = commentaireTxt;
+		this.commentaireUrl = commentaireUrl;
+		this.plateformes = plateformes;
+		this.parametres = parametres;
+		this.jeus = jeus;
+		this.organismes = organismes;
+		this.capteurs = capteurs;
+		this.typeCapteurs = typeCapteurs;
+		this.sequences = sequences;
+		this.zones = zones;
+		this.personnes = personnes;
+		this.typePlateformes = typePlateformes;
+	}
+
+	public int getCommentaireId() {
+		return this.commentaireId;
+	}
+
+	public void setCommentaireId(int commentaireId) {
+		this.commentaireId = commentaireId;
+	}
+
+	public Langue getLangue() {
+		return this.langue;
+	}
+
+	public void setLangue(Langue langue) {
+		this.langue = langue;
+	}
+
+	public String getCommentaireTxt() {
+		return this.commentaireTxt;
+	}
+
+	public void setCommentaireTxt(String commentaireTxt) {
+		this.commentaireTxt = commentaireTxt;
+	}
+
+	public String getCommentaireUrl() {
+		return this.commentaireUrl;
+	}
+
+	public void setCommentaireUrl(String commentaireUrl) {
+		this.commentaireUrl = commentaireUrl;
+	}
+
+	public Set<Plateforme> getPlateformes() {
+		return this.plateformes;
+	}
+
+	public void setPlateformes(Set<Plateforme> plateformes) {
+		this.plateformes = plateformes;
+	}
+
+	public Set<Parametre> getParametres() {
+		return this.parametres;
+	}
+
+	public void setParametres(Set<Parametre> parametres) {
+		this.parametres = parametres;
+	}
+
+	public Set<Jeu> getJeus() {
+		return this.jeus;
+	}
+
+	public void setJeus(Set<Jeu> jeus) {
+		this.jeus = jeus;
+	}
+
+	public Set<Organisme> getOrganismes() {
+		return this.organismes;
+	}
+
+	public void setOrganismes(Set<Organisme> organismes) {
+		this.organismes = organismes;
+	}
+
+	public Set<Capteur> getCapteurs() {
+		return this.capteurs;
+	}
+
+	public void setCapteurs(Set<Capteur> capteurs) {
+		this.capteurs = capteurs;
+	}
+
+	public Set<TypeCapteur> getTypeCapteurs() {
+		return this.typeCapteurs;
+	}
+
+	public void setTypeCapteurs(Set<TypeCapteur> typeCapteurs) {
+		this.typeCapteurs = typeCapteurs;
+	}
+
+	public Set<Sequence> getSequences() {
+		return this.sequences;
+	}
+
+	public void setSequences(Set<Sequence> sequences) {
+		this.sequences = sequences;
+	}
+
+	public Set<Zone> getZones() {
+		return this.zones;
+	}
+
+	public void setZones(Set<Zone> zones) {
+		this.zones = zones;
+	}
+
+	public Set<Personne> getPersonnes() {
+		return this.personnes;
+	}
+
+	public void setPersonnes(Set<Personne> personnes) {
+		this.personnes = personnes;
+	}
+
+	public Set<TypePlateforme> getTypePlateformes() {
+		return this.typePlateformes;
+	}
+
+	public void setTypePlateformes(Set<TypePlateforme> typePlateformes) {
+		this.typePlateformes = typePlateformes;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/DeltaMesure.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/DeltaMesure.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/DeltaMesure.java	(revision 482)
@@ -0,0 +1,112 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * DeltaMesure generated by hbm2java
+ */
+public class DeltaMesure implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int deltaMesureId;
+
+	private int deltaMesureDate;
+
+	private int deltaMesureLat;
+
+	private int deltaMesureLon;
+
+	private int deltaMesureAlt;
+
+	private Integer deltaMesureHs;
+
+	private Set<Mesure> mesures = new HashSet<Mesure>(0);
+
+	public DeltaMesure() {
+	}
+
+	public DeltaMesure(int deltaMesureId, int deltaMesureDate,
+			int deltaMesureLat, int deltaMesureLon, int deltaMesureAlt) {
+		this.deltaMesureId = deltaMesureId;
+		this.deltaMesureDate = deltaMesureDate;
+		this.deltaMesureLat = deltaMesureLat;
+		this.deltaMesureLon = deltaMesureLon;
+		this.deltaMesureAlt = deltaMesureAlt;
+	}
+
+	public DeltaMesure(int deltaMesureId, int deltaMesureDate,
+			int deltaMesureLat, int deltaMesureLon, int deltaMesureAlt,
+			Integer deltaMesureHs, Set<Mesure> mesures) {
+		this.deltaMesureId = deltaMesureId;
+		this.deltaMesureDate = deltaMesureDate;
+		this.deltaMesureLat = deltaMesureLat;
+		this.deltaMesureLon = deltaMesureLon;
+		this.deltaMesureAlt = deltaMesureAlt;
+		this.deltaMesureHs = deltaMesureHs;
+		this.mesures = mesures;
+	}
+
+	public int getDeltaMesureId() {
+		return this.deltaMesureId;
+	}
+
+	public void setDeltaMesureId(int deltaMesureId) {
+		this.deltaMesureId = deltaMesureId;
+	}
+
+	public int getDeltaMesureDate() {
+		return this.deltaMesureDate;
+	}
+
+	public void setDeltaMesureDate(int deltaMesureDate) {
+		this.deltaMesureDate = deltaMesureDate;
+	}
+
+	public int getDeltaMesureLat() {
+		return this.deltaMesureLat;
+	}
+
+	public void setDeltaMesureLat(int deltaMesureLat) {
+		this.deltaMesureLat = deltaMesureLat;
+	}
+
+	public int getDeltaMesureLon() {
+		return this.deltaMesureLon;
+	}
+
+	public void setDeltaMesureLon(int deltaMesureLon) {
+		this.deltaMesureLon = deltaMesureLon;
+	}
+
+	public int getDeltaMesureAlt() {
+		return this.deltaMesureAlt;
+	}
+
+	public void setDeltaMesureAlt(int deltaMesureAlt) {
+		this.deltaMesureAlt = deltaMesureAlt;
+	}
+
+	public Integer getDeltaMesureHs() {
+		return this.deltaMesureHs;
+	}
+
+	public void setDeltaMesureHs(Integer deltaMesureHs) {
+		this.deltaMesureHs = deltaMesureHs;
+	}
+
+	public Set<Mesure> getMesures() {
+		return this.mesures;
+	}
+
+	public void setMesures(Set<Mesure> mesures) {
+		this.mesures = mesures;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Fabriquant.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Fabriquant.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Fabriquant.java	(revision 482)
@@ -0,0 +1,63 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Fabriquant generated by hbm2java
+ */
+public class Fabriquant implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int fabriquantId;
+
+	private String fabriquantNom;
+
+	private Set<Capteur> capteurs = new HashSet<Capteur>(0);
+
+	public Fabriquant() {
+	}
+
+	public Fabriquant(int fabriquantId, String fabriquantNom) {
+		this.fabriquantId = fabriquantId;
+		this.fabriquantNom = fabriquantNom;
+	}
+
+	public Fabriquant(int fabriquantId, String fabriquantNom,
+			Set<Capteur> capteurs) {
+		this.fabriquantId = fabriquantId;
+		this.fabriquantNom = fabriquantNom;
+		this.capteurs = capteurs;
+	}
+
+	public int getFabriquantId() {
+		return this.fabriquantId;
+	}
+
+	public void setFabriquantId(int fabriquantId) {
+		this.fabriquantId = fabriquantId;
+	}
+
+	public String getFabriquantNom() {
+		return this.fabriquantNom;
+	}
+
+	public void setFabriquantNom(String fabriquantNom) {
+		this.fabriquantNom = fabriquantNom;
+	}
+
+	public Set<Capteur> getCapteurs() {
+		return this.capteurs;
+	}
+
+	public void setCapteurs(Set<Capteur> capteurs) {
+		this.capteurs = capteurs;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Fichier.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Fichier.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Fichier.java	(revision 482)
@@ -0,0 +1,100 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.math.BigDecimal;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Fichier generated by hbm2java
+ */
+public class Fichier implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int fichierId;
+
+	private Jeu jeu;
+
+	private String fichierNom;
+
+	private String fichierChemin;
+
+	private BigDecimal fichierTaille;
+
+	private Set<Mesure> mesures = new HashSet<Mesure>(0);
+
+	public Fichier() {
+	}
+
+	public Fichier(int fichierId, Jeu jeu, String fichierNom,
+			BigDecimal fichierTaille) {
+		this.fichierId = fichierId;
+		this.jeu = jeu;
+		this.fichierNom = fichierNom;
+		this.fichierTaille = fichierTaille;
+	}
+
+	public Fichier(int fichierId, Jeu jeu, String fichierNom,
+			String fichierChemin, BigDecimal fichierTaille, Set<Mesure> mesures) {
+		this.fichierId = fichierId;
+		this.jeu = jeu;
+		this.fichierNom = fichierNom;
+		this.fichierChemin = fichierChemin;
+		this.fichierTaille = fichierTaille;
+		this.mesures = mesures;
+	}
+
+	public int getFichierId() {
+		return this.fichierId;
+	}
+
+	public void setFichierId(int fichierId) {
+		this.fichierId = fichierId;
+	}
+
+	public Jeu getJeu() {
+		return this.jeu;
+	}
+
+	public void setJeu(Jeu jeu) {
+		this.jeu = jeu;
+	}
+
+	public String getFichierNom() {
+		return this.fichierNom;
+	}
+
+	public void setFichierNom(String fichierNom) {
+		this.fichierNom = fichierNom;
+	}
+
+	public String getFichierChemin() {
+		return this.fichierChemin;
+	}
+
+	public void setFichierChemin(String fichierChemin) {
+		this.fichierChemin = fichierChemin;
+	}
+
+	public BigDecimal getFichierTaille() {
+		return this.fichierTaille;
+	}
+
+	public void setFichierTaille(BigDecimal fichierTaille) {
+		this.fichierTaille = fichierTaille;
+	}
+
+	public Set<Mesure> getMesures() {
+		return this.mesures;
+	}
+
+	public void setMesures(Set<Mesure> mesures) {
+		this.mesures = mesures;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Flag.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Flag.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Flag.java	(revision 482)
@@ -0,0 +1,102 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Flag generated by hbm2java
+ */
+public class Flag implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int flagId;
+
+	private String flagNom;
+
+	private Set<Valeur> valeursForValiditeFlag = new HashSet<Valeur>(0);
+
+	private Set<Localisation> localisationsForLatlonFlag = new HashSet<Localisation>(
+			0);
+
+	private Set<Valeur> valeursForValeurFlag = new HashSet<Valeur>(0);
+
+	private Set<Localisation> localisationsForAltitudeFlag = new HashSet<Localisation>(
+			0);
+
+	public Flag() {
+	}
+
+	public Flag(int flagId, String flagNom) {
+		this.flagId = flagId;
+		this.flagNom = flagNom;
+	}
+
+	public Flag(int flagId, String flagNom, Set<Valeur> valeursForValiditeFlag,
+			Set<Localisation> localisationsForLatlonFlag,
+			Set<Valeur> valeursForValeurFlag,
+			Set<Localisation> localisationsForAltitudeFlag) {
+		this.flagId = flagId;
+		this.flagNom = flagNom;
+		this.valeursForValiditeFlag = valeursForValiditeFlag;
+		this.localisationsForLatlonFlag = localisationsForLatlonFlag;
+		this.valeursForValeurFlag = valeursForValeurFlag;
+		this.localisationsForAltitudeFlag = localisationsForAltitudeFlag;
+	}
+
+	public int getFlagId() {
+		return this.flagId;
+	}
+
+	public void setFlagId(int flagId) {
+		this.flagId = flagId;
+	}
+
+	public String getFlagNom() {
+		return this.flagNom;
+	}
+
+	public void setFlagNom(String flagNom) {
+		this.flagNom = flagNom;
+	}
+
+	public Set<Valeur> getValeursForValiditeFlag() {
+		return this.valeursForValiditeFlag;
+	}
+
+	public void setValeursForValiditeFlag(Set<Valeur> valeursForValiditeFlag) {
+		this.valeursForValiditeFlag = valeursForValiditeFlag;
+	}
+
+	public Set<Localisation> getLocalisationsForLatlonFlag() {
+		return this.localisationsForLatlonFlag;
+	}
+
+	public void setLocalisationsForLatlonFlag(
+			Set<Localisation> localisationsForLatlonFlag) {
+		this.localisationsForLatlonFlag = localisationsForLatlonFlag;
+	}
+
+	public Set<Valeur> getValeursForValeurFlag() {
+		return this.valeursForValeurFlag;
+	}
+
+	public void setValeursForValeurFlag(Set<Valeur> valeursForValeurFlag) {
+		this.valeursForValeurFlag = valeursForValeurFlag;
+	}
+
+	public Set<Localisation> getLocalisationsForAltitudeFlag() {
+		return this.localisationsForAltitudeFlag;
+	}
+
+	public void setLocalisationsForAltitudeFlag(
+			Set<Localisation> localisationsForAltitudeFlag) {
+		this.localisationsForAltitudeFlag = localisationsForAltitudeFlag;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/HibernateSessionFactory.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/HibernateSessionFactory.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/HibernateSessionFactory.java	(revision 482)
@@ -0,0 +1,85 @@
+package integration.hibernate;
+
+import org.hibernate.HibernateException;
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.cfg.Configuration;
+
+
+/**
+ * Configures and provides access to Hibernate sessions, tied to the
+ * current thread of execution.  Follows the Thread Local Session
+ * pattern, see {@link http://hibernate.org/42.html}.
+ */
+public class HibernateSessionFactory {
+
+    /** 
+     * Location of hibernate.cfg.xml file.
+     * NOTICE: Location should be on the classpath as Hibernate uses
+     * #resourceAsStream style lookup for its configuration file. That
+     * is place the config file in a Java package - the default location
+     * is the default Java package.<br><br>
+     * Examples: <br>
+     * <code>CONFIG_FILE_LOCATION = "/hibernate.conf.xml". 
+     * CONFIG_FILE_LOCATION = "/com/foo/bar/myhiberstuff.conf.xml".</code> 
+     */
+    private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";
+
+    /** Holds a single instance of Session */
+    private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
+
+    /** The single instance of hibernate configuration */
+    private static final Configuration cfg = new Configuration();
+
+    /** The single instance of hibernate SessionFactory */
+    private static SessionFactory sessionFactory;
+
+    /**
+     * Returns the ThreadLocal Session instance.  Lazy initialize
+     * the <code>SessionFactory</code> if needed.
+     *
+     *  @return Session
+     *  @throws HibernateException
+     */
+    public static Session currentSession() throws HibernateException {
+        Session session = (Session) threadLocal.get();
+
+        if (session == null) {
+            if (sessionFactory == null) {
+                try {
+                    cfg.configure(CONFIG_FILE_LOCATION);
+                    sessionFactory = cfg.buildSessionFactory();
+                }
+                catch (Exception e) {
+                    System.err.println("%%%% Error Creating SessionFactory %%%%");
+                    e.printStackTrace();
+                }
+            }
+            session = sessionFactory.openSession();
+            threadLocal.set(session);
+        }
+
+        return session;
+    }
+
+    /**
+     *  Close the single hibernate session instance.
+     *
+     *  @throws HibernateException
+     */
+    public static void closeSession() throws HibernateException {
+        Session session = (Session) threadLocal.get();
+        threadLocal.set(null);
+
+        if (session != null) {
+            session.close();
+        }
+    }
+
+    /**
+     * Default constructor.
+     */
+    private HibernateSessionFactory() {
+    }
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Jeu.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Jeu.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Jeu.java	(revision 482)
@@ -0,0 +1,355 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Jeu generated by hbm2java
+ */
+public class Jeu implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int jeuId;
+
+	private Personne personneByPiId;
+
+	private Personne personneByContactId;
+
+	private Personne personneByIntegrateurId;
+
+	private Organisme organisme;
+
+	private Commentaire commentaire;
+
+	private Categorie categorie;
+
+	private String jeuNom;
+
+	private Date jeuDated;
+
+	private Date jeuDatef;
+
+	private Integer jeuLatmin;
+
+	private Integer jeuLatmax;
+
+	private Integer jeuLonmin;
+
+	private Integer jeuLonmax;
+
+	private Integer jeuAltmin;
+
+	private Integer jeuAltmax;
+
+	private Integer jeuHsmin;
+
+	private Integer jeuHsmax;
+
+	private Date jeuDateinser;
+
+	private Date jeuDatemodif;
+
+	private String jeuNumversion;
+	
+	private Set<Plateforme> plateformes = new HashSet<Plateforme>(0);
+
+	private Set<Bilan> bilans = new HashSet<Bilan>(0);
+
+	private Set<Capteur> capteurs = new HashSet<Capteur>(0);
+
+	private Set<Parametre> parametres = new HashSet<Parametre>(0);
+
+	private Set<Sequence> sequences = new HashSet<Sequence>(0);
+
+	private Set<Fichier> fichiers = new HashSet<Fichier>(0);
+
+	private Set<RequeteNbvalsJeu> requeteNbvalsJeus = new HashSet<RequeteNbvalsJeu>(
+			0);
+
+	public Jeu() {
+	}
+
+	public Jeu(int jeuId, Personne personneByContactId,
+			Personne personneByIntegrateurId, Organisme organisme,
+			Categorie categorie, String jeuNom, Date jeuDateinser) {
+		this.jeuId = jeuId;
+		this.personneByContactId = personneByContactId;
+		this.personneByIntegrateurId = personneByIntegrateurId;
+		this.organisme = organisme;
+		this.categorie = categorie;
+		this.jeuNom = jeuNom;
+		this.jeuDateinser = jeuDateinser;
+	}
+
+	public Jeu(int jeuId, Personne personneByPiId,
+			Personne personneByContactId, Personne personneByIntegrateurId,
+			Organisme organisme, Commentaire commentaire, Categorie categorie,
+			String jeuNom, Date jeuDated, Date jeuDatef, Integer jeuLatmin,
+			Integer jeuLatmax, Integer jeuLonmin, Integer jeuLonmax,
+			Integer jeuAltmin, Integer jeuAltmax, Integer jeuHsmin,
+			Integer jeuHsmax, Date jeuDateinser, Date jeuDatemodif, String jeuNumversion, 
+			Set<Plateforme> plateformes, Set<Bilan> bilans,
+			Set<Capteur> capteurs, Set<Parametre> parametres,
+			Set<Sequence> sequences, Set<Fichier> fichiers,
+			Set<RequeteNbvalsJeu> requeteNbvalsJeus) {
+		this.jeuId = jeuId;
+		this.personneByPiId = personneByPiId;
+		this.personneByContactId = personneByContactId;
+		this.personneByIntegrateurId = personneByIntegrateurId;
+		this.organisme = organisme;
+		this.commentaire = commentaire;
+		this.categorie = categorie;
+		this.jeuNom = jeuNom;
+		this.jeuDated = jeuDated;
+		this.jeuDatef = jeuDatef;
+		this.jeuLatmin = jeuLatmin;
+		this.jeuLatmax = jeuLatmax;
+		this.jeuLonmin = jeuLonmin;
+		this.jeuLonmax = jeuLonmax;
+		this.jeuAltmin = jeuAltmin;
+		this.jeuAltmax = jeuAltmax;
+		this.jeuHsmin = jeuHsmin;
+		this.jeuHsmax = jeuHsmax;
+		this.jeuDateinser = jeuDateinser;
+		this.jeuDatemodif = jeuDatemodif;
+		this.jeuNumversion = jeuNumversion;
+		this.plateformes = plateformes;
+		this.bilans = bilans;
+		this.capteurs = capteurs;
+		this.parametres = parametres;
+		this.sequences = sequences;
+		this.fichiers = fichiers;
+		this.requeteNbvalsJeus = requeteNbvalsJeus;
+	}
+
+	public int getJeuId() {
+		return this.jeuId;
+	}
+
+	public void setJeuId(int jeuId) {
+		this.jeuId = jeuId;
+	}
+
+	public Personne getPersonneByPiId() {
+		return this.personneByPiId;
+	}
+
+	public void setPersonneByPiId(Personne personneByPiId) {
+		this.personneByPiId = personneByPiId;
+	}
+
+	public Personne getPersonneByContactId() {
+		return this.personneByContactId;
+	}
+
+	public void setPersonneByContactId(Personne personneByContactId) {
+		this.personneByContactId = personneByContactId;
+	}
+
+	public Personne getPersonneByIntegrateurId() {
+		return this.personneByIntegrateurId;
+	}
+
+	public void setPersonneByIntegrateurId(Personne personneByIntegrateurId) {
+		this.personneByIntegrateurId = personneByIntegrateurId;
+	}
+
+	public Organisme getOrganisme() {
+		return this.organisme;
+	}
+
+	public void setOrganisme(Organisme organisme) {
+		this.organisme = organisme;
+	}
+
+	public Commentaire getCommentaire() {
+		return this.commentaire;
+	}
+
+	public void setCommentaire(Commentaire commentaire) {
+		this.commentaire = commentaire;
+	}
+
+	public Categorie getCategorie() {
+		return this.categorie;
+	}
+
+	public void setCategorie(Categorie categorie) {
+		this.categorie = categorie;
+	}
+
+	public String getJeuNom() {
+		return this.jeuNom;
+	}
+
+	public void setJeuNom(String jeuNom) {
+		this.jeuNom = jeuNom;
+	}
+
+	public Date getJeuDated() {
+		return this.jeuDated;
+	}
+
+	public void setJeuDated(Date jeuDated) {
+		this.jeuDated = jeuDated;
+	}
+
+	public Date getJeuDatef() {
+		return this.jeuDatef;
+	}
+
+	public void setJeuDatef(Date jeuDatef) {
+		this.jeuDatef = jeuDatef;
+	}
+
+	public Integer getJeuLatmin() {
+		return this.jeuLatmin;
+	}
+
+	public void setJeuLatmin(Integer jeuLatmin) {
+		this.jeuLatmin = jeuLatmin;
+	}
+
+	public Integer getJeuLatmax() {
+		return this.jeuLatmax;
+	}
+
+	public void setJeuLatmax(Integer jeuLatmax) {
+		this.jeuLatmax = jeuLatmax;
+	}
+
+	public Integer getJeuLonmin() {
+		return this.jeuLonmin;
+	}
+
+	public void setJeuLonmin(Integer jeuLonmin) {
+		this.jeuLonmin = jeuLonmin;
+	}
+
+	public Integer getJeuLonmax() {
+		return this.jeuLonmax;
+	}
+
+	public void setJeuLonmax(Integer jeuLonmax) {
+		this.jeuLonmax = jeuLonmax;
+	}
+
+	public Integer getJeuAltmin() {
+		return this.jeuAltmin;
+	}
+
+	public void setJeuAltmin(Integer jeuAltmin) {
+		this.jeuAltmin = jeuAltmin;
+	}
+
+	public Integer getJeuAltmax() {
+		return this.jeuAltmax;
+	}
+
+	public void setJeuAltmax(Integer jeuAltmax) {
+		this.jeuAltmax = jeuAltmax;
+	}
+
+	public Integer getJeuHsmin() {
+		return this.jeuHsmin;
+	}
+
+	public void setJeuHsmin(Integer jeuHsmin) {
+		this.jeuHsmin = jeuHsmin;
+	}
+
+	public Integer getJeuHsmax() {
+		return this.jeuHsmax;
+	}
+
+	public void setJeuHsmax(Integer jeuHsmax) {
+		this.jeuHsmax = jeuHsmax;
+	}
+
+	public Date getJeuDateinser() {
+		return this.jeuDateinser;
+	}
+
+	public void setJeuDateinser(Date jeuDateinser) {
+		this.jeuDateinser = jeuDateinser;
+	}
+
+	public Date getJeuDatemodif() {
+		return this.jeuDatemodif;
+	}
+
+	public void setJeuDatemodif(Date jeuDatemodif) {
+		this.jeuDatemodif = jeuDatemodif;
+	}
+
+	public Set<Plateforme> getPlateformes() {
+		return this.plateformes;
+	}
+
+	public void setPlateformes(Set<Plateforme> plateformes) {
+		this.plateformes = plateformes;
+	}
+
+	public Set<Bilan> getBilans() {
+		return this.bilans;
+	}
+
+	public void setBilans(Set<Bilan> bilans) {
+		this.bilans = bilans;
+	}
+
+	public Set<Capteur> getCapteurs() {
+		return this.capteurs;
+	}
+
+	public void setCapteurs(Set<Capteur> capteurs) {
+		this.capteurs = capteurs;
+	}
+
+	public Set<Parametre> getParametres() {
+		return this.parametres;
+	}
+
+	public void setParametres(Set<Parametre> parametres) {
+		this.parametres = parametres;
+	}
+
+	public Set<Sequence> getSequences() {
+		return this.sequences;
+	}
+
+	public void setSequences(Set<Sequence> sequences) {
+		this.sequences = sequences;
+	}
+
+	public Set<Fichier> getFichiers() {
+		return this.fichiers;
+	}
+
+	public void setFichiers(Set<Fichier> fichiers) {
+		this.fichiers = fichiers;
+	}
+
+	public Set<RequeteNbvalsJeu> getRequeteNbvalsJeus() {
+		return this.requeteNbvalsJeus;
+	}
+
+	public void setRequeteNbvalsJeus(Set<RequeteNbvalsJeu> requeteNbvalsJeus) {
+		this.requeteNbvalsJeus = requeteNbvalsJeus;
+	}
+
+	public String getJeuNumversion() {
+		return jeuNumversion;
+	}
+
+	public void setJeuNumversion(String jeuNumversion) {
+		this.jeuNumversion = jeuNumversion;
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Langue.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Langue.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Langue.java	(revision 482)
@@ -0,0 +1,63 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Langue generated by hbm2java
+ */
+public class Langue implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private String langueId;
+
+	private String langueNom;
+
+	private Set<Commentaire> commentaires = new HashSet<Commentaire>(0);
+
+	public Langue() {
+	}
+
+	public Langue(String langueId, String langueNom) {
+		this.langueId = langueId;
+		this.langueNom = langueNom;
+	}
+
+	public Langue(String langueId, String langueNom,
+			Set<Commentaire> commentaires) {
+		this.langueId = langueId;
+		this.langueNom = langueNom;
+		this.commentaires = commentaires;
+	}
+
+	public String getLangueId() {
+		return this.langueId;
+	}
+
+	public void setLangueId(String langueId) {
+		this.langueId = langueId;
+	}
+
+	public String getLangueNom() {
+		return this.langueNom;
+	}
+
+	public void setLangueNom(String langueNom) {
+		this.langueNom = langueNom;
+	}
+
+	public Set<Commentaire> getCommentaires() {
+		return this.commentaires;
+	}
+
+	public void setCommentaires(Set<Commentaire> commentaires) {
+		this.commentaires = commentaires;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Localisation.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Localisation.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Localisation.java	(revision 482)
@@ -0,0 +1,122 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Localisation generated by hbm2java
+ */
+public class Localisation implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int localisationId;
+
+	private Flag flagByAltitudeFlag;
+
+	private Flag flagByLatlonFlag;
+
+	private int localisationLat;
+
+	private int localisationLon;
+
+	private int localisationAlt;
+
+	private Integer localisationHs;
+
+	private Set<Mesure> mesures = new HashSet<Mesure>(0);
+
+	public Localisation() {
+	}
+
+	public Localisation(int localisationId, int localisationLat,
+			int localisationLon, int localisationAlt) {
+		this.localisationId = localisationId;
+		this.localisationLat = localisationLat;
+		this.localisationLon = localisationLon;
+		this.localisationAlt = localisationAlt;
+	}
+
+	public Localisation(int localisationId, Flag flagByAltitudeFlag,
+			Flag flagByLatlonFlag, int localisationLat, int localisationLon,
+			int localisationAlt, Integer localisationHs, Set<Mesure> mesures) {
+		this.localisationId = localisationId;
+		this.flagByAltitudeFlag = flagByAltitudeFlag;
+		this.flagByLatlonFlag = flagByLatlonFlag;
+		this.localisationLat = localisationLat;
+		this.localisationLon = localisationLon;
+		this.localisationAlt = localisationAlt;
+		this.localisationHs = localisationHs;
+		this.mesures = mesures;
+	}
+
+	public int getLocalisationId() {
+		return this.localisationId;
+	}
+
+	public void setLocalisationId(int localisationId) {
+		this.localisationId = localisationId;
+	}
+
+	public Flag getFlagByAltitudeFlag() {
+		return this.flagByAltitudeFlag;
+	}
+
+	public void setFlagByAltitudeFlag(Flag flagByAltitudeFlag) {
+		this.flagByAltitudeFlag = flagByAltitudeFlag;
+	}
+
+	public Flag getFlagByLatlonFlag() {
+		return this.flagByLatlonFlag;
+	}
+
+	public void setFlagByLatlonFlag(Flag flagByLatlonFlag) {
+		this.flagByLatlonFlag = flagByLatlonFlag;
+	}
+
+	public int getLocalisationLat() {
+		return this.localisationLat;
+	}
+
+	public void setLocalisationLat(int localisationLat) {
+		this.localisationLat = localisationLat;
+	}
+
+	public int getLocalisationLon() {
+		return this.localisationLon;
+	}
+
+	public void setLocalisationLon(int localisationLon) {
+		this.localisationLon = localisationLon;
+	}
+
+	public int getLocalisationAlt() {
+		return this.localisationAlt;
+	}
+
+	public void setLocalisationAlt(int localisationAlt) {
+		this.localisationAlt = localisationAlt;
+	}
+
+	public Integer getLocalisationHs() {
+		return this.localisationHs;
+	}
+
+	public void setLocalisationHs(Integer localisationHs) {
+		this.localisationHs = localisationHs;
+	}
+
+	public Set<Mesure> getMesures() {
+		return this.mesures;
+	}
+
+	public void setMesures(Set<Mesure> mesures) {
+		this.mesures = mesures;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Mesure.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Mesure.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Mesure.java	(revision 482)
@@ -0,0 +1,124 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Mesure generated by hbm2java
+ */
+public class Mesure implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int mesureId;
+
+	private Localisation localisation;
+
+	private Plateforme plateforme;
+
+	private Fichier fichier;
+
+	private Sequence sequence;
+
+	private DeltaMesure deltaMesure;
+
+	private Date mesureDate;
+
+	private Set<Valeur> valeurs = new HashSet<Valeur>(0);
+
+	public Mesure() {
+	}
+
+	public Mesure(int mesureId, Localisation localisation,
+			Plateforme plateforme, Fichier fichier, Date mesureDate) {
+		this.mesureId = mesureId;
+		this.localisation = localisation;
+		this.plateforme = plateforme;
+		this.fichier = fichier;
+		this.mesureDate = mesureDate;
+	}
+
+	public Mesure(int mesureId, Localisation localisation,
+			Plateforme plateforme, Fichier fichier, Sequence sequence,
+			DeltaMesure deltaMesure, Date mesureDate, Set<Valeur> valeurs) {
+		this.mesureId = mesureId;
+		this.localisation = localisation;
+		this.plateforme = plateforme;
+		this.fichier = fichier;
+		this.sequence = sequence;
+		this.deltaMesure = deltaMesure;
+		this.mesureDate = mesureDate;
+		this.valeurs = valeurs;
+	}
+
+	public int getMesureId() {
+		return this.mesureId;
+	}
+
+	public void setMesureId(int mesureId) {
+		this.mesureId = mesureId;
+	}
+
+	public Localisation getLocalisation() {
+		return this.localisation;
+	}
+
+	public void setLocalisation(Localisation localisation) {
+		this.localisation = localisation;
+	}
+
+	public Plateforme getPlateforme() {
+		return this.plateforme;
+	}
+
+	public void setPlateforme(Plateforme plateforme) {
+		this.plateforme = plateforme;
+	}
+
+	public Fichier getFichier() {
+		return this.fichier;
+	}
+
+	public void setFichier(Fichier fichier) {
+		this.fichier = fichier;
+	}
+
+	public Sequence getSequence() {
+		return this.sequence;
+	}
+
+	public void setSequence(Sequence sequence) {
+		this.sequence = sequence;
+	}
+
+	public DeltaMesure getDeltaMesure() {
+		return this.deltaMesure;
+	}
+
+	public void setDeltaMesure(DeltaMesure deltaMesure) {
+		this.deltaMesure = deltaMesure;
+	}
+
+	public Date getMesureDate() {
+		return this.mesureDate;
+	}
+
+	public void setMesureDate(Date mesureDate) {
+		this.mesureDate = mesureDate;
+	}
+
+	public Set<Valeur> getValeurs() {
+		return this.valeurs;
+	}
+
+	public void setValeurs(Set<Valeur> valeurs) {
+		this.valeurs = valeurs;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Organisme.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Organisme.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Organisme.java	(revision 482)
@@ -0,0 +1,109 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Organisme generated by hbm2java
+ */
+public class Organisme implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int organismeId;
+
+	private Commentaire commentaire;
+
+	private Adresse adresse;
+
+	private String organismeNom;
+
+	private String organismeMail;
+
+	private Set<Jeu> jeus = new HashSet<Jeu>(0);
+
+	private Set<Personne> personnes = new HashSet<Personne>(0);
+
+	public Organisme() {
+	}
+
+	public Organisme(int organismeId, Adresse adresse, String organismeNom) {
+		this.organismeId = organismeId;
+		this.adresse = adresse;
+		this.organismeNom = organismeNom;
+	}
+
+	public Organisme(int organismeId, Commentaire commentaire, Adresse adresse,
+			String organismeNom, String organismeMail, Set<Jeu> jeus,
+			Set<Personne> personnes) {
+		this.organismeId = organismeId;
+		this.commentaire = commentaire;
+		this.adresse = adresse;
+		this.organismeNom = organismeNom;
+		this.organismeMail = organismeMail;
+		this.jeus = jeus;
+		this.personnes = personnes;
+	}
+
+	public int getOrganismeId() {
+		return this.organismeId;
+	}
+
+	public void setOrganismeId(int organismeId) {
+		this.organismeId = organismeId;
+	}
+
+	public Commentaire getCommentaire() {
+		return this.commentaire;
+	}
+
+	public void setCommentaire(Commentaire commentaire) {
+		this.commentaire = commentaire;
+	}
+
+	public Adresse getAdresse() {
+		return this.adresse;
+	}
+
+	public void setAdresse(Adresse adresse) {
+		this.adresse = adresse;
+	}
+
+	public String getOrganismeNom() {
+		return this.organismeNom;
+	}
+
+	public void setOrganismeNom(String organismeNom) {
+		this.organismeNom = organismeNom;
+	}
+
+	public String getOrganismeMail() {
+		return this.organismeMail;
+	}
+
+	public void setOrganismeMail(String organismeMail) {
+		this.organismeMail = organismeMail;
+	}
+
+	public Set<Jeu> getJeus() {
+		return this.jeus;
+	}
+
+	public void setJeus(Set<Jeu> jeus) {
+		this.jeus = jeus;
+	}
+
+	public Set<Personne> getPersonnes() {
+		return this.personnes;
+	}
+
+	public void setPersonnes(Set<Personne> personnes) {
+		this.personnes = personnes;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Parametre.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Parametre.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Parametre.java	(revision 482)
@@ -0,0 +1,179 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Parametre generated by hbm2java
+ */
+public class Parametre implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int parametreId;
+
+	private Unite unite;
+
+	private CategorieParam categorieParam;
+
+	private Commentaire commentaire;
+
+	private String parametreNom;
+
+	private String parametreCode;
+
+	private Set<Jeu> jeus = new HashSet<Jeu>(0);
+
+	private Set<Plateforme> plateformes = new HashSet<Plateforme>(0);
+
+	private Set<Bilan> bilans = new HashSet<Bilan>(0);
+
+	private Set<Capteur> capteurs = new HashSet<Capteur>(0);
+
+	private Set<Valeur> valeurs = new HashSet<Valeur>(0);
+
+	private String delta;
+	
+	private String lod;
+	
+	public Parametre() {
+	}
+
+	public Parametre(int parametreId, Unite unite,
+			CategorieParam categorieParam, String parametreNom,
+			String parametreCode) {
+		this.parametreId = parametreId;
+		this.unite = unite;
+		this.categorieParam = categorieParam;
+		this.parametreNom = parametreNom;
+		this.parametreCode = parametreCode;
+	}
+
+	public Parametre(int parametreId, Unite unite,
+			CategorieParam categorieParam, Commentaire commentaire,
+			String parametreNom, String parametreCode, Set<Jeu> jeus,
+			Set<Plateforme> plateformes, Set<Bilan> bilans,
+			Set<Capteur> capteurs, Set<Valeur> valeurs) {
+		this.parametreId = parametreId;
+		this.unite = unite;
+		this.categorieParam = categorieParam;
+		this.commentaire = commentaire;
+		this.parametreNom = parametreNom;
+		this.parametreCode = parametreCode;
+		this.jeus = jeus;
+		this.plateformes = plateformes;
+		this.bilans = bilans;
+		this.capteurs = capteurs;
+		this.valeurs = valeurs;
+	}
+
+	public int getParametreId() {
+		return this.parametreId;
+	}
+
+	public void setParametreId(int parametreId) {
+		this.parametreId = parametreId;
+	}
+
+	public Unite getUnite() {
+		return this.unite;
+	}
+
+	public void setUnite(Unite unite) {
+		this.unite = unite;
+	}
+
+	public CategorieParam getCategorieParam() {
+		return this.categorieParam;
+	}
+
+	public void setCategorieParam(CategorieParam categorieParam) {
+		this.categorieParam = categorieParam;
+	}
+
+	public Commentaire getCommentaire() {
+		return this.commentaire;
+	}
+
+	public void setCommentaire(Commentaire commentaire) {
+		this.commentaire = commentaire;
+	}
+
+	public String getParametreNom() {
+		return this.parametreNom;
+	}
+
+	public void setParametreNom(String parametreNom) {
+		this.parametreNom = parametreNom;
+	}
+
+	public String getParametreCode() {
+		return this.parametreCode;
+	}
+
+	public void setParametreCode(String parametreCode) {
+		this.parametreCode = parametreCode;
+	}
+
+	public Set<Jeu> getJeus() {
+		return this.jeus;
+	}
+
+	public void setJeus(Set<Jeu> jeus) {
+		this.jeus = jeus;
+	}
+
+	public Set<Plateforme> getPlateformes() {
+		return this.plateformes;
+	}
+
+	public void setPlateformes(Set<Plateforme> plateformes) {
+		this.plateformes = plateformes;
+	}
+
+	public Set<Bilan> getBilans() {
+		return this.bilans;
+	}
+
+	public void setBilans(Set<Bilan> bilans) {
+		this.bilans = bilans;
+	}
+
+	public Set<Capteur> getCapteurs() {
+		return this.capteurs;
+	}
+
+	public void setCapteurs(Set<Capteur> capteurs) {
+		this.capteurs = capteurs;
+	}
+
+	public Set<Valeur> getValeurs() {
+		return this.valeurs;
+	}
+
+	public void setValeurs(Set<Valeur> valeurs) {
+		this.valeurs = valeurs;
+	}
+
+	public String getDelta() {
+		return delta;
+	}
+
+	public void setDelta(String delta) {
+		this.delta = delta;
+	}
+
+	public String getLod() {
+		return lod;
+	}
+
+	public void setLod(String lod) {
+		this.lod = lod;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Personne.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Personne.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Personne.java	(revision 482)
@@ -0,0 +1,132 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Personne generated by hbm2java
+ */
+public class Personne implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int personneId;
+
+	private Organisme organisme;
+
+	private Commentaire commentaire;
+
+	private String personneNom;
+
+	private String personnePrenom;
+
+	private String personneMail;
+
+	private Set<Jeu> jeusForContactId = new HashSet<Jeu>(0);
+
+	private Set<Jeu> jeusForPiId = new HashSet<Jeu>(0);
+
+	private Set<Jeu> jeusForIntegrateurId = new HashSet<Jeu>(0);
+
+	public Personne() {
+	}
+
+	public Personne(int personneId, Organisme organisme, String personneMail) {
+		this.personneId = personneId;
+		this.organisme = organisme;
+		this.personneMail = personneMail;
+	}
+
+	public Personne(int personneId, Organisme organisme,
+			Commentaire commentaire, String personneNom, String personnePrenom,
+			String personneMail, Set<Jeu> jeusForContactId,
+			Set<Jeu> jeusForPiId, Set<Jeu> jeusForIntegrateurId) {
+		this.personneId = personneId;
+		this.organisme = organisme;
+		this.commentaire = commentaire;
+		this.personneNom = personneNom;
+		this.personnePrenom = personnePrenom;
+		this.personneMail = personneMail;
+		this.jeusForContactId = jeusForContactId;
+		this.jeusForPiId = jeusForPiId;
+		this.jeusForIntegrateurId = jeusForIntegrateurId;
+	}
+
+	public int getPersonneId() {
+		return this.personneId;
+	}
+
+	public void setPersonneId(int personneId) {
+		this.personneId = personneId;
+	}
+
+	public Organisme getOrganisme() {
+		return this.organisme;
+	}
+
+	public void setOrganisme(Organisme organisme) {
+		this.organisme = organisme;
+	}
+
+	public Commentaire getCommentaire() {
+		return this.commentaire;
+	}
+
+	public void setCommentaire(Commentaire commentaire) {
+		this.commentaire = commentaire;
+	}
+
+	public String getPersonneNom() {
+		return this.personneNom;
+	}
+
+	public void setPersonneNom(String personneNom) {
+		this.personneNom = personneNom;
+	}
+
+	public String getPersonnePrenom() {
+		return this.personnePrenom;
+	}
+
+	public void setPersonnePrenom(String personnePrenom) {
+		this.personnePrenom = personnePrenom;
+	}
+
+	public String getPersonneMail() {
+		return this.personneMail;
+	}
+
+	public void setPersonneMail(String personneMail) {
+		this.personneMail = personneMail;
+	}
+
+	public Set<Jeu> getJeusForContactId() {
+		return this.jeusForContactId;
+	}
+
+	public void setJeusForContactId(Set<Jeu> jeusForContactId) {
+		this.jeusForContactId = jeusForContactId;
+	}
+
+	public Set<Jeu> getJeusForPiId() {
+		return this.jeusForPiId;
+	}
+
+	public void setJeusForPiId(Set<Jeu> jeusForPiId) {
+		this.jeusForPiId = jeusForPiId;
+	}
+
+	public Set<Jeu> getJeusForIntegrateurId() {
+		return this.jeusForIntegrateurId;
+	}
+
+	public void setJeusForIntegrateurId(Set<Jeu> jeusForIntegrateurId) {
+		this.jeusForIntegrateurId = jeusForIntegrateurId;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Plateforme.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Plateforme.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Plateforme.java	(revision 482)
@@ -0,0 +1,145 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Plateforme generated by hbm2java
+ */
+public class Plateforme implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int plateformeId;
+
+	private Commentaire commentaire;
+
+	private TypePlateforme typePlateforme;
+
+	private String plateformeNom;
+
+	private Set<Bilan> bilans = new HashSet<Bilan>(0);
+
+	private Set<Mesure> mesures = new HashSet<Mesure>(0);
+
+	private Set<Parametre> parametres = new HashSet<Parametre>(0);
+
+	private Set<Capteur> capteurs = new HashSet<Capteur>(0);
+
+	private Set<RequetePlatLoc> requetePlatLocs = new HashSet<RequetePlatLoc>(0);
+
+	private Set<Jeu> jeus = new HashSet<Jeu>(0);
+
+	public Plateforme() {
+	}
+
+	public Plateforme(int plateformeId, TypePlateforme typePlateforme,
+			String plateformeNom) {
+		this.plateformeId = plateformeId;
+		this.typePlateforme = typePlateforme;
+		this.plateformeNom = plateformeNom;
+	}
+
+	public Plateforme(int plateformeId, Commentaire commentaire,
+			TypePlateforme typePlateforme, String plateformeNom,
+			Set<Bilan> bilans, Set<Mesure> mesures, Set<Parametre> parametres,
+			Set<Capteur> capteurs, Set<RequetePlatLoc> requetePlatLocs,
+			Set<Jeu> jeus) {
+		this.plateformeId = plateformeId;
+		this.commentaire = commentaire;
+		this.typePlateforme = typePlateforme;
+		this.plateformeNom = plateformeNom;
+		this.bilans = bilans;
+		this.mesures = mesures;
+		this.parametres = parametres;
+		this.capteurs = capteurs;
+		this.requetePlatLocs = requetePlatLocs;
+		this.jeus = jeus;
+	}
+
+	public int getPlateformeId() {
+		return this.plateformeId;
+	}
+
+	public void setPlateformeId(int plateformeId) {
+		this.plateformeId = plateformeId;
+	}
+
+	public Commentaire getCommentaire() {
+		return this.commentaire;
+	}
+
+	public void setCommentaire(Commentaire commentaire) {
+		this.commentaire = commentaire;
+	}
+
+	public TypePlateforme getTypePlateforme() {
+		return this.typePlateforme;
+	}
+
+	public void setTypePlateforme(TypePlateforme typePlateforme) {
+		this.typePlateforme = typePlateforme;
+	}
+
+	public String getPlateformeNom() {
+		return this.plateformeNom;
+	}
+
+	public void setPlateformeNom(String plateformeNom) {
+		this.plateformeNom = plateformeNom;
+	}
+
+	public Set<Bilan> getBilans() {
+		return this.bilans;
+	}
+
+	public void setBilans(Set<Bilan> bilans) {
+		this.bilans = bilans;
+	}
+
+	public Set<Mesure> getMesures() {
+		return this.mesures;
+	}
+
+	public void setMesures(Set<Mesure> mesures) {
+		this.mesures = mesures;
+	}
+
+	public Set<Parametre> getParametres() {
+		return this.parametres;
+	}
+
+	public void setParametres(Set<Parametre> parametres) {
+		this.parametres = parametres;
+	}
+
+	public Set<Capteur> getCapteurs() {
+		return this.capteurs;
+	}
+
+	public void setCapteurs(Set<Capteur> capteurs) {
+		this.capteurs = capteurs;
+	}
+
+	public Set<RequetePlatLoc> getRequetePlatLocs() {
+		return this.requetePlatLocs;
+	}
+
+	public void setRequetePlatLocs(Set<RequetePlatLoc> requetePlatLocs) {
+		this.requetePlatLocs = requetePlatLocs;
+	}
+
+	public Set<Jeu> getJeus() {
+		return this.jeus;
+	}
+
+	public void setJeus(Set<Jeu> jeus) {
+		this.jeus = jeus;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/RequeteNbvalsJeu.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/RequeteNbvalsJeu.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/RequeteNbvalsJeu.java	(revision 482)
@@ -0,0 +1,77 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+/**
+ * RequeteNbvalsJeu generated by hbm2java
+ */
+public class RequeteNbvalsJeu implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int jeuId;
+
+	private Jeu jeu;
+
+	private int nbFichiers;
+
+	private int nbMesures;
+
+	private int nbValeurs;
+
+	public RequeteNbvalsJeu() {
+	}
+
+	public RequeteNbvalsJeu(int jeuId, Jeu jeu, int nbFichiers, int nbMesures,
+			int nbValeurs) {
+		this.jeuId = jeuId;
+		this.jeu = jeu;
+		this.nbFichiers = nbFichiers;
+		this.nbMesures = nbMesures;
+		this.nbValeurs = nbValeurs;
+	}
+
+	public int getJeuId() {
+		return this.jeuId;
+	}
+
+	public void setJeuId(int jeuId) {
+		this.jeuId = jeuId;
+	}
+
+	public Jeu getJeu() {
+		return this.jeu;
+	}
+
+	public void setJeu(Jeu jeu) {
+		this.jeu = jeu;
+	}
+
+	public int getNbFichiers() {
+		return this.nbFichiers;
+	}
+
+	public void setNbFichiers(int nbFichiers) {
+		this.nbFichiers = nbFichiers;
+	}
+
+	public int getNbMesures() {
+		return this.nbMesures;
+	}
+
+	public void setNbMesures(int nbMesures) {
+		this.nbMesures = nbMesures;
+	}
+
+	public int getNbValeurs() {
+		return this.nbValeurs;
+	}
+
+	public void setNbValeurs(int nbValeurs) {
+		this.nbValeurs = nbValeurs;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/RequetePlatLoc.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/RequetePlatLoc.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/RequetePlatLoc.java	(revision 482)
@@ -0,0 +1,145 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+/**
+ * RequetePlatLoc generated by hbm2java
+ */
+public class RequetePlatLoc implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int plateformeId;
+
+	private Plateforme plateforme;
+
+	private int latMin;
+
+	private int latMax;
+
+	private int lonMin;
+
+	private int lonMax;
+
+	private int altMin;
+
+	private int altMax;
+
+	private Integer hsMin;
+
+	private Integer hsMax;
+
+	public RequetePlatLoc() {
+	}
+
+	public RequetePlatLoc(int plateformeId, Plateforme plateforme, int latMin,
+			int latMax, int lonMin, int lonMax, int altMin, int altMax) {
+		this.plateformeId = plateformeId;
+		this.plateforme = plateforme;
+		this.latMin = latMin;
+		this.latMax = latMax;
+		this.lonMin = lonMin;
+		this.lonMax = lonMax;
+		this.altMin = altMin;
+		this.altMax = altMax;
+	}
+
+	public RequetePlatLoc(int plateformeId, Plateforme plateforme, int latMin,
+			int latMax, int lonMin, int lonMax, int altMin, int altMax,
+			Integer hsMin, Integer hsMax) {
+		this.plateformeId = plateformeId;
+		this.plateforme = plateforme;
+		this.latMin = latMin;
+		this.latMax = latMax;
+		this.lonMin = lonMin;
+		this.lonMax = lonMax;
+		this.altMin = altMin;
+		this.altMax = altMax;
+		this.hsMin = hsMin;
+		this.hsMax = hsMax;
+	}
+
+	public int getPlateformeId() {
+		return this.plateformeId;
+	}
+
+	public void setPlateformeId(int plateformeId) {
+		this.plateformeId = plateformeId;
+	}
+
+	public Plateforme getPlateforme() {
+		return this.plateforme;
+	}
+
+	public void setPlateforme(Plateforme plateforme) {
+		this.plateforme = plateforme;
+	}
+
+	public int getLatMin() {
+		return this.latMin;
+	}
+
+	public void setLatMin(int latMin) {
+		this.latMin = latMin;
+	}
+
+	public int getLatMax() {
+		return this.latMax;
+	}
+
+	public void setLatMax(int latMax) {
+		this.latMax = latMax;
+	}
+
+	public int getLonMin() {
+		return this.lonMin;
+	}
+
+	public void setLonMin(int lonMin) {
+		this.lonMin = lonMin;
+	}
+
+	public int getLonMax() {
+		return this.lonMax;
+	}
+
+	public void setLonMax(int lonMax) {
+		this.lonMax = lonMax;
+	}
+
+	public int getAltMin() {
+		return this.altMin;
+	}
+
+	public void setAltMin(int altMin) {
+		this.altMin = altMin;
+	}
+
+	public int getAltMax() {
+		return this.altMax;
+	}
+
+	public void setAltMax(int altMax) {
+		this.altMax = altMax;
+	}
+
+	public Integer getHsMin() {
+		return this.hsMin;
+	}
+
+	public void setHsMin(Integer hsMin) {
+		this.hsMin = hsMin;
+	}
+
+	public Integer getHsMax() {
+		return this.hsMax;
+	}
+
+	public void setHsMax(Integer hsMax) {
+		this.hsMax = hsMax;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Sequence.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Sequence.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Sequence.java	(revision 482)
@@ -0,0 +1,191 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Sequence generated by hbm2java
+ */
+public class Sequence implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int sequenceId;
+
+	private Commentaire commentaire;
+
+	private Jeu jeu;
+
+	private Date sequenceDated;
+
+	private Date sequenceDatef;
+
+	private Integer sequenceLatd;
+
+	private Integer sequenceLatf;
+
+	private Integer sequenceLond;
+
+	private Integer sequenceLonf;
+
+	private Integer sequenceAltd;
+
+	private Integer sequenceAltf;
+
+	private Integer sequenceHsd;
+
+	private Integer sequenceHsf;
+
+	private Set<Mesure> mesures = new HashSet<Mesure>(0);
+
+	public Sequence() {
+	}
+
+	public Sequence(int sequenceId, Jeu jeu, Date sequenceDated,
+			Date sequenceDatef) {
+		this.sequenceId = sequenceId;
+		this.jeu = jeu;
+		this.sequenceDated = sequenceDated;
+		this.sequenceDatef = sequenceDatef;
+	}
+
+	public Sequence(int sequenceId, Commentaire commentaire, Jeu jeu,
+			Date sequenceDated, Date sequenceDatef, Integer sequenceLatd,
+			Integer sequenceLatf, Integer sequenceLond, Integer sequenceLonf,
+			Integer sequenceAltd, Integer sequenceAltf, Integer sequenceHsd,
+			Integer sequenceHsf, Set<Mesure> mesures) {
+		this.sequenceId = sequenceId;
+		this.commentaire = commentaire;
+		this.jeu = jeu;
+		this.sequenceDated = sequenceDated;
+		this.sequenceDatef = sequenceDatef;
+		this.sequenceLatd = sequenceLatd;
+		this.sequenceLatf = sequenceLatf;
+		this.sequenceLond = sequenceLond;
+		this.sequenceLonf = sequenceLonf;
+		this.sequenceAltd = sequenceAltd;
+		this.sequenceAltf = sequenceAltf;
+		this.sequenceHsd = sequenceHsd;
+		this.sequenceHsf = sequenceHsf;
+		this.mesures = mesures;
+	}
+
+	public int getSequenceId() {
+		return this.sequenceId;
+	}
+
+	public void setSequenceId(int sequenceId) {
+		this.sequenceId = sequenceId;
+	}
+
+	public Commentaire getCommentaire() {
+		return this.commentaire;
+	}
+
+	public void setCommentaire(Commentaire commentaire) {
+		this.commentaire = commentaire;
+	}
+
+	public Jeu getJeu() {
+		return this.jeu;
+	}
+
+	public void setJeu(Jeu jeu) {
+		this.jeu = jeu;
+	}
+
+	public Date getSequenceDated() {
+		return this.sequenceDated;
+	}
+
+	public void setSequenceDated(Date sequenceDated) {
+		this.sequenceDated = sequenceDated;
+	}
+
+	public Date getSequenceDatef() {
+		return this.sequenceDatef;
+	}
+
+	public void setSequenceDatef(Date sequenceDatef) {
+		this.sequenceDatef = sequenceDatef;
+	}
+
+	public Integer getSequenceLatd() {
+		return this.sequenceLatd;
+	}
+
+	public void setSequenceLatd(Integer sequenceLatd) {
+		this.sequenceLatd = sequenceLatd;
+	}
+
+	public Integer getSequenceLatf() {
+		return this.sequenceLatf;
+	}
+
+	public void setSequenceLatf(Integer sequenceLatf) {
+		this.sequenceLatf = sequenceLatf;
+	}
+
+	public Integer getSequenceLond() {
+		return this.sequenceLond;
+	}
+
+	public void setSequenceLond(Integer sequenceLond) {
+		this.sequenceLond = sequenceLond;
+	}
+
+	public Integer getSequenceLonf() {
+		return this.sequenceLonf;
+	}
+
+	public void setSequenceLonf(Integer sequenceLonf) {
+		this.sequenceLonf = sequenceLonf;
+	}
+
+	public Integer getSequenceAltd() {
+		return this.sequenceAltd;
+	}
+
+	public void setSequenceAltd(Integer sequenceAltd) {
+		this.sequenceAltd = sequenceAltd;
+	}
+
+	public Integer getSequenceAltf() {
+		return this.sequenceAltf;
+	}
+
+	public void setSequenceAltf(Integer sequenceAltf) {
+		this.sequenceAltf = sequenceAltf;
+	}
+
+	public Integer getSequenceHsd() {
+		return this.sequenceHsd;
+	}
+
+	public void setSequenceHsd(Integer sequenceHsd) {
+		this.sequenceHsd = sequenceHsd;
+	}
+
+	public Integer getSequenceHsf() {
+		return this.sequenceHsf;
+	}
+
+	public void setSequenceHsf(Integer sequenceHsf) {
+		this.sequenceHsf = sequenceHsf;
+	}
+
+	public Set<Mesure> getMesures() {
+		return this.mesures;
+	}
+
+	public void setMesures(Set<Mesure> mesures) {
+		this.mesures = mesures;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/TypeCapteur.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/TypeCapteur.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/TypeCapteur.java	(revision 482)
@@ -0,0 +1,74 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * TypeCapteur generated by hbm2java
+ */
+public class TypeCapteur implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int typeCapteurId;
+
+	private Commentaire commentaire;
+
+	private String typeCapteurNom;
+
+	private Set<Capteur> capteurs = new HashSet<Capteur>(0);
+
+	public TypeCapteur() {
+	}
+
+	public TypeCapteur(int typeCapteurId, String typeCapteurNom) {
+		this.typeCapteurId = typeCapteurId;
+		this.typeCapteurNom = typeCapteurNom;
+	}
+
+	public TypeCapteur(int typeCapteurId, Commentaire commentaire,
+			String typeCapteurNom, Set<Capteur> capteurs) {
+		this.typeCapteurId = typeCapteurId;
+		this.commentaire = commentaire;
+		this.typeCapteurNom = typeCapteurNom;
+		this.capteurs = capteurs;
+	}
+
+	public int getTypeCapteurId() {
+		return this.typeCapteurId;
+	}
+
+	public void setTypeCapteurId(int typeCapteurId) {
+		this.typeCapteurId = typeCapteurId;
+	}
+
+	public Commentaire getCommentaire() {
+		return this.commentaire;
+	}
+
+	public void setCommentaire(Commentaire commentaire) {
+		this.commentaire = commentaire;
+	}
+
+	public String getTypeCapteurNom() {
+		return this.typeCapteurNom;
+	}
+
+	public void setTypeCapteurNom(String typeCapteurNom) {
+		this.typeCapteurNom = typeCapteurNom;
+	}
+
+	public Set<Capteur> getCapteurs() {
+		return this.capteurs;
+	}
+
+	public void setCapteurs(Set<Capteur> capteurs) {
+		this.capteurs = capteurs;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/TypePlateforme.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/TypePlateforme.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/TypePlateforme.java	(revision 482)
@@ -0,0 +1,86 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * TypePlateforme generated by hbm2java
+ */
+public class TypePlateforme implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int typePlateformeId;
+
+	private Commentaire commentaire;
+
+	private String typePlateformeNom;
+
+	private String typePlateformeStype;
+
+	private Set<Plateforme> plateformes = new HashSet<Plateforme>(0);
+
+	public TypePlateforme() {
+	}
+
+	public TypePlateforme(int typePlateformeId, String typePlateformeNom) {
+		this.typePlateformeId = typePlateformeId;
+		this.typePlateformeNom = typePlateformeNom;
+	}
+
+	public TypePlateforme(int typePlateformeId, Commentaire commentaire,
+			String typePlateformeNom, String typePlateformeStype,
+			Set<Plateforme> plateformes) {
+		this.typePlateformeId = typePlateformeId;
+		this.commentaire = commentaire;
+		this.typePlateformeNom = typePlateformeNom;
+		this.typePlateformeStype = typePlateformeStype;
+		this.plateformes = plateformes;
+	}
+
+	public int getTypePlateformeId() {
+		return this.typePlateformeId;
+	}
+
+	public void setTypePlateformeId(int typePlateformeId) {
+		this.typePlateformeId = typePlateformeId;
+	}
+
+	public Commentaire getCommentaire() {
+		return this.commentaire;
+	}
+
+	public void setCommentaire(Commentaire commentaire) {
+		this.commentaire = commentaire;
+	}
+
+	public String getTypePlateformeNom() {
+		return this.typePlateformeNom;
+	}
+
+	public void setTypePlateformeNom(String typePlateformeNom) {
+		this.typePlateformeNom = typePlateformeNom;
+	}
+
+	public String getTypePlateformeStype() {
+		return this.typePlateformeStype;
+	}
+
+	public void setTypePlateformeStype(String typePlateformeStype) {
+		this.typePlateformeStype = typePlateformeStype;
+	}
+
+	public Set<Plateforme> getPlateformes() {
+		return this.plateformes;
+	}
+
+	public void setPlateformes(Set<Plateforme> plateformes) {
+		this.plateformes = plateformes;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Unite.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Unite.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Unite.java	(revision 482)
@@ -0,0 +1,74 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Unite generated by hbm2java
+ */
+public class Unite implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int uniteId;
+
+	private String uniteNom;
+
+	private String uniteCode;
+
+	private Set<Parametre> parametres = new HashSet<Parametre>(0);
+
+	public Unite() {
+	}
+
+	public Unite(int uniteId, String uniteCode) {
+		this.uniteId = uniteId;
+		this.uniteCode = uniteCode;
+	}
+
+	public Unite(int uniteId, String uniteNom, String uniteCode,
+			Set<Parametre> parametres) {
+		this.uniteId = uniteId;
+		this.uniteNom = uniteNom;
+		this.uniteCode = uniteCode;
+		this.parametres = parametres;
+	}
+
+	public int getUniteId() {
+		return this.uniteId;
+	}
+
+	public void setUniteId(int uniteId) {
+		this.uniteId = uniteId;
+	}
+
+	public String getUniteNom() {
+		return this.uniteNom;
+	}
+
+	public void setUniteNom(String uniteNom) {
+		this.uniteNom = uniteNom;
+	}
+
+	public String getUniteCode() {
+		return this.uniteCode;
+	}
+
+	public void setUniteCode(String uniteCode) {
+		this.uniteCode = uniteCode;
+	}
+
+	public Set<Parametre> getParametres() {
+		return this.parametres;
+	}
+
+	public void setParametres(Set<Parametre> parametres) {
+		this.parametres = parametres;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Valeur.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Valeur.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Valeur.java	(revision 482)
@@ -0,0 +1,130 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+/**
+ * Valeur generated by hbm2java
+ */
+public class Valeur implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int valeurId;
+
+	private Flag flagByValeurFlag;
+
+	private Capteur capteur;
+
+	private Parametre parametre;
+
+	private Flag flagByValiditeFlag;
+
+	private Mesure mesure;
+
+	private double valeurVal;
+
+	private Double valeurDelta;
+	
+	private Double valeurLod;
+
+	public Valeur() {
+	}
+
+	public Valeur(int valeurId, Capteur capteur, Parametre parametre,
+			Mesure mesure, double valeurVal) {
+		this.valeurId = valeurId;
+		this.capteur = capteur;
+		this.parametre = parametre;
+		this.mesure = mesure;
+		this.valeurVal = valeurVal;
+	}
+
+	public Valeur(int valeurId, Flag flagByValeurFlag, Capteur capteur,
+			Parametre parametre, Flag flagByValiditeFlag, Mesure mesure,
+			double valeurVal, Double valeurDelta, Double valeurLod) {
+		this.valeurId = valeurId;
+		this.flagByValeurFlag = flagByValeurFlag;
+		this.capteur = capteur;
+		this.parametre = parametre;
+		this.flagByValiditeFlag = flagByValiditeFlag;
+		this.mesure = mesure;
+		this.valeurVal = valeurVal;
+		this.valeurDelta = valeurDelta;
+		this.valeurLod = valeurLod;
+	}
+
+	public int getValeurId() {
+		return this.valeurId;
+	}
+
+	public void setValeurId(int valeurId) {
+		this.valeurId = valeurId;
+	}
+
+	public Flag getFlagByValeurFlag() {
+		return this.flagByValeurFlag;
+	}
+
+	public void setFlagByValeurFlag(Flag flagByValeurFlag) {
+		this.flagByValeurFlag = flagByValeurFlag;
+	}
+
+	public Capteur getCapteur() {
+		return this.capteur;
+	}
+
+	public void setCapteur(Capteur capteur) {
+		this.capteur = capteur;
+	}
+
+	public Parametre getParametre() {
+		return this.parametre;
+	}
+
+	public void setParametre(Parametre parametre) {
+		this.parametre = parametre;
+	}
+
+	public Flag getFlagByValiditeFlag() {
+		return this.flagByValiditeFlag;
+	}
+
+	public void setFlagByValiditeFlag(Flag flagByValiditeFlag) {
+		this.flagByValiditeFlag = flagByValiditeFlag;
+	}
+
+	public Mesure getMesure() {
+		return this.mesure;
+	}
+
+	public void setMesure(Mesure mesure) {
+		this.mesure = mesure;
+	}
+
+	public double getValeurVal() {
+		return this.valeurVal;
+	}
+
+	public void setValeurVal(double valeurVal) {
+		this.valeurVal = valeurVal;
+	}
+
+	public Double getValeurDelta() {
+		return this.valeurDelta;
+	}
+
+	public void setValeurDelta(Double valeurDelta) {
+		this.valeurDelta = valeurDelta;
+	}
+
+	public Double getValeurLod() {
+		return valeurLod;
+	}
+
+	public void setValeurLod(Double valeurLod) {
+		this.valeurLod = valeurLod;
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Zone.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Zone.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/Zone.java	(revision 482)
@@ -0,0 +1,135 @@
+package integration.hibernate;
+
+// Generated 5 fÃ©vr. 2007 11:07:11 by Hibernate Tools 3.2.0.b9
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Zone generated by hbm2java
+ */
+public class Zone implements java.io.Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	private int zoneId;
+
+	private Commentaire commentaire;
+
+	private Zone zone;
+
+	private String zoneNom;
+
+	private int zoneLatmin;
+
+	private int zoneLatmax;
+
+	private int zoneLonmin;
+
+	private int zoneLonmax;
+
+	private Set<Zone> zones = new HashSet<Zone>(0);
+
+	public Zone() {
+	}
+
+	public Zone(int zoneId, String zoneNom, int zoneLatmin, int zoneLatmax,
+			int zoneLonmin, int zoneLonmax) {
+		this.zoneId = zoneId;
+		this.zoneNom = zoneNom;
+		this.zoneLatmin = zoneLatmin;
+		this.zoneLatmax = zoneLatmax;
+		this.zoneLonmin = zoneLonmin;
+		this.zoneLonmax = zoneLonmax;
+	}
+
+	public Zone(int zoneId, Commentaire commentaire, Zone zone, String zoneNom,
+			int zoneLatmin, int zoneLatmax, int zoneLonmin, int zoneLonmax,
+			Set<Zone> zones) {
+		this.zoneId = zoneId;
+		this.commentaire = commentaire;
+		this.zone = zone;
+		this.zoneNom = zoneNom;
+		this.zoneLatmin = zoneLatmin;
+		this.zoneLatmax = zoneLatmax;
+		this.zoneLonmin = zoneLonmin;
+		this.zoneLonmax = zoneLonmax;
+		this.zones = zones;
+	}
+
+	public int getZoneId() {
+		return this.zoneId;
+	}
+
+	public void setZoneId(int zoneId) {
+		this.zoneId = zoneId;
+	}
+
+	public Commentaire getCommentaire() {
+		return this.commentaire;
+	}
+
+	public void setCommentaire(Commentaire commentaire) {
+		this.commentaire = commentaire;
+	}
+
+	public Zone getZone() {
+		return this.zone;
+	}
+
+	public void setZone(Zone zone) {
+		this.zone = zone;
+	}
+
+	public String getZoneNom() {
+		return this.zoneNom;
+	}
+
+	public void setZoneNom(String zoneNom) {
+		this.zoneNom = zoneNom;
+	}
+
+	public int getZoneLatmin() {
+		return this.zoneLatmin;
+	}
+
+	public void setZoneLatmin(int zoneLatmin) {
+		this.zoneLatmin = zoneLatmin;
+	}
+
+	public int getZoneLatmax() {
+		return this.zoneLatmax;
+	}
+
+	public void setZoneLatmax(int zoneLatmax) {
+		this.zoneLatmax = zoneLatmax;
+	}
+
+	public int getZoneLonmin() {
+		return this.zoneLonmin;
+	}
+
+	public void setZoneLonmin(int zoneLonmin) {
+		this.zoneLonmin = zoneLonmin;
+	}
+
+	public int getZoneLonmax() {
+		return this.zoneLonmax;
+	}
+
+	public void setZoneLonmax(int zoneLonmax) {
+		this.zoneLonmax = zoneLonmax;
+	}
+
+	public Set<Zone> getZones() {
+		return this.zones;
+	}
+
+	public void setZones(Set<Zone> zones) {
+		this.zones = zones;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Adresse.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Adresse.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Adresse.hbm.xml	(revision 482)
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.Adresse" table="adresse" schema="public">
+        <comment>Table contenant les adresses des organismes</comment>
+        <id name="adresseId" type="int">
+            <column name="adresse_id" />
+            <generator class="sequence">
+				<param name="sequence">adresse_adresse_id_seq</param>
+			</generator>
+        </id>
+        <property name="adresseRue" type="string">
+            <column name="adresse_rue" length="100" not-null="true">
+                <comment>rue de l'organisme</comment>
+            </column>
+        </property>
+        <property name="adresseZip" type="string">
+            <column name="adresse_zip" length="10" not-null="true">
+                <comment>code postal de l'organisme</comment>
+            </column>
+        </property>
+        <property name="adresseVille" type="string">
+            <column name="adresse_ville" length="50" not-null="true">
+                <comment>ville de l'organisme</comment>
+            </column>
+        </property>
+        <property name="adressePays" type="string">
+            <column name="adresse_pays" length="50" not-null="true">
+                <comment>pays de l'organisme</comment>
+            </column>
+        </property>
+        <set name="organismes" inverse="true">
+            <key>
+                <column name="adresse_id" not-null="true">
+                    <comment>lien vers la table adresse</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Organisme" />
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Bilan.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Bilan.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Bilan.hbm.xml	(revision 482)
@@ -0,0 +1,105 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.Bilan" table="bilan" schema="public">
+        <comment>Table regroupant les correspondances par capteur/parametre/plateforme/jeu</comment>
+        <id name="bilanId" type="int">
+            <column name="bilan_id" />
+            <generator class="sequence">
+				<param name="sequence">bilan_bilan_id_seq</param>
+			</generator>
+        </id>
+        <many-to-one name="capteur" class="integration.hibernate.Capteur" fetch="select">
+            <column name="capteur_id" not-null="true">
+                <comment>lien avec la table capteur</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="plateforme" class="integration.hibernate.Plateforme" fetch="select">
+            <column name="plateforme_id" not-null="true">
+                <comment>lien vers la table plateforme</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="parametre" class="integration.hibernate.Parametre" fetch="select">
+            <column name="parametre_id" not-null="true">
+                <comment>lien vers la table parametre</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="jeu" class="integration.hibernate.Jeu" fetch="select">
+            <column name="jeu_id" not-null="true">
+                <comment>lien vers la table jeu</comment>
+            </column>
+        </many-to-one>
+        <property name="bilanDated" type="timestamp">
+            <column name="bilan_dated" length="8">
+                <comment>date de debut</comment>
+            </column>
+        </property>
+        <property name="bilanDatef" type="timestamp">
+            <column name="bilan_datef" length="8">
+                <comment>date de fin</comment>
+            </column>
+        </property>
+        <property name="bilanFreq" type="java.lang.Integer">
+            <column name="bilan_freq">
+                <comment>frequence du bilan</comment>
+            </column>
+        </property>
+        <property name="bilanLatmin" type="java.lang.Integer">
+            <column name="bilan_latmin">
+                <comment>latitude minimale</comment>
+            </column>
+        </property>
+        <property name="bilanLatmax" type="java.lang.Integer">
+            <column name="bilan_latmax">
+                <comment>latitude maximale</comment>
+            </column>
+        </property>
+        <property name="bilanLonmin" type="java.lang.Integer">
+            <column name="bilan_lonmin">
+                <comment>longitude minimale</comment>
+            </column>
+        </property>
+        <property name="bilanLonmax" type="java.lang.Integer">
+            <column name="bilan_lonmax">
+                <comment>longitude maximale</comment>
+            </column>
+        </property>
+        <property name="bilanAltmin" type="java.lang.Integer">
+            <column name="bilan_altmin">
+                <comment>altitude minimale</comment>
+            </column>
+        </property>
+        <property name="bilanAltmax" type="java.lang.Integer">
+            <column name="bilan_altmax">
+                <comment>altitude maximale</comment>
+            </column>
+        </property>
+        <property name="bilanHsmin" type="java.lang.Integer">
+            <column name="bilan_hsmin">
+                <comment>hauteur sol minimale</comment>
+            </column>
+        </property>
+        <property name="bilanHsmax" type="java.lang.Integer">
+            <column name="bilan_hsmax">
+                <comment>hauteur sol maximale</comment>
+            </column>
+        </property>
+        <property name="bilanValmin" type="java.lang.Double">
+            <column name="bilan_valmin" precision="8" scale="0">
+                <comment>valeur minimale</comment>
+            </column>
+        </property>
+        <property name="bilanValmax" type="java.lang.Double">
+            <column name="bilan_valmax" precision="8" scale="0">
+                <comment>valeur maximale</comment>
+            </column>
+        </property>
+        <property name="bilanNbval" type="java.lang.Integer">
+            <column name="bilan_nbval">
+                <comment>nombre de valeurs</comment>
+            </column>
+        </property>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Capteur.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Capteur.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Capteur.hbm.xml	(revision 482)
@@ -0,0 +1,97 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.Capteur" table="capteur" schema="public">
+        <comment>Table contenant les capteurs associes aux mesures</comment>
+        <id name="capteurId" type="int">
+            <column name="capteur_id" />
+            <generator class="sequence">
+            <param name="sequence">capteur_capteur_id_seq</param>
+            </generator>
+        </id>
+        <many-to-one name="fabriquant" class="integration.hibernate.Fabriquant" fetch="select">
+            <column name="fabriquant_id" not-null="true">
+                <comment>lien vers la table fabriquant</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="typeCapteur" class="integration.hibernate.TypeCapteur" fetch="select">
+            <column name="type_capteur_id" not-null="true">
+                <comment>lien vers la table type_capteur</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="commentaire" class="integration.hibernate.Commentaire" fetch="select">
+            <column name="commentaire_id">
+                <comment>lien vers la table commentaire</comment>
+            </column>
+        </many-to-one>
+        <property name="capteurModele" type="string">
+            <column name="capteur_modele" length="100" not-null="true">
+                <comment>modele du capteur</comment>
+            </column>
+        </property>
+        <property name="capteurNumserie" type="string">
+            <column name="capteur_numserie" length="50" not-null="true">
+                <comment>numero de serie du capteur</comment>
+            </column>
+        </property>
+        <property name="capteurEtalonnage" type="string">
+            <column name="capteur_etalonnage" length="256">
+                <comment>etalonnage du capteur</comment>
+            </column>
+        </property>
+        <set name="valeurs" inverse="true">
+            <key>
+                <column name="capteur_id" not-null="true">
+                    <comment>lien avec la table capteur</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Valeur" />
+        </set>
+        <set name="bilans" inverse="true">
+            <key>
+                <column name="capteur_id" not-null="true">
+                    <comment>lien avec la table capteur</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Bilan" />
+        </set>
+        <set name="jeus" table="requete_capt_jeu">
+            <key>
+                <column name="capteur_id" not-null="true">
+                    <comment>lien vers la table capteur</comment>
+                </column>
+            </key>
+            <many-to-many entity-name="integration.hibernate.Jeu">
+                <column name="jeu_id" not-null="true">
+                    <comment>lien vers la table jeu</comment>
+                </column>
+            </many-to-many>
+        </set>
+        <set name="plateformes" inverse="true" table="requete_plat_capt">
+            <key>
+                <column name="capteur_id" not-null="true">
+                    <comment>lien vers la table capteur</comment>
+                </column>
+            </key>
+            <many-to-many entity-name="integration.hibernate.Plateforme">
+                <column name="plateforme_id" not-null="true">
+                    <comment>lien vers la table plateforme</comment>
+                </column>
+            </many-to-many>
+        </set>
+        <set name="parametres" table="requete_param_capt">
+            <key>
+                <column name="capteur_id" not-null="true">
+                    <comment>lien vers la table capteur</comment>
+                </column>
+            </key>
+            <many-to-many entity-name="integration.hibernate.Parametre">
+                <column name="parametre_id" not-null="true">
+                    <comment>lien vers la table parametre</comment>
+                </column>
+            </many-to-many>
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Categorie.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Categorie.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Categorie.hbm.xml	(revision 482)
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.Categorie" table="categorie" schema="public">
+        <comment>Table contenant les categories de jeux</comment>
+        <id name="categorieId" type="int">
+            <column name="categorie_id" />
+            <generator class="native" />
+        </id>
+        <property name="categorieNom" type="string">
+            <column name="categorie_nom" length="50" not-null="true" unique="true">
+                <comment>nom de la categorie</comment>
+            </column>
+        </property>
+        <set name="jeus" inverse="true">
+            <key>
+                <column name="categorie_id" not-null="true">
+                    <comment>lien vers la table categorie</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Jeu" />
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/CategorieParam.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/CategorieParam.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/CategorieParam.hbm.xml	(revision 482)
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.CategorieParam" table="categorie_param" schema="public">
+        <comment>Talbe contenant les categories des parametres</comment>
+        <id name="categorieParamId" type="int">
+            <column name="categorie_param_id" />
+            <generator class="sequence">
+            <param name="sequence">categorie_param_categorie_param_id_seq</param>
+            </generator>
+        </id>
+        <property name="categorieParamNom" type="string">
+            <column name="categorie_param_nom" length="200" not-null="true" unique="true">
+                <comment>nom de la categorie du parametre</comment>
+            </column>
+        </property>
+        <property name="categorieParamDomaine" type="string">
+            <column name="categorie_param_domaine" length="200" not-null="true">
+                <comment>domaine de la categorie du parametre</comment>
+            </column>
+        </property>
+        <set name="parametres" inverse="true">
+            <key>
+                <column name="categorie_param_id" not-null="true">
+                    <comment>lien vers la table categorie_param</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Parametre" />
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Commentaire.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Commentaire.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Commentaire.hbm.xml	(revision 482)
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.Commentaire" table="commentaire" schema="public">
+        <comment>Table contenant des commentaires sur certaines tables</comment>
+        <id name="commentaireId" type="int">
+            <column name="commentaire_id" />
+            <generator class="sequence">
+            <param name="sequence"> commentaire_commentaire_id_seq</param>
+            </generator>
+        </id>
+        <many-to-one name="langue" class="integration.hibernate.Langue" fetch="select">
+            <column name="langue_id" length="2" not-null="true">
+                <comment>lien vers la table langue</comment>
+            </column>
+        </many-to-one>
+        <property name="commentaireTxt" type="string">
+            <column name="commentaire_txt" not-null="true" unique="true">
+                <comment>commentaire</comment>
+            </column>
+        </property>
+        <property name="commentaireUrl" type="string">
+            <column name="commentaire_url" length="256">
+                <comment>url</comment>
+            </column>
+        </property>
+        <set name="plateformes" inverse="true">
+            <key>
+                <column name="commentaire_id">
+                    <comment>lien vers la table commentaire</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Plateforme" />
+        </set>
+        <set name="parametres" inverse="true">
+            <key>
+                <column name="commentaire_id">
+                    <comment>lien vers la table commentaire</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Parametre" />
+        </set>
+        <set name="jeus" inverse="true">
+            <key>
+                <column name="commentaire_id">
+                    <comment>lien vers la table commentaire</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Jeu" />
+        </set>
+        <set name="organismes" inverse="true">
+            <key>
+                <column name="commentaire_id">
+                    <comment>lien vers la table commentaire</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Organisme" />
+        </set>
+        <set name="capteurs" inverse="true">
+            <key>
+                <column name="commentaire_id">
+                    <comment>lien vers la table commentaire</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Capteur" />
+        </set>
+        <set name="typeCapteurs" inverse="true">
+            <key>
+                <column name="commentaire_id">
+                    <comment>lien vers la table commentaire</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.TypeCapteur" />
+        </set>
+        <set name="sequences" inverse="true">
+            <key>
+                <column name="commentaire_id">
+                    <comment>lien vers la table commentaire</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Sequence" />
+        </set>
+        <set name="zones" inverse="true">
+            <key>
+                <column name="commentaire_id">
+                    <comment>lien vers la table commentaire</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Zone" />
+        </set>
+        <set name="personnes" inverse="true">
+            <key>
+                <column name="commentaire_id" not-null="true">
+                    <comment>lien vers la table commentaire</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Personne" />
+        </set>
+        <set name="typePlateformes" inverse="true">
+            <key>
+                <column name="commentaire_id">
+                    <comment>lien vers la table commentaire</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.TypePlateforme" />
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/DeltaMesure.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/DeltaMesure.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/DeltaMesure.hbm.xml	(revision 482)
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.DeltaMesure" table="delta_mesure" schema="public">
+        <comment>Table indiquant les ecarts de mesure</comment>
+        <id name="deltaMesureId" type="int">
+            <column name="delta_mesure_id" />
+            <generator class="sequence">
+            <param name="sequence">delta_mesure_delta_mesure_id_seq</param>
+            </generator>
+        </id>
+        <property name="deltaMesureDate" type="int">
+            <column name="delta_mesure_date" not-null="true">
+                <comment>periode de la mesure</comment>
+            </column>
+        </property>
+        <property name="deltaMesureLat" type="int">
+            <column name="delta_mesure_lat" not-null="true">
+                <comment>difference de latitude</comment>
+            </column>
+        </property>
+        <property name="deltaMesureLon" type="int">
+            <column name="delta_mesure_lon" not-null="true">
+                <comment>difference de longitude</comment>
+            </column>
+        </property>
+        <property name="deltaMesureAlt" type="int">
+            <column name="delta_mesure_alt" not-null="true">
+                <comment>difference d'altitude</comment>
+            </column>
+        </property>
+        <property name="deltaMesureHs" type="java.lang.Integer">
+            <column name="delta_mesure_hs">
+                <comment>difference de hauteur sol</comment>
+            </column>
+        </property>
+        <set name="mesures" inverse="true">
+            <key>
+                <column name="delta_mesure_id">
+                    <comment>lien vers la table delta_mesure</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Mesure" />
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Fabriquant.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Fabriquant.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Fabriquant.hbm.xml	(revision 482)
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.Fabriquant" table="fabriquant" schema="public">
+        <comment>Table indiquant les noms des fabriquants</comment>
+        <id name="fabriquantId" type="int">
+            <column name="fabriquant_id" />
+            <generator class="sequence">
+            <param name="sequence">fabriquant_fabriquant_id_seq</param>
+            </generator>
+        </id>
+        <property name="fabriquantNom" type="string">
+            <column name="fabriquant_nom" length="100" not-null="true" unique="true">
+                <comment>nom du fabriquant</comment>
+            </column>
+        </property>
+        <set name="capteurs" inverse="true">
+            <key>
+                <column name="fabriquant_id" not-null="true">
+                    <comment>lien vers la table fabriquant</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Capteur" />
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Fichier.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Fichier.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Fichier.hbm.xml	(revision 482)
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.Fichier" table="fichier" schema="public">
+        <comment>Table contenant la liste des fichiers integres</comment>
+        <id name="fichierId" type="int">
+            <column name="fichier_id" />
+            <generator class="sequence">
+            <param name="sequence">fichier_fichier_id_seq</param>
+            </generator>
+        </id>
+        <many-to-one name="jeu" class="integration.hibernate.Jeu" fetch="select">
+            <column name="jeu_id" not-null="true">
+                <comment>lien vers la table jeu</comment>
+            </column>
+        </many-to-one>
+        <property name="fichierNom" type="string">
+            <column name="fichier_nom" length="100" not-null="true">
+                <comment>nom du fichier</comment>
+            </column>
+        </property>
+        <property name="fichierChemin" type="string">
+            <column name="fichier_chemin" length="200">
+                <comment>chemin du fichier</comment>
+            </column>
+        </property>
+        <property name="fichierTaille" type="big_decimal">
+            <column name="fichier_taille" precision="65535" scale="65531" not-null="true">
+                <comment>taille du fichier</comment>
+            </column>
+        </property>
+        <set name="mesures" inverse="true">
+            <key>
+                <column name="fichier_id" not-null="true">
+                    <comment>lien vers la table fichier</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Mesure" />
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Flag.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Flag.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Flag.hbm.xml	(revision 482)
@@ -0,0 +1,52 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.Flag" table="flag" schema="public">
+        <comment>Table indiquant les differentes contraintes associees a certains attributs</comment>
+        <id name="flagId" type="int">
+            <column name="flag_id" />
+            <generator class="sequence">
+            <param name="sequence">flag_flag_id_seq</param>
+            </generator>
+        </id>
+        <property name="flagNom" type="string">
+            <column name="flag_nom" length="100" not-null="true" unique="true">
+                <comment>nom du flag</comment>
+            </column>
+        </property>
+        <set name="valeursForValiditeFlag" inverse="true">
+            <key>
+                <column name="validite_flag">
+                    <comment>lien vers la table flag (contrainte sur la validite)</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Valeur" />
+        </set>
+        <set name="localisationsForLatlonFlag" inverse="true">
+            <key>
+                <column name="latlon_flag">
+                    <comment>lien vers la table flag (contrainte sur la latitude/longitude)</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Localisation" />
+        </set>
+        <set name="valeursForValeurFlag" inverse="true">
+            <key>
+                <column name="valeur_flag">
+                    <comment>lien vers la table flag (contrainte sur la valeur)</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Valeur" />
+        </set>
+        <set name="localisationsForAltitudeFlag" inverse="true">
+            <key>
+                <column name="altitude_flag">
+                    <comment>lien vers la table flag (contrainte sur l'altitude)</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Localisation" />
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Jeu.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Jeu.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Jeu.hbm.xml	(revision 482)
@@ -0,0 +1,183 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.Jeu" table="jeu" schema="public">
+        <comment>Table exprimant des informations sur les jeux de donnees de la base</comment>
+        <id name="jeuId" type="int">
+            <column name="jeu_id" />
+            <generator class="sequence">
+            <param name="sequence">jeu_jeu_id_seq</param>
+            </generator>
+        </id>
+        <many-to-one name="personneByPiId" class="integration.hibernate.Personne" fetch="select">
+            <column name="pi_id">
+                <comment>lien vers la table personne (pi)</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="personneByContactId" class="integration.hibernate.Personne" fetch="select">
+            <column name="contact_id" not-null="true">
+                <comment>lien vers la table personne (contact technique)</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="personneByIntegrateurId" class="integration.hibernate.Personne" fetch="select">
+            <column name="integrateur_id" not-null="true">
+                <comment>lien vers la table personne (integrateur)</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="organisme" class="integration.hibernate.Organisme" fetch="select">
+            <column name="organisme_id" not-null="true">
+                <comment>lien vers la table organisme</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="commentaire" class="integration.hibernate.Commentaire" fetch="select">
+            <column name="commentaire_id">
+                <comment>lien vers la table commentaire</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="categorie" class="integration.hibernate.Categorie" fetch="select">
+            <column name="categorie_id" not-null="true">
+                <comment>lien vers la table categorie</comment>
+            </column>
+        </many-to-one>
+        <property name="jeuNom" type="string">
+            <column name="jeu_nom" length="50" not-null="true" unique="true">
+                <comment>nom du jeu</comment>
+            </column>
+        </property>
+        <property name="jeuDated" type="timestamp">
+            <column name="jeu_dated" length="8">
+                <comment>date de debut du jeu de donnees</comment>
+            </column>
+        </property>
+        <property name="jeuDatef" type="timestamp">
+            <column name="jeu_datef" length="8">
+                <comment>date de fin du jeu de donnees</comment>
+            </column>
+        </property>
+        <property name="jeuLatmin" type="java.lang.Integer">
+            <column name="jeu_latmin">
+                <comment>latitude minimale</comment>
+            </column>
+        </property>
+        <property name="jeuLatmax" type="java.lang.Integer">
+            <column name="jeu_latmax">
+                <comment>latitude maximale</comment>
+            </column>
+        </property>
+        <property name="jeuLonmin" type="java.lang.Integer">
+            <column name="jeu_lonmin">
+                <comment>longitude minimale</comment>
+            </column>
+        </property>
+        <property name="jeuLonmax" type="java.lang.Integer">
+            <column name="jeu_lonmax">
+                <comment>longitude maximale</comment>
+            </column>
+        </property>
+        <property name="jeuAltmin" type="java.lang.Integer">
+            <column name="jeu_altmin">
+                <comment>altitude minimale</comment>
+            </column>
+        </property>
+        <property name="jeuAltmax" type="java.lang.Integer">
+            <column name="jeu_altmax">
+                <comment>altitude maximale</comment>
+            </column>
+        </property>
+        <property name="jeuHsmin" type="java.lang.Integer">
+            <column name="jeu_hsmin">
+                <comment>hauteur sol minimale</comment>
+            </column>
+        </property>
+        <property name="jeuHsmax" type="java.lang.Integer">
+            <column name="jeu_hsmax">
+                <comment>hauteur sol maximale</comment>
+            </column>
+        </property>
+        <property name="jeuDateinser" type="timestamp">
+            <column name="jeu_dateinser" length="8" not-null="true">
+                <comment>date d'insertion du jeu de donnees</comment>
+            </column>
+        </property>
+        <property name="jeuDatemodif" type="timestamp">
+            <column name="jeu_datemodif" length="8">
+                <comment>date de modification du jeu de donnees</comment>
+            </column>
+        </property>
+        <property name="jeuNumversion" type="string">
+            <column name="jeu_numversion" length="10">
+                <comment>numÃ©ro de version</comment>
+            </column>
+        </property>
+        <set name="plateformes" table="requete_plat_jeu">
+            <key>
+                <column name="jeu_id" not-null="true">
+                    <comment>lien vers la table jeu</comment>
+                </column>
+            </key>
+            <many-to-many entity-name="integration.hibernate.Plateforme">
+                <column name="plateforme_id" not-null="true">
+                    <comment>lien vers la table plateforme</comment>
+                </column>
+            </many-to-many>
+        </set>
+        <set name="bilans" inverse="true">
+            <key>
+                <column name="jeu_id" not-null="true">
+                    <comment>lien vers la table jeu</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Bilan" />
+        </set>
+        <set name="capteurs" table="requete_capt_jeu">
+            <key>
+                <column name="jeu_id" not-null="true">
+                    <comment>lien vers la table jeu</comment>
+                </column>
+            </key>
+            <many-to-many entity-name="integration.hibernate.Capteur">
+                <column name="capteur_id" not-null="true">
+                    <comment>lien vers la table capteur</comment>
+                </column>
+            </many-to-many>
+        </set>
+        <set name="parametres" table="requete_param_jeu">
+            <key>
+                <column name="jeu_id" not-null="true">
+                    <comment>lien vers la table jeu</comment>
+                </column>
+            </key>
+            <many-to-many entity-name="integration.hibernate.Parametre">
+                <column name="parametre_id" not-null="true">
+                    <comment>lien vers la table parametre</comment>
+                </column>
+            </many-to-many>
+        </set>
+        <set name="sequences" inverse="true">
+            <key>
+                <column name="jeu_id" not-null="true">
+                    <comment>lien vers la table jeu</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Sequence" />
+        </set>
+        <set name="fichiers" inverse="true">
+            <key>
+                <column name="jeu_id" not-null="true">
+                    <comment>lien vers la table jeu</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Fichier" />
+        </set>
+        <set name="requeteNbvalsJeus" inverse="true">
+            <key>
+                <column name="jeu_id" not-null="true" unique="true">
+                    <comment>lien vers la table jeu</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.RequeteNbvalsJeu" />
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Langue.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Langue.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Langue.hbm.xml	(revision 482)
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.Langue" table="langue" schema="public">
+        <comment>Table contenant les langages des commentaires</comment>
+        <id name="langueId" type="string">
+            <column name="langue_id" length="2" />
+            <generator class="native" />
+        </id>
+        <property name="langueNom" type="string">
+            <column name="langue_nom" length="50" not-null="true" unique="true">
+                <comment>langue</comment>
+            </column>
+        </property>
+        <set name="commentaires" inverse="true">
+            <key>
+                <column name="langue_id" length="2" not-null="true">
+                    <comment>lien vers la table langue</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Commentaire" />
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Localisation.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Localisation.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Localisation.hbm.xml	(revision 482)
@@ -0,0 +1,53 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.Localisation" table="localisation" schema="public">
+        <comment>Table indiquant les localisations des mesures</comment>
+        <id name="localisationId" type="int">
+            <column name="localisation_id" />
+            <generator class="sequence">
+            <param name="sequence">localisation_localisation_id_seq</param>
+            </generator>
+        </id>
+        <many-to-one name="flagByAltitudeFlag" class="integration.hibernate.Flag" fetch="select">
+            <column name="altitude_flag">
+                <comment>lien vers la table flag (contrainte sur l'altitude)</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="flagByLatlonFlag" class="integration.hibernate.Flag" fetch="select">
+            <column name="latlon_flag">
+                <comment>lien vers la table flag (contrainte sur la latitude/longitude)</comment>
+            </column>
+        </many-to-one>
+        <property name="localisationLat" type="int">
+            <column name="localisation_lat" not-null="true">
+                <comment>latitude</comment>
+            </column>
+        </property>
+        <property name="localisationLon" type="int">
+            <column name="localisation_lon" not-null="true">
+                <comment>longitude</comment>
+            </column>
+        </property>
+        <property name="localisationAlt" type="int">
+            <column name="localisation_alt" not-null="true">
+                <comment>altitude</comment>
+            </column>
+        </property>
+        <property name="localisationHs" type="java.lang.Integer">
+            <column name="localisation_hs">
+                <comment>hauteur par rapport au sol</comment>
+            </column>
+        </property>
+        <set name="mesures" inverse="true">
+            <key>
+                <column name="localisation_id" not-null="true">
+                    <comment>lien vers la table localisation</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Mesure" />
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Mesure.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Mesure.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Mesure.hbm.xml	(revision 482)
@@ -0,0 +1,53 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.Mesure" table="mesure" schema="public">
+        <comment>Table contenant les mesures</comment>
+        <id name="mesureId" type="int">
+            <column name="mesure_id" />
+            <generator class="sequence">
+            <param name="sequence">mesure_mesure_id_seq</param>
+            </generator>
+        </id>
+        <many-to-one name="localisation" class="integration.hibernate.Localisation" fetch="select">
+            <column name="localisation_id" not-null="true">
+                <comment>lien vers la table localisation</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="plateforme" class="integration.hibernate.Plateforme" fetch="select">
+            <column name="plateforme_id" not-null="true">
+                <comment>lien vers la table plateforme</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="fichier" class="integration.hibernate.Fichier" fetch="select">
+            <column name="fichier_id" not-null="true">
+                <comment>lien vers la table fichier</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="sequence" class="integration.hibernate.Sequence" fetch="select">
+            <column name="sequence_id">
+                <comment>lien vers la table sequence</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="deltaMesure" class="integration.hibernate.DeltaMesure" fetch="select">
+            <column name="delta_mesure_id">
+                <comment>lien vers la table delta_mesure</comment>
+            </column>
+        </many-to-one>
+        <property name="mesureDate" type="timestamp">
+            <column name="mesure_date" length="8" not-null="true">
+                <comment>date de la mesure</comment>
+            </column>
+        </property>
+        <set name="valeurs" inverse="true">
+            <key>
+                <column name="mesure_id" not-null="true">
+                    <comment>lien vers la table mesure</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Valeur" />
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Organisme.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Organisme.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Organisme.hbm.xml	(revision 482)
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.Organisme" table="organisme" schema="public">
+        <comment>Table indiquant les organismes representes</comment>
+        <id name="organismeId" type="int">
+            <column name="organisme_id" />
+            <generator class="sequence">
+            <param name="sequence">organisme_organisme_id_seq</param>
+            </generator>
+        </id>
+        <many-to-one name="commentaire" class="integration.hibernate.Commentaire" fetch="select">
+            <column name="commentaire_id">
+                <comment>lien vers la table commentaire</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="adresse" class="integration.hibernate.Adresse" fetch="select">
+            <column name="adresse_id" not-null="true">
+                <comment>lien vers la table adresse</comment>
+            </column>
+        </many-to-one>
+        <property name="organismeNom" type="string">
+            <column name="organisme_nom" length="50" not-null="true" unique="true">
+                <comment>nom de l'organisme</comment>
+            </column>
+        </property>
+        <property name="organismeMail" type="string">
+            <column name="organisme_mail" length="100">
+                <comment>mail de l'organisme</comment>
+            </column>
+        </property>
+        <set name="jeus" inverse="true">
+            <key>
+                <column name="organisme_id" not-null="true">
+                    <comment>lien vers la table organisme</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Jeu" />
+        </set>
+        <set name="personnes" inverse="true">
+            <key>
+                <column name="organisme_id" not-null="true">
+                    <comment>lien vers la table organisme</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Personne" />
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Parametre.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Parametre.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Parametre.hbm.xml	(revision 482)
@@ -0,0 +1,92 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.Parametre" table="parametre" schema="public">
+        <comment>Table enumerant les differents parametres de mesure</comment>
+        <id name="parametreId" type="int">
+            <column name="parametre_id" />
+            <generator class="sequence">
+            <param name="sequence">parametre_parametre_id_seq</param>
+            </generator>
+        </id>
+        <many-to-one name="unite" class="integration.hibernate.Unite" fetch="select">
+            <column name="unite_id" not-null="true">
+                <comment>lien vers la table unite</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="categorieParam" class="integration.hibernate.CategorieParam" fetch="select">
+            <column name="categorie_param_id" not-null="true">
+                <comment>lien vers la table categorie_param</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="commentaire" class="integration.hibernate.Commentaire" fetch="select">
+            <column name="commentaire_id">
+                <comment>lien vers la table commentaire</comment>
+            </column>
+        </many-to-one>
+        <property name="parametreNom" type="string">
+            <column name="parametre_nom" length="100" not-null="true">
+                <comment>nom du parametre</comment>
+            </column>
+        </property>
+        <property name="parametreCode" type="string">
+            <column name="parametre_code" length="30" not-null="true" unique="true">
+                <comment>code du parametre</comment>
+            </column>
+        </property>
+        <set name="jeus" table="requete_param_jeu">
+            <key>
+                <column name="parametre_id" not-null="true">
+                    <comment>lien vers la table parametre</comment>
+                </column>
+            </key>
+            <many-to-many entity-name="integration.hibernate.Jeu">
+                <column name="jeu_id" not-null="true">
+                    <comment>lien vers la table jeu</comment>
+                </column>
+            </many-to-many>
+        </set>
+        <set name="plateformes" inverse="true" table="requete_plat_param">
+            <key>
+                <column name="parametre_id" not-null="true">
+                    <comment>lien vers la table parametre</comment>
+                </column>
+            </key>
+            <many-to-many entity-name="integration.hibernate.Plateforme">
+                <column name="plateforme_id" not-null="true">
+                    <comment>lien vers la table plateforme</comment>
+                </column>
+            </many-to-many>
+        </set>
+        <set name="bilans" inverse="true">
+            <key>
+                <column name="parametre_id" not-null="true">
+                    <comment>lien vers la table parametre</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Bilan" />
+        </set>
+        <set name="capteurs" inverse="true" table="requete_param_capt">
+            <key>
+                <column name="parametre_id" not-null="true">
+                    <comment>lien vers la table parametre</comment>
+                </column>
+            </key>
+            <many-to-many entity-name="integration.hibernate.Capteur">
+                <column name="capteur_id" not-null="true">
+                    <comment>lien vers la table capteur</comment>
+                </column>
+            </many-to-many>
+        </set>
+        <set name="valeurs" inverse="true">
+            <key>
+                <column name="parametre_id" not-null="true">
+                    <comment>lien vers la table parametre</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Valeur" />
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Personne.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Personne.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Personne.hbm.xml	(revision 482)
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.Personne" table="personne" schema="public">
+        <comment>Table contenant les differents intervenants</comment>
+        <id name="personneId" type="int">
+            <column name="personne_id" />
+            <generator class="sequence">
+            <param name="sequence">personne_personne_id_seq</param>
+            </generator>
+        </id>
+        <many-to-one name="organisme" class="integration.hibernate.Organisme" fetch="select">
+            <column name="organisme_id" not-null="true">
+                <comment>lien vers la table organisme</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="commentaire" class="integration.hibernate.Commentaire" fetch="select">
+            <column name="commentaire_id">
+                <comment>lien vers la table commentaire</comment>
+            </column>
+        </many-to-one>
+        <property name="personneNom" type="string">
+            <column name="personne_nom" length="50">
+                <comment>nom de la personne</comment>
+            </column>
+        </property>
+        <property name="personnePrenom" type="string">
+            <column name="personne_prenom" length="50">
+                <comment>prenom de la personne</comment>
+            </column>
+        </property>
+        <property name="personneMail" type="string">
+            <column name="personne_mail" length="100" not-null="true">
+                <comment>mail de la personne</comment>
+            </column>
+        </property>
+        <set name="jeusForContactId" inverse="true">
+            <key>
+                <column name="contact_id" not-null="true">
+                    <comment>lien vers la table personne (contact technique)</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Jeu" />
+        </set>
+        <set name="jeusForPiId" inverse="true">
+            <key>
+                <column name="pi_id">
+                    <comment>lien vers la table personne (pi)</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Jeu" />
+        </set>
+        <set name="jeusForIntegrateurId" inverse="true">
+            <key>
+                <column name="integrateur_id" not-null="true">
+                    <comment>lien vers la table personne (integrateur)</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Jeu" />
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Plateforme.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Plateforme.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Plateforme.hbm.xml	(revision 482)
@@ -0,0 +1,90 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.Plateforme" table="plateforme" schema="public">
+        <comment>Table contenant les nom des plateformes</comment>
+        <id name="plateformeId" type="int">
+            <column name="plateforme_id" />
+            <generator class="sequence">
+            <param name="sequence">plateforme_plateforme_id_seq</param>
+            </generator>
+        </id>
+        <many-to-one name="commentaire" class="integration.hibernate.Commentaire" fetch="select">
+            <column name="commentaire_id">
+                <comment>lien vers la table commentaire</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="typePlateforme" class="integration.hibernate.TypePlateforme" fetch="select">
+            <column name="type_plateforme_id" not-null="true">
+                <comment>lien vers la table type_plateforme</comment>
+            </column>
+        </many-to-one>
+        <property name="plateformeNom" type="string">
+            <column name="plateforme_nom" length="50" not-null="true" unique="true">
+                <comment>nom de la plateforme</comment>
+            </column>
+        </property>
+        <set name="bilans" inverse="true" >
+            <key>
+                <column name="plateforme_id" not-null="true">
+                    <comment>lien vers la table plateforme</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Bilan" />
+        </set>
+        <set name="mesures" inverse="true">
+            <key>
+                <column name="plateforme_id" not-null="true">
+                    <comment>lien vers la table plateforme</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Mesure" />
+        </set>
+        <set name="parametres" table="requete_plat_param">
+            <key>
+                <column name="plateforme_id" not-null="true">
+                    <comment>lien vers la table plateforme</comment>
+                </column>
+            </key>
+            <many-to-many entity-name="integration.hibernate.Parametre">
+                <column name="parametre_id" not-null="true">
+                    <comment>lien vers la table parametre</comment>
+                </column>
+            </many-to-many>
+        </set>
+        <set name="capteurs" table="requete_plat_capt">
+            <key>
+                <column name="plateforme_id" not-null="true">
+                    <comment>lien vers la table plateforme</comment>
+                </column>
+            </key>
+            <many-to-many entity-name="integration.hibernate.Capteur">
+                <column name="capteur_id" not-null="true">
+                    <comment>lien vers la table capteur</comment>
+                </column>
+            </many-to-many>
+        </set>
+        <set name="requetePlatLocs" inverse="true">
+            <key>
+                <column name="plateforme_id" not-null="true" unique="true">
+                    <comment>lien vers la table plateforme</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.RequetePlatLoc" />
+        </set>
+        <set name="jeus" table="requete_plat_jeu">
+            <key>
+                <column name="plateforme_id" not-null="true">
+                    <comment>lien vers la table plateforme</comment>
+                </column>
+            </key>
+            <many-to-many entity-name="integration.hibernate.Jeu">
+                <column name="jeu_id" not-null="true">
+                    <comment>lien vers la table jeu</comment>
+                </column>
+            </many-to-many>
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/RequeteNbvalsJeu.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/RequeteNbvalsJeu.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/RequeteNbvalsJeu.hbm.xml	(revision 482)
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.RequeteNbvalsJeu" table="requete_nbvals_jeu" schema="public">
+        <comment>Table informant sur les nombres de fichiers, de mesures de de valeurs pour chaque jeu</comment>
+        <id name="jeuId" type="int">
+            <column name="jeu_id" />
+<!--             <generator class="native" />-->
+        </id>
+         <many-to-one name="jeu" class="integration.hibernate.Jeu" update="false" insert="false" fetch="select">
+            <column name="jeu_id" not-null="true" unique="true">
+                <comment>lien vers la table jeu</comment>
+            </column>
+        </many-to-one>
+        <property name="nbFichiers" type="int">
+            <column name="nb_fichiers" not-null="true">
+                <comment>nombre de fichiers du jeu</comment>
+            </column>
+        </property>
+        <property name="nbMesures" type="int">
+            <column name="nb_mesures" not-null="true">
+                <comment>nombre de mesures du jeu</comment>
+            </column>
+        </property>
+        <property name="nbValeurs" type="int">
+            <column name="nb_valeurs" not-null="true">
+                <comment>nombre de valeurs du jeu</comment>
+            </column>
+        </property>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/RequetePlatLoc.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/RequetePlatLoc.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/RequetePlatLoc.hbm.xml	(revision 482)
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.RequetePlatLoc" table="requete_plat_loc" schema="public">
+        <comment>Table contenant les positions extremes de chaque plateforme</comment>
+        <id name="plateformeId" type="int">
+            <column name="plateforme_id" />
+<!--             <generator class="native" />-->
+        </id>
+        <many-to-one name="plateforme" class="integration.hibernate.Plateforme" update="false" insert="false" fetch="select">
+            <column name="plateforme_id" not-null="true" unique="true">
+                <comment>lien vers la table plateforme</comment>
+            </column>
+        </many-to-one>
+        <property name="latMin" type="int">
+            <column name="lat_min" not-null="true">
+                <comment>latitude minimale</comment>
+            </column>
+        </property>
+        <property name="latMax" type="int">
+            <column name="lat_max" not-null="true">
+                <comment>latitude maximale</comment>
+            </column>
+        </property>
+        <property name="lonMin" type="int">
+            <column name="lon_min" not-null="true">
+                <comment>longitude minimale</comment>
+            </column>
+        </property>
+        <property name="lonMax" type="int">
+            <column name="lon_max" not-null="true">
+                <comment>longitude maximale</comment>
+            </column>
+        </property>
+        <property name="altMin" type="int">
+            <column name="alt_min" not-null="true">
+                <comment>altitude minimale</comment>
+            </column>
+        </property>
+        <property name="altMax" type="int">
+            <column name="alt_max" not-null="true">
+                <comment>altitude maximale</comment>
+            </column>
+        </property>
+        <property name="hsMin" type="java.lang.Integer">
+            <column name="hs_min">
+                <comment>hauteur sol minimale</comment>
+            </column>
+        </property>
+        <property name="hsMax" type="java.lang.Integer">
+            <column name="hs_max">
+                <comment>hauteur sol maximale</comment>
+            </column>
+        </property>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Sequence.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Sequence.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Sequence.hbm.xml	(revision 482)
@@ -0,0 +1,83 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.Sequence" table="sequence" schema="public">
+        <comment>Table contenant des suites de mesures</comment>
+        <id name="sequenceId" type="int">
+            <column name="sequence_id" />
+            <generator class="sequence">
+            <param name="sequence">sequence_sequence_id_seq</param>
+            </generator>
+        </id>
+        <many-to-one name="commentaire" class="integration.hibernate.Commentaire" fetch="select">
+            <column name="commentaire_id">
+                <comment>lien vers la table commentaire</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="jeu" class="integration.hibernate.Jeu" fetch="select">
+            <column name="jeu_id" not-null="true">
+                <comment>lien vers la table jeu</comment>
+            </column>
+        </many-to-one>
+        <property name="sequenceDated" type="timestamp">
+            <column name="sequence_dated" length="8" not-null="true">
+                <comment>date de debut de la sequence</comment>
+            </column>
+        </property>
+        <property name="sequenceDatef" type="timestamp">
+            <column name="sequence_datef" length="8" not-null="true">
+                <comment>date de fin de la sequence</comment>
+            </column>
+        </property>
+        <property name="sequenceLatd" type="java.lang.Integer">
+            <column name="sequence_latd">
+                <comment>latitude minimale</comment>
+            </column>
+        </property>
+        <property name="sequenceLatf" type="java.lang.Integer">
+            <column name="sequence_latf">
+                <comment>latitude maximale</comment>
+            </column>
+        </property>
+        <property name="sequenceLond" type="java.lang.Integer">
+            <column name="sequence_lond">
+                <comment>longitude minimale</comment>
+            </column>
+        </property>
+        <property name="sequenceLonf" type="java.lang.Integer">
+            <column name="sequence_lonf">
+                <comment>longitude maximale</comment>
+            </column>
+        </property>
+        <property name="sequenceAltd" type="java.lang.Integer">
+            <column name="sequence_altd">
+                <comment>altitude minimale</comment>
+            </column>
+        </property>
+        <property name="sequenceAltf" type="java.lang.Integer">
+            <column name="sequence_altf">
+                <comment>altitude maximale</comment>
+            </column>
+        </property>
+        <property name="sequenceHsd" type="java.lang.Integer">
+            <column name="sequence_hsd">
+                <comment>hauteur sol minimale</comment>
+            </column>
+        </property>
+        <property name="sequenceHsf" type="java.lang.Integer">
+            <column name="sequence_hsf">
+                <comment>hauteur sol maximale</comment>
+            </column>
+        </property>
+        <set name="mesures" inverse="true">
+            <key>
+                <column name="sequence_id">
+                    <comment>lien vers la table sequence</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Mesure" />
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/TypeCapteur.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/TypeCapteur.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/TypeCapteur.hbm.xml	(revision 482)
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.TypeCapteur" table="type_capteur" schema="public">
+        <comment>Table contenant les types de capteur utilises</comment>
+        <id name="typeCapteurId" type="int">
+            <column name="type_capteur_id" />
+            <generator class="sequence">
+            <param name="sequence">type_capteur_type_capteur_id_seq</param>
+            </generator>
+        </id>
+        <many-to-one name="commentaire" class="integration.hibernate.Commentaire" fetch="select">
+            <column name="commentaire_id">
+                <comment>lien vers la table commentaire</comment>
+            </column>
+        </many-to-one>
+        <property name="typeCapteurNom" type="string">
+            <column name="type_capteur_nom" length="100" not-null="true" unique="true">
+                <comment>nom du type de capteur</comment>
+            </column>
+        </property>
+        <set name="capteurs" inverse="true">
+            <key>
+                <column name="type_capteur_id" not-null="true">
+                    <comment>lien vers la table type_capteur</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Capteur" />
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/TypePlateforme.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/TypePlateforme.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/TypePlateforme.hbm.xml	(revision 482)
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.TypePlateforme" table="type_plateforme" schema="public">
+        <comment>Table contenant les type de plateforme utilises</comment>
+        <id name="typePlateformeId" type="int">
+            <column name="type_plateforme_id" />
+            <generator class="native" />
+        </id>
+        <many-to-one name="commentaire" class="integration.hibernate.Commentaire" fetch="select">
+            <column name="commentaire_id">
+                <comment>lien vers la table commentaire</comment>
+            </column>
+        </many-to-one>
+        <property name="typePlateformeNom" type="string">
+            <column name="type_plateforme_nom" length="50" not-null="true" unique="true">
+                <comment>nom du type de plateforme</comment>
+            </column>
+        </property>
+        <property name="typePlateformeStype" type="string">
+            <column name="type_plateforme_stype" length="50">
+                <comment>sous-type du type de plateforme</comment>
+            </column>
+        </property>
+        <set name="plateformes" inverse="true">
+            <key>
+                <column name="type_plateforme_id" not-null="true">
+                    <comment>lien vers la table type_plateforme</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Plateforme" />
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Unite.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Unite.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Unite.hbm.xml	(revision 482)
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.Unite" table="unite" schema="public">
+        <comment>Table contenant toutes les unites utilisees</comment>
+        <id name="uniteId" type="int">
+            <column name="unite_id" />
+            <generator class="sequence">
+            <param name="sequence">unite_unite_id_seq</param>
+            </generator>
+        </id>
+        <property name="uniteNom" type="string">
+            <column name="unite_nom" length="50">
+                <comment>nom de l'unite</comment>
+            </column>
+        </property>
+        <property name="uniteCode" type="string">
+            <column name="unite_code" length="20" not-null="true" unique="true">
+                <comment>code de l'unite</comment>
+            </column>
+        </property>
+        <set name="parametres" inverse="true">
+            <key>
+                <column name="unite_id" not-null="true">
+                    <comment>lien vers la table unite</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Parametre" />
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Valeur.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Valeur.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Valeur.hbm.xml	(revision 482)
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.Valeur" table="valeur" schema="public">
+        <comment>Table contenant les donnees brutes de la base</comment>
+        <id name="valeurId" type="int">
+            <column name="valeur_id" />
+            <generator class="sequence">
+            <param name="sequence">valeur_valeur_id_seq</param>
+            </generator>  
+        </id>
+        <many-to-one name="flagByValeurFlag" class="integration.hibernate.Flag" fetch="select">
+            <column name="valeur_flag">
+                <comment>lien vers la table flag (contrainte sur la valeur)</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="capteur" class="integration.hibernate.Capteur" fetch="select">
+            <column name="capteur_id" not-null="true">
+                <comment>lien avec la table capteur</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="parametre" class="integration.hibernate.Parametre" fetch="select">
+            <column name="parametre_id" not-null="true">
+                <comment>lien vers la table parametre</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="flagByValiditeFlag" class="integration.hibernate.Flag" fetch="select">
+            <column name="validite_flag">
+                <comment>lien vers la table flag (contrainte sur la validite)</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="mesure" class="integration.hibernate.Mesure" fetch="select">
+            <column name="mesure_id" not-null="true">
+                <comment>lien vers la table mesure</comment>
+            </column>
+        </many-to-one>
+        <property name="valeurVal" type="double">
+            <column name="valeur_val" precision="8" scale="0" not-null="true">
+                <comment>valeur</comment>
+            </column>
+        </property>
+        <property name="valeurDelta" type="java.lang.Double">
+            <column name="valeur_delta" precision="8" scale="0">
+                <comment>precision de la mesure</comment>
+            </column>
+        </property>
+        <property name="valeurLod" type="java.lang.Double">
+            <column name="valeur_lod" precision="8" scale="0">
+                <comment>limit of detection</comment>
+            </column>
+        </property>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Zone.hbm.xml
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Zone.hbm.xml	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/hibernate/cfg/Zone.hbm.xml	(revision 482)
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<!-- Generated 5 f?vr. 2007 11:07:12 by Hibernate Tools 3.2.0.b9 -->
+<hibernate-mapping>
+    <class name="integration.hibernate.Zone" table="zone" schema="public">
+        <comment>Table contenant les lieux geographiques</comment>
+        <id name="zoneId" type="int">
+            <column name="zone_id" />
+            <generator class="sequence">
+            <param name="sequence">zone_zone_id_seq</param>
+            </generator>
+        </id>
+        <many-to-one name="commentaire" class="integration.hibernate.Commentaire" fetch="select">
+            <column name="commentaire_id">
+                <comment>lien vers la table commentaire</comment>
+            </column>
+        </many-to-one>
+        <many-to-one name="zone" class="integration.hibernate.Zone" fetch="select">
+            <column name="appartient_id">
+                <comment>appartenance d'une zone a une autre zone</comment>
+            </column>
+        </many-to-one>
+        <property name="zoneNom" type="string">
+            <column name="zone_nom" length="50" not-null="true">
+                <comment>nom de la zone</comment>
+            </column>
+        </property>
+        <property name="zoneLatmin" type="int">
+            <column name="zone_latmin" not-null="true">
+                <comment>latitude minimale</comment>
+            </column>
+        </property>
+        <property name="zoneLatmax" type="int">
+            <column name="zone_latmax" not-null="true">
+                <comment>latitude maximale</comment>
+            </column>
+        </property>
+        <property name="zoneLonmin" type="int">
+            <column name="zone_lonmin" not-null="true">
+                <comment>longitude minimale</comment>
+            </column>
+        </property>
+        <property name="zoneLonmax" type="int">
+            <column name="zone_lonmax" not-null="true">
+                <comment>longitude maximale</comment>
+            </column>
+        </property>
+        <set name="zones" inverse="true">
+            <key>
+                <column name="appartient_id">
+                    <comment>appartenance d'une zone a une autre zone</comment>
+                </column>
+            </key>
+            <one-to-many class="integration.hibernate.Zone" />
+        </set>
+    </class>
+</hibernate-mapping>
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/insertion/Insertion.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/insertion/Insertion.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/insertion/Insertion.java	(revision 482)
@@ -0,0 +1,1310 @@
+/**
+ * Created on 24 Janvier. 2006
+ *  @author 
+ */
+
+package integration.insertion;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import integration.hibernate.*;
+import integration.utils.CommunicationBD;
+import integration.utils.Constantes;
+import integration.utils.DateTime;
+import integration.utils.Nombre;
+import integration.utils.Statiques;
+
+/**
+ * Classe permettant d'inserer les jeux de donnÃ©es
+ */
+public class Insertion {
+	 
+	/**               
+	 * Insertion de la valeur
+	 */
+	private int flagValidId = 0;
+	private int flagLocId = 0;
+	private boolean fichierExiste = false;
+	
+	public boolean isFichierExiste() {
+		return fichierExiste;
+	}
+	public void setFichierExiste(boolean fichierExiste) {
+		this.fichierExiste = fichierExiste;
+	}
+	public int getFlagLocId() {
+		return flagLocId;
+	}
+	public void setFlagLocId(int flagLocId) {
+		this.flagLocId = flagLocId;
+	}
+	public int getFlagValidId() {
+		return flagValidId;
+	}
+	public void setFlagValidId(int flagValidId) {
+		this.flagValidId = flagValidId;
+	}
+	
+	/**
+	 *  Insertion de la valeur
+	 */
+	public int insererValeur(Valeur valeur) throws Exception {//,int flagValiditeId
+		// on teste si le flag de la valeur est different de null : on l'insere
+		if (valeur.getFlagByValeurFlag() != null) {
+			int flagValeurId = insererFlag(valeur.getFlagByValeurFlag(),0);
+			valeur.getFlagByValeurFlag().setFlagId(flagValeurId);
+		}
+		// on teste si le flag de la validitÃ© est different de null : on l'insere
+		if (valeur.getFlagByValiditeFlag() != null) {
+			flagValidId = insererFlag(valeur.getFlagByValiditeFlag(),0);//flagValiditeId);
+			valeur.getFlagByValiditeFlag().setFlagId(flagValidId);
+		}
+
+		CommunicationBD.save(valeur);
+		return valeur.getValeurId();
+	}
+	
+	/**
+	 *  Insertion de la mesure
+	 */
+	public int insererMesure(Mesure mesure, ArrayList<Localisation> listeLocs) throws Exception {//,int flagId
+		insererLoc(mesure.getLocalisation(),listeLocs, mesure.getPlateforme().getTypePlateforme().getTypePlateformeNom());//,flagId);
+		if (mesure.getDeltaMesure() != null) {
+			insererDelta(mesure.getDeltaMesure());
+		}
+		CommunicationBD.save(mesure);
+		return mesure.getMesureId();
+	}
+	
+	/**
+	 * Insertion des flags 
+	 */
+	public int insererFlag(Flag flag, int flagPrecId) throws Exception {
+		int flagId = 0;
+		if (flagPrecId == 0) {
+			Flag flagExistant = (Flag) CommunicationBD.getObjectByColonne(Flag.class, "flagNom", flag.getFlagNom());
+			// si Le flag n'existe pas : on l'insÃ©re
+			if (flagExistant == null) {
+				CommunicationBD.save(flag);
+				flagId = flag.getFlagId();
+			}
+			// sinon le flag existe : on rÃ©cupÃ©re l'ID
+			else {
+				flagId = flagExistant.getFlagId();
+				flag.setFlagId(flagId);
+			}
+		} else {
+			flagId = flagPrecId;
+		}
+		return flagId;
+	}
+	
+	/**
+	 * Insertion de la zone
+	 */	
+//	public int insererZone(Zone zone) throws Exception {
+//		
+//		List zonesExistants = CommunicationBD.getList("select z.zoneId from Zone z " +
+//				"where zone_nom = '"+zone.getZoneNom()+"' " +
+//				"and zone_latmin = "+zone.getZoneLatmin()+" " +
+//				"and zone_latmax = '"+zone.getZoneLatmax()+"' " +
+//				"and zone_lonmin = '"+zone.getZoneLonmin()+"' " +
+//				"and zone_lonmax = '"+zone.getZoneLonmax()+"'");
+//
+//		int zoneId = 0;
+//		// si Le capteur n'existe pas : on l'insÃ©re
+//		if (zonesExistants.size() == 0) {
+//			if (zone.getCommentaire() != null) {
+//				insererCommentaire(zone.getCommentaire());
+//			}
+//			CommunicationBD.save(zone);
+//			zoneId = zone.getZoneId();
+//		}
+//		//Zone zoneExistant = (Zone) CommunicationBD.getObjectByColonne(
+//			//	Zone.class, "zone", zone.getZoneNom());
+//		// sinon Le capteur existe : on rÃ©cupÃ©re l'ID
+//		else {
+//			zoneId = ((Integer)zonesExistants.get(0)).intValue();
+//		}
+//		return zoneId;
+//			
+//		//Integer zoneId;
+//		 // La zone n'existe pas : on l'insÃ©re
+//		//if (zoneExistant == null) {
+//			//CommunicationBD.save(zone);
+//			//zoneId = new Integer(zone.getZoneId());
+//		//}
+//		// La zone existe : on rÃ©cupÃ©re l'ID
+//		//else {
+//		//	zoneId = new Integer(zoneExistant.getZoneId());
+//		//}
+//		//return zoneId;
+//	}
+	
+	/**
+	* Insertion du commentaire 
+	*/
+	public int insererCommentaire(Commentaire commentaire) throws Exception {
+//		Commentaire commentaireExistant = (Commentaire) CommunicationBD.getObjectByColonne(Commentaire.class, 
+//				"commentaireTxt",	commentaire.getCommentaireTxt());
+		List<?> commentaireExistant = CommunicationBD.getList("select c.commentaireId from Commentaire c where commentaire_txt = '"
+				+commentaire.getCommentaireTxt().replaceAll("'", "''")+"'");
+		// Le commentaire existe : on rÃ©cupÃ©re l'ID
+		if (commentaireExistant.size() != 0) {
+			commentaire.setCommentaireId(((Integer)commentaireExistant.get(0)).intValue());
+		}
+		CommunicationBD.save(commentaire);
+		int id = commentaire.getCommentaireId();
+		return id;
+	}	
+
+	/**
+	* Insertion de l'adresse
+	*/
+	public int insererAdresse(Adresse adresse) throws Exception {
+		List<?> adresseExistant = CommunicationBD.getList("select a.adresseId from Adresse a " +
+				"where adresse_rue = '"+adresse.getAdresseRue().replaceAll("'", "''")+"' " +
+				"and adresse_zip = '"+adresse.getAdresseZip().replaceAll("'", "''")+"' " +
+				"and adresse_ville = '"+adresse.getAdresseVille().replaceAll("'", "''")+"' " +
+				"and adresse_pays = '"+adresse.getAdressePays().replaceAll("'", "''")+"'");
+		// si L'adresse existe : on rÃ©cupÃ©re l'ID
+		if (adresseExistant.size() != 0) {
+			adresse.setAdresseId(((Integer)adresseExistant.get(0)).intValue());
+		}
+		CommunicationBD.save(adresse);
+		int adresseId = adresse.getAdresseId();
+		return adresseId;
+	}
+		
+	/**
+	* Insertion de l'organisme 
+	*/
+	public int insererOrganisme(Organisme organisme) throws Exception {
+		// l'adresse de l'organisme n'est pas nul : on l'insere
+		insererAdresse(organisme.getAdresse());
+		// si le commentaire de l'organisme n'est pas null : on l'insere
+		if (organisme.getCommentaire() != null) {
+			insererCommentaire(organisme.getCommentaire());
+		}
+		// on verifie si l'organisme n'existe pas dejÃ© dans la base
+//		Organisme organismeExistant = (Organisme) CommunicationBD.getObjectByColonne(Organisme.class, "organismeNom", organisme.getOrganismeNom());
+		List<?> organismeExistant = CommunicationBD.getList("select o.organismeId from Organisme o " +
+				"where organisme_nom = '"+organisme.getOrganismeNom().replaceAll("'", "''")+"'");
+		// si l'organisme existe : on rÃ©cupÃ©re l'ID
+		if (organismeExistant.size() != 0) {
+			organisme.setOrganismeId(((Integer)organismeExistant.get(0)).intValue());
+		}
+		CommunicationBD.save(organisme);			
+		int organismeId = organisme.getOrganismeId();
+		return organismeId;
+	}
+	
+	/**
+	* Insertion de la personne
+	*/
+	public int insererPersonne(Personne personne) throws Exception {
+		CommunicationBD.open();
+		insererOrganisme(personne.getOrganisme());
+		if (personne.getCommentaire() != null) {
+			insererCommentaire(personne.getCommentaire());
+		}
+		List<?> personneExistant = CommunicationBD.getList("select p.personneId from Personne p where personne_mail = '"
+				+personne.getPersonneMail().replaceAll("'", "''")+"'");
+//		Personne personneExistant = (Personne) CommunicationBD
+//				.getObjectByColonne(Personne.class, "personneMail", personne.getPersonneMail());
+		// si la personne existe : on rÃ©cupÃ©re l'ID
+		if (personneExistant.size() != 0) {
+			personne.setPersonneId(((Integer)personneExistant.get(0)).intValue());
+		}
+		CommunicationBD.save(personne);
+		int personneId = personne.getPersonneId();
+		CommunicationBD.close();
+		return personneId;
+	}
+	
+	/**
+	* Insertion du jeu 
+	*/
+	public int insererJeu(Jeu jeu) throws Exception {
+		CommunicationBD.open();
+		// si le commentaire du jeu n'est pas null : on l'insere
+		if (jeu.getCommentaire() != null) {
+			insererCommentaire(jeu.getCommentaire());
+		}
+		// inserer l'organisme du jeu
+		insererOrganisme(jeu.getOrganisme());
+//		insererPersonne(jeu.getPersonneByIntegrateurId());
+//		insererPersonne(jeu.getPersonneByContactId());
+		// on teste si le pi n est pas null : on l'insere
+//		if (jeu.getPersonneByPiId() != null) {
+//			insererPersonne(jeu.getPersonneByPiId());
+//		}
+		// On vÃ©rifie que le jeu n'existe pas dÃ©jÃ© dans la base
+//		Jeu jeuExistant = (Jeu) CommunicationBD.getObjectByColonne(Jeu.class,"jeuNom", jeu.getJeuNom());
+		List<?> jeuExistant = CommunicationBD.getList("select j.jeuId, j.jeuAltmax, " +
+				"j.jeuAltmin, j.jeuDated, j.jeuDatef, j.jeuLatmax, j.jeuLatmin, " +
+				"j.jeuLonmax, j.jeuLonmin from Jeu j where jeu_nom = '"+jeu.getJeuNom().replaceAll("'", "''")+"'");
+		
+		// si le jeu existe : on rÃ©cupÃ©re l'ID
+		if (jeuExistant.size() != 0) {
+			Object[] resultats = (Object[])jeuExistant.get(0);
+			jeu.setJeuId(((Integer)resultats[0]).intValue());
+			jeu.setJeuAltmax((Integer)resultats[1]);
+			jeu.setJeuAltmin((Integer)resultats[2]);
+			jeu.setJeuDated((Date)resultats[3]);
+			jeu.setJeuDatef((Date)resultats[4]);
+			jeu.setJeuLatmax((Integer)resultats[5]);
+			jeu.setJeuLatmin((Integer)resultats[6]);
+			jeu.setJeuLonmax((Integer)resultats[7]);
+			jeu.setJeuLonmin((Integer)resultats[8]);
+		}
+		CommunicationBD.save(jeu);
+		int jeuId = jeu.getJeuId();
+		CommunicationBD.close();
+		return jeuId;
+	}
+	
+	/**
+	* Insertion de la categorie (parametre)
+	*/
+	public int insererCategorieParam(CategorieParam categorieParam)throws Exception {
+//		CategorieParam categorieParamExistant = (CategorieParam) CommunicationBD.getObjectByColonne(CategorieParam.class, 
+//				"categorieParamNom", categorieParam.getCategorieParamNom().replaceAll("'", "''"));
+		List<?> categorieParamExistant = CommunicationBD.getList("select c.categorieParamId from CategorieParam c where categorie_param_nom = '"
+				+categorieParam.getCategorieParamNom().replaceAll("'", "''")+"'");
+		// La categorie du parametre existe : on rÃ©cupÃ©re l'ID
+		if (categorieParamExistant.size() != 0) {
+			categorieParam.setCategorieParamId(((Integer)categorieParamExistant.get(0)).intValue());
+		}
+		CommunicationBD.save(categorieParam);
+		int catId = categorieParam.getCategorieParamId();
+		return catId;
+	}
+
+	
+	/**
+	* Insertion de l'unite (parametre) 
+	*/
+	public int insererUniteParametre(Unite unite) throws Exception {
+		//Unite uniteExistant = (Unite) CommunicationBD.getObjectByColonne(Unite.class, "uniteCode", unite.getUniteCode().replaceAll("'", "''"));
+		List<?> uniteExistant = CommunicationBD.getList("select u.uniteId from Unite u where unite_code = '"+unite.getUniteCode().replaceAll("'", "''")+"'");
+		// si l'unite existe : on rÃ©cupÃ©re l'ID
+		if (uniteExistant.size() != 0) {
+			unite.setUniteId(((Integer)uniteExistant.get(0)).intValue());
+		}
+		CommunicationBD.save(unite);
+		int uniteId = unite.getUniteId();
+		return uniteId;
+	}
+	
+	/**
+	* Insertion du parametre 
+	*/
+	public int insererParametre(Parametre parametre) throws Exception {
+		CommunicationBD.open();
+		// On associe le jeu au paramÃ©tre
+//		for (Jeu jeuParam : parametre.getJeus()) {
+//			if (jeuParam.getJeuNom().equals(jeu.getJeuNom())) {
+//				jeuParam.setJeuId(jeu.getJeuId());
+//				break;
+//			}
+//		}
+		// le commentaire n'est pas null : on l'insere
+		if (parametre.getCommentaire() != null) {
+			insererCommentaire(parametre.getCommentaire());
+		}
+		insererCategorieParam(parametre.getCategorieParam());
+		insererUniteParametre(parametre.getUnite());
+//		Parametre parametreExistant = (Parametre) CommunicationBD.getObjectByColonne(Parametre.class, 
+//		"parametreCode", parametre.getParametreCode());
+		List<?> parametreExistant = CommunicationBD.getList("select p.parametreId from Parametre p " +
+		"where parametre_code = '"+parametre.getParametreCode().replaceAll("'", "''")+"'");
+		// Le parametre existe : on rÃ©cupÃ©re l'ID et les jeux associÃ©s
+		if (parametreExistant.size() != 0) {
+			parametre.setParametreId(((Integer)parametreExistant.get(0)).intValue());
+			List<?> jeusParam = CommunicationBD.getList("select p.jeus from Parametre p where p.parametreId = "+parametre.getParametreId());
+			for (int numJeu=0; numJeu < jeusParam.size(); numJeu++)			 {
+				parametre.getJeus().add((Jeu)jeusParam.get(numJeu));
+			}
+		}
+		CommunicationBD.save(parametre);
+		int parametreId = parametre.getParametreId();
+		CommunicationBD.close();
+		return parametreId;
+	}
+	
+	/**
+	* Insertion du fabriquant du capteur 
+	*/
+	public int insererFabriquant(Fabriquant fabriquant) throws Exception {
+		//Fabriquant fabriquantExistant = (Fabriquant) CommunicationBD.getObjectByColonne(Fabriquant.class, "fabriquantNom",fabriquant.getFabriquantNom());
+		List<?> fabriquantExistant = CommunicationBD.getList("select f.fabriquantId from Fabriquant f " +
+				"where fabriquant_nom = '"+fabriquant.getFabriquantNom().replaceAll("'", "''")+"'");
+		// Le fabriquant existe : on rÃ©cupÃ©re l'ID
+		if (fabriquantExistant.size() != 0) {
+			fabriquant.setFabriquantId(((Integer)fabriquantExistant.get(0)).intValue());
+		}
+		CommunicationBD.save(fabriquant);
+		int fabriquantId = fabriquant.getFabriquantId();
+		return fabriquantId;
+	}
+		
+	/**
+	* Insertion du type de capteur 
+	*/
+	public int insererTypeCapteur(TypeCapteur typeCapteur) throws Exception {
+		// si le commentaire n est pas null : on insere le commentaire du type du capteur 
+		if (typeCapteur.getCommentaire() != null) {
+			insererCommentaire(typeCapteur.getCommentaire());
+		}
+//		TypeCapteur typeCapteurExistant = (TypeCapteur) CommunicationBD.getObjectByColonne(TypeCapteur.class, "typeCapteurNom",
+//		typeCapteur.getTypeCapteurNom());
+		List<?> typeCapteurExistant = CommunicationBD.getList("select t.typeCapteurId from TypeCapteur t " +
+				"where type_capteur_nom = '"+typeCapteur.getTypeCapteurNom().replaceAll("'", "''")+"'");
+		// Le typeCapteur existe : on rÃ©cupÃ©re l'ID
+		if (typeCapteurExistant.size() != 0) {
+			typeCapteur.setTypeCapteurId(((Integer)typeCapteurExistant.get(0)).intValue());
+		}
+		CommunicationBD.save(typeCapteur);
+		int typeCapteurId = typeCapteur.getTypeCapteurId();
+		return typeCapteurId;
+	}
+	
+	/**
+	 * Insertion du capteur 
+	 */
+	public int insererCapteur(Capteur capteur, ArrayList<Parametre> parametres) throws Exception {
+		CommunicationBD.open();
+		// On parcourt la liste des paramÃ©tres du capteur
+		for (Parametre paramCapt : capteur.getParametres()) {
+			// On parcourt la liste des paramÃ©tres du jeu
+			for (Parametre parametre : parametres) {
+				// On complÃ©te les identifiants des paramÃ©tres
+				if (parametre.getParametreCode().equals(paramCapt.getParametreCode())) {
+					paramCapt.setParametreId(parametre.getParametreId());
+					break;
+				}
+			}
+		}
+		// insertion du fabriquant du capteur
+		insererFabriquant(capteur.getFabriquant());
+		// insertion du type du capteur
+		insererTypeCapteur(capteur.getTypeCapteur());
+		// insertion du commentaire s'il existe
+		if (capteur.getCommentaire() != null) {
+			insererCommentaire(capteur.getCommentaire());
+		}
+		// On vÃ©rifie si le capteur existe dÃ©jÃ©
+		List<?> capteursExistants = CommunicationBD.getList("select c.capteurId from Capteur c "
+						+ "where capteur_modele = '" + capteur.getCapteurModele().replaceAll("'", "''")+"' "
+						+ "and capteur_numserie = '" + capteur.getCapteurNumserie().replaceAll("'", "''") + "' "
+						+ "and c.fabriquant.fabriquantNom = '"+capteur.getFabriquant().getFabriquantNom().replaceAll("'", "''")+"' "
+						+ "and c.typeCapteur.typeCapteurNom = '"+capteur.getTypeCapteur().getTypeCapteurNom().replaceAll("'", "''")+"'");
+		// si Le capteur existe : on rÃ©cupÃ©re l'ID et les jeux/paramÃ©tres associÃ©s
+		if (capteursExistants.size() != 0) {
+			capteur.setCapteurId(((Integer)capteursExistants.get(0)).intValue());
+			List<?> jeusCapt = CommunicationBD.getList("select c.jeus from Capteur c where c.capteurId = "+capteur.getCapteurId());
+			for (int numJeu=0; numJeu < jeusCapt.size(); numJeu++) {
+				capteur.getJeus().add((Jeu)jeusCapt.get(numJeu));
+			}
+			List<?> paramsCapt = CommunicationBD.getList("select c.parametres from Capteur c where c.capteurId = "+capteur.getCapteurId());
+			Parametre paramCapt;
+			boolean paramPresent;
+			for (int numParam=0; numParam < paramsCapt.size(); numParam++) {
+				paramCapt = (Parametre)paramsCapt.get(numParam);
+				paramPresent = false;
+				for (Parametre paramCapt2 : capteur.getParametres()) {
+					if (paramCapt2.getParametreCode().equals(paramCapt.getParametreCode())){
+						paramPresent = true;
+						break;
+					}
+				}
+				if (!paramPresent) capteur.getParametres().add(paramCapt);
+			}
+		}
+		CommunicationBD.save(capteur);
+		int capteurId = capteur.getCapteurId();
+		CommunicationBD.close();
+		return capteurId;
+	}
+
+	/**
+	* Insertion du type de plateforme 
+	*/
+	public int insererTypePlateforme(TypePlateforme typePlateforme) throws Exception {
+//		TypePlateforme typePlateformeExistant = (TypePlateforme) CommunicationBD
+//				.getObjectByColonne(TypePlateforme.class, "typePlateformeNom",
+//						typePlateforme.getTypePlateformeNom().replaceAll("'", "''"));
+//		int typePlateformeId;
+//		// Le typePlateforme n'existe pas : on l'insÃ©re
+//		if (typePlateformeExistant == null) {
+//			// si le commentaire n est pas null : on l'insere
+//			if (typePlateforme.getCommentaire() != null) {
+//				insererCommentaire(typePlateforme.getCommentaire());
+//			}
+//			CommunicationBD.save(typePlateforme);
+//			typePlateformeId = typePlateforme.getTypePlateformeId();
+//		}
+//		// Le typePlateforme existe : on rÃ©cupÃ©re l'ID
+//		else {
+//			typePlateformeId = typePlateformeExistant.getTypePlateformeId();
+//			typePlateforme.setTypePlateformeId(typePlateformeId);
+//		}
+//		return typePlateformeId;
+		if (typePlateforme.getTypePlateformeNom().equals(Constantes.typePlatFix))
+			typePlateforme.setTypePlateformeId(Constantes.typePlatFixID);
+		else
+			typePlateforme.setTypePlateformeId(Constantes.typePlatMobID);
+		return typePlateforme.getTypePlateformeId();
+	}
+	
+	/**
+	* Insertion de la plateforme 
+	 * @param parametres 
+	 * @param capteurs 
+	*/
+	public int insererPlateforme(Plateforme plateforme, ArrayList<Capteur> capteurs, ArrayList<Parametre> parametres) throws Exception {
+		CommunicationBD.open();
+		// On parcourt la liste des capteurs de la plateforme
+		for (Capteur captPlat : plateforme.getCapteurs()) {
+			// On parcourt la liste des capteurs du jeu
+			for (Capteur capteur : capteurs) {
+				// On complÃ©te les identifiants des capteurs
+				if (capteur.getCapteurModele().equals(captPlat.getCapteurModele())
+						&& capteur.getCapteurNumserie().equals(captPlat.getCapteurNumserie())
+						&& capteur.getTypeCapteur().getTypeCapteurNom().equals(captPlat.getTypeCapteur().getTypeCapteurNom())
+						&& capteur.getFabriquant().getFabriquantNom().equals(captPlat.getFabriquant().getFabriquantNom())) {
+					captPlat.setCapteurId(capteur.getCapteurId());
+					break;
+				}
+			}
+		}
+		// On parcourt la liste des paramÃ©tres de la plateforme
+		for (Parametre paramPlat : plateforme.getParametres()) {
+			// On parcourt la liste des paramÃ©tres du jeu
+			for (Parametre parametre : parametres) {
+				// On complÃ©te les identifiants des paramÃ©tres
+				if (parametre.getParametreCode().equals(paramPlat.getParametreCode())) {
+					paramPlat.setParametreId(parametre.getParametreId());
+					break;
+				}
+			}
+		}
+		// On associe le jeu Ã© la plateforme
+//		for (Jeu jeuPlat : plateforme.getJeus()) {
+//			if (jeuPlat.getJeuNom().equals(jeu.getJeuNom())) {
+//				jeuPlat.setJeuId(jeu.getJeuId());
+//				break;
+//			}
+//		}
+		insererTypePlateforme(plateforme.getTypePlateforme());
+		// insertion du commentaire s'il esxiste
+		if (plateforme.getCommentaire() != null) {
+			insererCommentaire(plateforme.getCommentaire());
+		}
+		// On vÃ©rifie si la plateforme existe dÃ©jÃ©
+//		Plateforme plateformeExistant = (Plateforme) CommunicationBD.getObjectByColonne(Plateforme.class, "plateformeNom",
+//				plateforme.getPlateformeNom().replaceAll("'", "''"));
+		List<?> plateformeExistant = CommunicationBD.getList("select p.plateformeId from Plateforme p "
+						+ "where plateforme_nom = '" + plateforme.getPlateformeNom().replaceAll("'", "''")+"'");
+		// si la plateforme existe : on rÃ©cupÃ©re l'ID et les jeux associÃ©s
+		if (plateformeExistant.size() != 0) {
+			plateforme.setPlateformeId(((Integer)plateformeExistant.get(0)).intValue());
+			List<?> captsPlat = CommunicationBD.getList("select p.capteurs from Plateforme p where p.plateformeId = "+plateforme.getPlateformeId());
+			Capteur capteur;
+			boolean isPresent;
+			for (int numCapt=0; numCapt < captsPlat.size(); numCapt++) {
+				capteur = (Capteur)captsPlat.get(numCapt);
+				isPresent = false;
+				for (Capteur capt: plateforme.getCapteurs()) {
+					if (capteur.getCapteurModele().equals(capt.getCapteurModele())
+							&& capteur.getCapteurNumserie().equals(capt.getCapteurNumserie())
+							&& capteur.getTypeCapteur().getTypeCapteurNom().equals(capt.getTypeCapteur().getTypeCapteurNom())
+							&& capteur.getFabriquant().getFabriquantNom().equals(capt.getFabriquant().getFabriquantNom())) {
+						isPresent = true;
+					}
+				}
+				if (!isPresent) {
+					Capteur c = new Capteur(capteur.getCapteurId(), 
+							new Fabriquant(capteur.getFabriquant().getFabriquantId(), capteur.getFabriquant().getFabriquantNom()), 
+							new TypeCapteur(capteur.getTypeCapteur().getTypeCapteurId(), capteur.getTypeCapteur().getTypeCapteurNom()), 
+							null, capteur.getCapteurModele(), capteur.getCapteurNumserie(), capteur.getCapteurEtalonnage(), null, null, null, null, null);
+					plateforme.getCapteurs().add(c);
+				}
+			}
+			List<?> paramsPlat = CommunicationBD.getList("select p.parametres from Plateforme p where p.plateformeId = "+plateforme.getPlateformeId());
+			Parametre parametre;
+			for (int numParam=0; numParam < paramsPlat.size(); numParam++) {
+				parametre = (Parametre)paramsPlat.get(numParam);
+				isPresent = false;
+				for (Parametre param: plateforme.getParametres()) {
+					if (parametre.getParametreCode().equals(param.getParametreCode())) {
+						isPresent = true;
+					}
+				}
+				if (!isPresent) {
+					Parametre p = new Parametre(parametre.getParametreId(), null, null, null, parametre.getParametreNom(), parametre.getParametreCode(),
+							null, null, null, null, null);
+					plateforme.getParametres().add(p);
+				}
+			}
+			List<?> jeusPlat = CommunicationBD.getList("select p.jeus from Plateforme p where p.plateformeId = "+plateforme.getPlateformeId());
+			for (int numJeu=0; numJeu < jeusPlat.size(); numJeu++) {
+				plateforme.getJeus().add((Jeu)jeusPlat.get(numJeu));
+			}
+		}
+		CommunicationBD.save(plateforme);
+		int plateformeId = plateforme.getPlateformeId();
+		// On insÃ©re les positions de la plateforme
+		for (RequetePlatLoc requetePlatLoc : plateforme.getRequetePlatLocs()) {
+			requetePlatLoc.setPlateforme(plateforme);
+			requetePlatLoc.setPlateformeId(plateformeId);
+			CommunicationBD.save(requetePlatLoc);
+		}
+		CommunicationBD.close();
+		return plateformeId;
+	}
+	
+	/**
+	* Insertion du fichier 
+	*/
+	public int insererFichier(Fichier fichier) throws Exception {
+		List<?> fichiersExistants = CommunicationBD.getList("select f.fichierId from Fichier f " +
+				"where jeu_id = "+fichier.getJeu().getJeuId()+" and fichier_nom = '"+fichier.getFichierNom().replaceAll("'", "''")+"'");
+		// si Le fichier n'existe pas : on l'insÃ©re
+		if (fichiersExistants.size() == 0) {
+			fichierExiste = false;
+		}
+		// sinon Le fichier existe : on rÃ©cupÃ©re l'ID
+		else {
+			fichierExiste = true;
+			fichier.setFichierId(((Integer)fichiersExistants.get(0)).intValue());
+		}
+		CommunicationBD.save(fichier);
+		int fichierId = fichier.getFichierId();
+		return fichierId;
+	}
+	
+	/**
+	* Insertion de la localisation 
+	*/
+	public int insererLoc(Localisation localisation, ArrayList<Localisation> listeLocs, String typePlat) throws Exception {//, int flagId
+		// Cas plateforme fixe
+//		if (typePlat.equals("fixe")) {
+//		if (locPrec == null || locPrec.getLocalisationLat() != localisation.getLocalisationLat()
+//				|| locPrec.getLocalisationLon() != localisation.getLocalisationLon()
+//				|| locPrec.getLocalisationAlt() != localisation.getLocalisationAlt()) {
+		int id = findLoc(listeLocs, localisation);
+		if (id == -1) {
+			if (typePlat.equals(Constantes.typePlatFix)) {
+				List<?> localisationsExistants = CommunicationBD.getList("select l.localisationId from Localisation l" +
+						" where localisation_lat  = "+localisation.getLocalisationLat()+
+						" and localisation_lon = "+localisation.getLocalisationLon()+ 
+						" and localisation_alt = "+localisation.getLocalisationAlt());
+				// si La localisation n'existe pas : on l'insÃ©re
+				if (localisationsExistants.size() == 0) {
+				// si le flag de longitude n est pas null : on l'insere
+//				if (localisation.getFlagByLatlonFlag() != null) {
+//					flagLocId = insererFlag(localisation.getFlagByLatlonFlag(),flagId);
+//					localisation.getFlagByLatlonFlag().setFlagId(flagLocId);
+//				}
+				// si le flag d'altitude n est pas null : on l'insere
+//				if (localisation.getFlagByAltitudeFlag() != null) {
+//					flagLocId = insererFlag(localisation.getFlagByAltitudeFlag(),flagId);
+//					localisation.getFlagByAltitudeFlag().setFlagId(flagLocId);
+//				}
+				}	
+				// sinon La localisation existe : on rÃ©cupÃ©re l'ID
+				else {
+					localisation.setLocalisationId(((Integer)localisationsExistants.get(0)).intValue());
+				}
+			}
+//		}
+		//	Cas plateforme mobile
+//		else {
+//			if (locPrec == null || localisation.getLocalisationLat() != locPrec.getLocalisationLat()
+//					|| localisation.getLocalisationLon() != locPrec.getLocalisationLon()
+//					|| localisation.getLocalisationAlt() != locPrec.getLocalisationAlt()) {
+//				if (localisation.getFlagByLatlonFlag() != null) {
+//					flagLocId = insererFlag(localisation.getFlagByLatlonFlag(),flagId);
+//					localisation.getFlagByLatlonFlag().setFlagId(flagLocId);
+//				}
+				// si le flag d'altitude n est pas null : on l'insere
+//				if (localisation.getFlagByAltitudeFlag() != null) {
+//					flagLocId = insererFlag(localisation.getFlagByAltitudeFlag(),flagId);
+//					localisation.getFlagByAltitudeFlag().setFlagId(flagLocId);
+//				}
+//				CommunicationBD.save(localisation);
+//				localisationId = localisation.getLocalisationId();
+//			} else{
+//				localisationId = locPrec.getLocalisationId();
+//				localisation.setLocalisationId(localisationId);
+//			}
+//		}
+			CommunicationBD.save(localisation);
+			listeLocs.add(new Localisation(localisation.getLocalisationId(), localisation.getLocalisationLat(), localisation.getLocalisationLon(), localisation.getLocalisationAlt()));
+		} else {
+			localisation.setLocalisationId(id);
+		}
+		int localisationId = localisation.getLocalisationId();
+		return localisationId;
+	}
+	
+	/**
+	 * VÃ©rifie si la localisation donnÃ©e figure dans la liste de localisations
+	 * Si oui, retourne l'ID de la localisation trouvÃ©e dans la liste
+	 * Si non, retourne -1
+	 */
+	public int findLoc(ArrayList<Localisation> listeLocs, Localisation loc) {
+		for (Localisation l : listeLocs) {
+			if (l.getLocalisationLat() == loc.getLocalisationLat() 
+					&& l.getLocalisationLon() == loc.getLocalisationLon()
+					&& l.getLocalisationAlt() == loc.getLocalisationAlt())
+				return l.getLocalisationId();
+		}
+		return -1;
+	}
+	
+	/**
+	* Insertion du delta 
+	*/
+	public int insererDelta(DeltaMesure deltaMesure) throws Exception {
+		List<?> deltasExistants = CommunicationBD.getList("select d.deltaId from Delta d " +
+				"where delta_mesure_date = "+deltaMesure.getDeltaMesureDate()+" " +
+				"and delta_mesure_lat = "+deltaMesure.getDeltaMesureLat()+" " +
+				"and  delta_mesure_lon = "+deltaMesure.getDeltaMesureLon()+" " + 
+				"and delta_mesure_alt = "+deltaMesure.getDeltaMesureLon());
+		// si le delta existe : on rÃ©cupÃ©re l'ID
+		if (deltasExistants.size() != 0) {
+			deltaMesure.setDeltaMesureId(((Integer)deltasExistants.get(0)).intValue());
+		}
+		CommunicationBD.save(deltaMesure);
+		int deltaId = deltaMesure.getDeltaMesureId();
+		return deltaId;
+	}
+	
+	/**
+	* Insertion de la sequence 
+	*/
+	public int insererSequence(Sequence sequence) throws Exception {
+		List<?> sequencesExistants = CommunicationBD
+				.getList("select s.sequenceId from Sequence s "
+						+ "where jeu_id  = " + sequence.getJeu().getJeuId()
+						+ " and sequence_dated = '"+ DateTime.dateToString(sequence.getSequenceDated(),Constantes.formatDateJJMMAAAAHHMMSS)
+						+ "' and sequence_datef = '" + DateTime.dateToString(sequence.getSequenceDatef(),Constantes.formatDateJJMMAAAAHHMMSS)+ "'");
+		int sequenceId ;
+	
+		// La sequence n'existe pas : on l'insÃ©re
+		if (sequencesExistants.size() == 0) {
+			 // inserer le commentaire s'il existe
+			if (sequence.getCommentaire() != null) {
+				insererCommentaire(sequence.getCommentaire());
+			}
+			CommunicationBD.save(sequence);
+			sequenceId = sequence.getSequenceId();
+			
+		}
+		// La sequence existe : on rÃ©cupÃ©re l'ID
+		else {
+			sequenceId = ((Integer) sequencesExistants.get(0)).intValue();
+			sequence.setSequenceId(sequenceId);
+			/**test sur lr commentaire de la sequence*/
+			if (sequence.getCommentaire() != null) {
+				sequence.getCommentaire().setCommentaireId(sequence.getCommentaire().getCommentaireId());
+			}
+			sequence.getJeu().setJeuAltmax(Statiques.altMaxJeu);
+			sequence.getJeu().setJeuAltmax(Statiques.altMinJeu);
+			sequence.getJeu().setJeuAltmax(Statiques.latMaxJeu);
+			sequence.getJeu().setJeuAltmax(Statiques.latMinJeu);
+			sequence.getJeu().setJeuAltmax(Statiques.lonMaxJeu);
+			sequence.getJeu().setJeuAltmax(Statiques.lonMinJeu);
+			sequence.getJeu().setJeuAltmax(Statiques.hsMaxJeu);
+			sequence.getJeu().setJeuAltmax(Statiques.hsMinJeu);
+			sequence.getJeu().setJeuDated(Statiques.dateMaxJeu);
+			sequence.getJeu().setJeuDatef(Statiques.dateMinJeu);
+		}
+		return sequenceId;
+	}
+	
+	 /**
+	 * Insertion de la table  bilan 
+	 */
+	public void insererBilan(Jeu jeu, ArrayList<Plateforme> plateformes, ArrayList<Capteur> capteurs, ArrayList<Parametre> parametres) throws Exception {
+		Bilan bilan;
+		List<?> bilansExistants;
+		// On parcourt les plateformes du jeu
+		for (Plateforme plateforme: plateformes) {
+			// On parcourt les capteurs du jeu
+			for (Capteur capteur: capteurs) {
+				// On parcourt les capteurs liÃ©s Ã© la plateforme
+				for (Capteur capteurPlat: plateforme.getCapteurs()) {
+					if (capteurPlat.getCapteurModele().equals(capteur.getCapteurModele())
+							&& capteurPlat.getCapteurNumserie().equals(capteur.getCapteurNumserie())
+							&& capteurPlat.getFabriquant().getFabriquantNom().equals(capteur.getFabriquant().getFabriquantNom())
+							&& capteurPlat.getTypeCapteur().getTypeCapteurNom().equals(capteur.getTypeCapteur().getTypeCapteurNom())) {
+						// S'il y a correspondance sur un capteur...
+						// On parcourt les paramÃ©tres du jeu
+						for (Parametre parametre: parametres) {
+							// On parcourt les paramÃ©tres liÃ©s au capteur
+							for (Parametre parametreCapt: capteur.getParametres()) {
+								if (parametreCapt.getParametreCode().equals(parametre.getParametreCode())) {
+									// S'il y a correspondance sur un paramÃ©tre...
+									// On vÃ©rifie que le bilan n'existe pas dÃ©jÃ© dans la base
+									bilansExistants = CommunicationBD.getList("from Bilan b where" 
+											+ " plateforme_id = " + plateforme.getPlateformeId()
+											+ " and capteur_id = " + capteur.getCapteurId()
+											+ " and jeu_id = " + jeu.getJeuId()
+											+ " and parametre_id = " + parametre.getParametreId());
+									// si Le bilan n'existe pas : on l'insÃ©re
+									if (bilansExistants.size() == 0) {
+										bilan = new Bilan();
+										bilan.setPlateforme(plateforme);
+										bilan.setCapteur(capteur);
+										bilan.setJeu(jeu);
+										bilan.setParametre(parametre);
+										CommunicationBD.save(bilan);
+									}
+								}
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+		
+	/**
+	 * Mise Ã© jour des mesures
+	 */
+	public void mettreAjourMesure(Sequence sequence) throws Exception {
+		// faire un select sur la base de donnee afin de rÃ©cuperer les mesures
+		List<?> mesures = CommunicationBD.getList("from Mesure m "
+				+ "where fichier_id in " 
+				+ "(select f.fichierId from Fichier f where jeu_id = "+sequence.getJeu().getJeuId()+") "
+				+ "and mesure_date >= '" + DateTime.dateToString(sequence.getSequenceDated(),Constantes.formatDateJJMMAAAAHHMMSS)+"' " 
+				+ "and mesure_date <= '" + DateTime.dateToString(sequence.getSequenceDatef(),Constantes.formatDateJJMMAAAAHHMMSS)+"'");
+		
+		Mesure mesure = null;
+		int nbMesures = mesures.size();
+		for(int numMesure = 0; numMesure < nbMesures ; numMesure++){
+			mesure = (Mesure) mesures.get(numMesure);
+			mesure.setSequence(sequence);
+			CommunicationBD.save(mesure);		
+		}
+	}		
+	
+	/**
+	 * Mise Ã© jour du jeu
+	 */	
+	public void mettreAjourJeu(Jeu jeu) throws Exception {
+		if(jeu.getJeuDated() == null || DateTime.plusGrand(jeu.getJeuDated(),Statiques.dateMinJeu)){
+			jeu.setJeuDated(Statiques.dateMinJeu);
+		}
+		if(jeu.getJeuDatef() == null || DateTime.plusGrand(Statiques.dateMaxJeu,jeu.getJeuDatef())){
+			jeu.setJeuDatef(Statiques.dateMaxJeu);	
+		}
+		if(jeu.getJeuLatmax() == null || Statiques.latMaxJeu > jeu.getJeuLatmax()){
+			jeu.setJeuLatmax(Statiques.latMaxJeu);
+		}
+		if(jeu.getJeuLatmin() == null || Statiques.latMinJeu < jeu.getJeuLatmin()){
+			jeu.setJeuLatmin(Statiques.latMinJeu);
+		}
+		if(jeu.getJeuLonmax() == null || Statiques.lonMaxJeu > jeu.getJeuLonmax()){
+			jeu.setJeuLonmax(Statiques.lonMaxJeu);
+		}
+		if(jeu.getJeuLonmin() == null || Statiques.lonMinJeu < jeu.getJeuLonmin()){
+			jeu.setJeuLonmin(Statiques.lonMinJeu);
+		}
+		if(jeu.getJeuAltmax() == null || Statiques.altMaxJeu > jeu.getJeuAltmax()){
+			jeu.setJeuAltmax(Statiques.altMaxJeu);
+		}
+		if(jeu.getJeuAltmin() == null || Statiques.altMinJeu < jeu.getJeuAltmin()){
+			jeu.setJeuAltmin(Statiques.altMinJeu);
+		}
+		if(Statiques.hsMaxJeu.intValue() != Nombre.altDoubleToInt(Double.valueOf(Constantes.hsMoinsInf)).intValue()
+				&& (jeu.getJeuHsmax() == null || Statiques.hsMaxJeu > jeu.getJeuHsmax())){
+			jeu.setJeuHsmax(Statiques.hsMaxJeu);
+		}
+		if(Statiques.hsMinJeu.intValue() != Nombre.altDoubleToInt(new Double(Constantes.hsPlusInf)).intValue()
+				&& (jeu.getJeuHsmin() == null || Statiques.hsMinJeu < jeu.getJeuHsmin())){
+			jeu.setJeuHsmin(Statiques.hsMinJeu);
+		}
+		CommunicationBD.save(jeu);
+	}
+	
+	/**
+	 * Mise Ã© jour des liaisons entre les capteurs et les jeux
+	 */
+	public void mettreAJourRequeteCaptJeu(Jeu jeu, ArrayList<Capteur> capteurs) throws Exception {
+//		List<?> capts = CommunicationBD.getList("select distinct j.capteurs from Jeu j where jeu_nom <> '"+jeu.getJeuNom()+"'");
+//		Capteur capt;
+//		for (int i = 0; i<capts.size(); i++) {
+//			capt = (Capteur)capts.get(i);
+//			System.out.println("capt="+capt.getTypeCapteur().getTypeCapteurNom());
+//		}
+//		CommunicationBD.getSQL("select insert_into_requete_capt_jeu()");
+		jeu.setCapteurs(new HashSet<Capteur>());
+		for (Capteur capteur: capteurs) {
+			jeu.getCapteurs().add(capteur);
+		}
+		CommunicationBD.save(jeu);
+	}
+	
+	/**
+	 * Mise Ã© jour la liason entre les Parametres et les jeux
+	 */
+	public void mettreAJourRequeteParamJeu(Jeu jeu, ArrayList<Parametre> parametres) throws Exception {
+		jeu.setParametres(new HashSet<Parametre>());
+		for (Parametre parametre: parametres) {
+			jeu.getParametres().add(parametre);
+		}
+		CommunicationBD.save(jeu);
+	}
+	
+	/**
+	 * Mise Ã© jour la liason entre les plateformes et le jeu
+	 */
+	public void mettreAJourRequetePlatJeu(Jeu jeu, ArrayList<Plateforme> plateformes) throws Exception {
+		jeu.setPlateformes(new HashSet<Plateforme>());
+		for (Plateforme plateforme: plateformes) {
+			jeu.getPlateformes().add(plateforme);
+		}
+		CommunicationBD.save(jeu);
+	}
+	
+	/**
+	 * Mise Ã© jour de la liason entre le nbre de valeurs et jeu
+	 */
+	public void mettreAJourRequeteNbValsJeu(Jeu jeu, int nbFichiers, int nbMesures, int nbValeurs) throws Exception {
+		List<?> reqNbValsJeuExistants = CommunicationBD.getList("from RequeteNbvalsJeu r where jeu_id = "+jeu.getJeuId());
+		RequeteNbvalsJeu requeteNbvalsJeu;
+		// si l'objet n'existe pas : on l'insÃ©re
+		if (reqNbValsJeuExistants.size() == 0) {	
+			requeteNbvalsJeu = new RequeteNbvalsJeu();
+			requeteNbvalsJeu.setJeu(jeu);
+			requeteNbvalsJeu.setJeuId(jeu.getJeuId());
+			requeteNbvalsJeu.setNbFichiers(nbFichiers);
+			requeteNbvalsJeu.setNbMesures(nbMesures);
+			requeteNbvalsJeu.setNbValeurs(nbValeurs);
+		}
+		// Sinon on le met Ã© jour
+		else {
+			requeteNbvalsJeu = (RequeteNbvalsJeu) reqNbValsJeuExistants.get(0);
+			if (nbFichiers!=0) {
+				requeteNbvalsJeu.setNbFichiers(nbFichiers);
+				if (nbMesures!=0) {
+					requeteNbvalsJeu.setNbMesures(nbMesures);
+					if (nbValeurs!=0) requeteNbvalsJeu.setNbValeurs(nbValeurs);
+				}
+			}
+		}
+		CommunicationBD.save(requeteNbvalsJeu);
+	}
+	
+	/**
+	 * Mise Ã© jour de la liaison entre les parametres et les capteurs
+	 */
+	public void mettreAJourRequeteParamCapt(ArrayList<Capteur> capteurs, ArrayList<Parametre> parametres) throws Exception {
+		// On parcourt la liste des capteurs du jeu
+		for (Capteur capteur: capteurs) {
+			// On parcourt la liste des paramÃ©tres du capteur
+			for (Parametre paramCapt : capteur.getParametres()) {
+				// On parcourt la liste des paramÃ©tres du jeu
+				for (Parametre parametre : parametres) {
+					// On complÃ©te les identifiants des paramÃ©tres
+					if (parametre.getParametreCode().equals(paramCapt.getParametreCode())) {
+						paramCapt.setParametreId(parametre.getParametreId());
+						break;
+					}
+				}
+			}
+			CommunicationBD.save(capteur);
+		}
+		// on vÃ©rifie s'il y a un seul capteur
+//		if(capteurs.size() == 1){
+//			Capteur capteur = capteurs.get(0);
+//			boolean paramTrouve;
+//			Parametre parametre;
+//			Set<Parametre> paramsCapt;
+//			Iterator<Parametre> itParams;
+//			Parametre paramCapt;
+//			for(int numParam = 0;numParam < parametres.size(); numParam++){
+//				parametre = parametres.get(numParam);
+//				paramsCapt = capteur.getParametres();
+//				itParams = paramsCapt.iterator();
+//				paramTrouve = false;
+//				while (itParams.hasNext()) {
+//					paramCapt = itParams.next();
+//					// on vÃ©rifie si les deux paramtres sont Ã©geaux : parametre du capteur et parametre.
+//					if( paramCapt.getParametreCode().equals(parametre.getParametreCode())){
+//						paramTrouve = true;
+//					}
+//				}
+//				// on vÃ©rifie si le parametre trouvÃ© n'existe pas dÃ©jÃ©
+//				if(!paramTrouve){
+//					capteur.getParametres().add(parametre);
+//				}
+//			}
+//			CommunicationBD.save(capteur);
+//		}else{
+//			// sinon Ã© complÃ©ter
+//		}
+	}
+
+	/**
+	 * Mise Ã© jour de la liaison entre les plateformes et les capteurs/paramÃ©tres
+	 */
+	public void mettreAJourRequeteCaptPlatParam(ArrayList<Plateforme> plateformes, ArrayList<Capteur> capteurs, ArrayList<Parametre> parametres) throws Exception {
+		// On parcourt les plateformes du jeu
+		for (Plateforme plateforme: plateformes) {
+			// On parcourt la liste des capteurs de la plateforme
+			for (Capteur captPlat : plateforme.getCapteurs()) {
+				// On parcourt la liste des capteurs du jeu
+				for (Capteur capteur : capteurs) {
+					// On complÃ©te les identifiants des capteurs
+					if (capteur.getCapteurModele().equals(captPlat.getCapteurModele())
+							&& capteur.getCapteurNumserie().equals(captPlat.getCapteurNumserie())
+							&& capteur.getTypeCapteur().getTypeCapteurNom().equals(captPlat.getTypeCapteur().getTypeCapteurNom())
+							&& capteur.getFabriquant().getFabriquantNom().equals(captPlat.getFabriquant().getFabriquantNom())) {
+						captPlat.setCapteurId(capteur.getCapteurId());
+						break;
+					}
+				}
+			}
+			// On parcourt la liste des paramÃ©tres de la plateforme
+			for (Parametre paramPlat : plateforme.getParametres()) {
+				// On parcourt la liste des paramÃ©tres du jeu
+				for (Parametre parametre : parametres) {
+					// On complÃ©te les identifiants des paramÃ©tres
+					if (parametre.getParametreCode().equals(paramPlat.getParametreCode())) {
+						paramPlat.setParametreId(parametre.getParametreId());
+						break;
+					}
+				}
+			}
+			CommunicationBD.save(plateforme);
+		}
+		// on vÃ©rifie s'il y a une seule plateforme ou plusieurs
+//		if(plateformes.size() == 1){
+//			Plateforme plateforme = plateformes.get(0);
+//			boolean captTrouve;
+//			Capteur capteur = null;
+//			Set<Capteur> captsPlat = null;
+//			Iterator<Capteur> itCapts;
+//			Capteur captPlat;
+//			for(int numCapt = 0;numCapt < capteurs.size(); numCapt++){
+//				capteur = capteurs.get(numCapt);
+//				captsPlat = plateforme.getCapteurs();
+//				itCapts = captsPlat.iterator();
+//				captTrouve = false;
+//				while (itCapts.hasNext()) {
+//					captPlat = itCapts.next();
+//					// on vÃ©rifie si les deux paramtres sont Ã©gaux : parametre du capteur et parametre.
+//					if(captPlat.getCapteurId() == capteur.getCapteurId()){
+//						captTrouve = true;
+//					}
+//				}
+//				// on vÃ©rifie si le parametre trouvÃ© n'existe pas dÃ©jÃ©
+//				if(!captTrouve){
+//					plateforme.getCapteurs().add(capteur);
+//				}
+//			}
+//			CommunicationBD.save(plateforme);
+//		}else{
+//			// sinon Ã© complÃ©ter(mÃ©me code avec une boucle sur les plateformes)
+		
+//		}
+	}
+	
+	/**
+	 * Mise Ã© jour de la liaison entre les plateformes et les parametres
+	 */
+//	public void mettreAJourRequeteParametrePlateforme(ArrayList<Plateforme> plateformes, ArrayList<Parametre> parametres, ArrayList<Capteur> capteurs) throws Exception {
+//		// on vÃ©rifie s il y Ã© une seule plateforme
+//		if(plateformes.size() == 1){
+//			Plateforme plateforme = plateformes.get(0);
+//			boolean paramTrouve;
+//			Parametre parametre;
+//			Set<Parametre> paramsPlat;
+//			Iterator<Parametre> itParams;
+//			Parametre paramPlat;
+//			for(int numParam = 0;numParam < parametres.size(); numParam++){
+//				parametre = parametres.get(numParam);
+//				paramsPlat = plateforme.getParametres();
+//				itParams = paramsPlat.iterator();
+//				paramTrouve = false;
+//				while (itParams.hasNext()) {
+//					paramPlat = itParams.next();
+//					// on vÃ©rifie si les deux paramtres sont Ã©geaux : parametre de la plateforme et parametre.
+//					if( paramPlat.getParametreCode().equals(parametre.getParametreCode())){
+//						paramTrouve = true;
+//					}
+//				}
+//				// on vÃ©rifie si le parametre trouvÃ© n'existe pas dÃ©jÃ©
+//				if(!paramTrouve){
+//					plateforme.getParametres().add(parametre);
+//				}
+//			}
+//			CommunicationBD.save(plateforme);
+//		}
+//		// Si plusieurs plateformes
+//		else{
+//			Plateforme plateforme = new Plateforme();
+//			Parametre paramCapt, parametre;
+//			Capteur captPlat, capteur;
+//			Iterator<Parametre> itParams;
+//			Iterator<Capteur> itCapt;
+//			// On parcourt la liste des plateformes
+//			for (int numPlat = 0; numPlat < plateformes.size(); numPlat++) {
+//				plateforme = plateformes.get(numPlat);
+//				itCapt = plateforme.getCapteurs().iterator();
+//				plateforme.setParametres(new HashSet<Parametre>());
+//				// On parcourt la liste des capteurs de la plateforme
+//				while (itCapt.hasNext()) {
+//					captPlat = itCapt.next();
+//					// On recherche la capteur correspondant dans la liste
+//					for (int numCapt=0; numCapt<capteurs.size(); numCapt++) {
+//						capteur = capteurs.get(numCapt);
+//						if (capteur.getCapteurModele().equals(captPlat.getCapteurModele())
+//								&& capteur.getCapteurNumserie().equals(captPlat.getCapteurNumserie())
+//								&& capteur.getTypeCapteur().getTypeCapteurNom().equals(captPlat.getTypeCapteur().getTypeCapteurNom())
+//								&& capteur.getFabriquant().getFabriquantNom().equals(captPlat.getFabriquant().getFabriquantNom())) {
+//							itParams = capteur.getParametres().iterator();
+//							// On parcourt la liste des paramÃ©tres du capteur
+//							while (itParams.hasNext()) {
+//								paramCapt = itParams.next();
+//								// On recherche le paramÃ©tre correspondant dans la liste
+//								for (int numParam = 0; numParam < parametres.size(); numParam++) {
+//									parametre = parametres.get(numParam);
+//									// on vÃ©rifie si les deux paramtres sont
+//									// Ã©gaux : parametre du capteur de la plateforme et parametre.
+//									if (parametre.getParametreCode().equals(paramCapt.getParametreCode())) {
+//										plateforme.getParametres().add(parametre);
+//									}
+//								}
+//							}		
+//						}
+//					}
+//				}
+//				CommunicationBD.save(plateforme);
+//			}
+//		}
+//	}
+			
+	/**
+	 * Mise Ã© jour de la liaison entre les localisations et les plateformes
+	 */
+//	public void mettreAJourRequetePlatLoc(ArrayList<Plateforme> plateformes, Jeu jeu) throws Exception {
+//		// Si une seule plate-forme
+//		if (plateformes.size() == 1) {
+//			Plateforme plateforme = plateformes.get(0);
+//			List<?> reqLocsPlatExistants = CommunicationBD.getList("from RequetePlatLoc r where plateforme_id = "+ plateforme.getPlateformeId());
+//			
+//			// si l'objet n'existe pas : on l'insÃ©re
+//			if (reqLocsPlatExistants.size() == 0) {
+//				RequetePlatLoc requetePlatLoc = new RequetePlatLoc();
+//				requetePlatLoc.setAltMax(Statiques.altMaxJeu);
+//				requetePlatLoc.setAltMin(Statiques.altMinJeu);
+//				if(Statiques.hsMaxJeu.intValue() != Nombre.altDoubleToInt(Double.valueOf(Constantes.hsMoinsInf)).intValue()){
+//					requetePlatLoc.setHsMax(Statiques.hsMaxJeu);
+//				}
+//				if(Statiques.hsMinJeu.intValue() != Nombre.altDoubleToInt(new Double(Constantes.hsPlusInf)).intValue()) {
+//					requetePlatLoc.setHsMin(Statiques.hsMinJeu);
+//				}
+//				requetePlatLoc.setLatMax(Statiques.latMaxJeu);
+//				requetePlatLoc.setLatMin(Statiques.latMinJeu);
+//				requetePlatLoc.setLonMax(Statiques.lonMaxJeu);
+//				requetePlatLoc.setLonMin(Statiques.lonMinJeu);
+//				requetePlatLoc.setPlateforme(plateforme);
+//				requetePlatLoc.setPlateformeId(plateforme.getPlateformeId());
+//				CommunicationBD.save(requetePlatLoc);
+//			}
+//			// Sinon on le met Ã© jour
+//			else {
+//				RequetePlatLoc requetePlatLoc = (RequetePlatLoc) reqLocsPlatExistants.get(0);
+//				if(Statiques.altMaxJeu > requetePlatLoc.getAltMax()){
+//					requetePlatLoc.setAltMax(Statiques.altMaxJeu);
+//				}
+//				if(Statiques.altMinJeu < requetePlatLoc.getAltMin()){
+//					requetePlatLoc.setAltMin(Statiques.altMinJeu);
+//				}
+//				if(Statiques.hsMaxJeu.intValue() != Nombre.altDoubleToInt(Double.valueOf(Constantes.hsMoinsInf)).intValue()
+//						&& Statiques.hsMaxJeu > requetePlatLoc.getHsMax()){
+//					requetePlatLoc.setHsMax(Statiques.hsMaxJeu);
+//				}
+//				if(Statiques.hsMinJeu.intValue() != Nombre.altDoubleToInt(new Double(Constantes.hsPlusInf)).intValue()
+//						&& Statiques.hsMinJeu < requetePlatLoc.getHsMin()){
+//					requetePlatLoc.setHsMin(Statiques.hsMinJeu);
+//				}
+//				if(Statiques.latMaxJeu > requetePlatLoc.getLatMax()){
+//					requetePlatLoc.setLatMax(Statiques.latMaxJeu);
+//				}
+//				if(Statiques.latMinJeu < requetePlatLoc.getLatMin()){
+//					requetePlatLoc.setLatMin(Statiques.latMinJeu);
+//				}
+//				if(Statiques.lonMaxJeu > requetePlatLoc.getLonMax()){
+//					requetePlatLoc.setLonMax(Statiques.lonMaxJeu);
+//				}
+//				if(Statiques.lonMinJeu < requetePlatLoc.getLonMin()){
+//					requetePlatLoc.setLonMin(Statiques.lonMinJeu);
+//				}
+//				CommunicationBD.save(requetePlatLoc);
+//			}
+//		} 
+//		// Si plusieurs plates-formes
+//		else {
+//			List<?> reqLocsPlatExistants, minMaxLoc;
+//			Plateforme plateforme;
+//			Object[] resultats;
+//			for (int numPlat = 0; numPlat< plateformes.size(); numPlat++){
+//				plateforme = plateformes.get(numPlat);
+//				minMaxLoc = CommunicationBD.getList("select min(l.localisationLat), max(l.localisationLat),"
+//				 + " min(l.localisationLon), max(l.localisationLon), min(l.localisationAlt), max(l.localisationAlt),"
+//				 + " min(l.localisationHs), max(l.localisationHs) "
+//				 + "from Localisation l where localisation_id in (select m.localisation.localisationId "
+//				 + "from Mesure m where plateforme_id = "+ plateforme.getPlateformeId()
+//				 + " and fichier_id in (select f.fichierId from Fichier f where jeu_id = " + jeu.getJeuId()+"))");
+//				resultats = (Object[])minMaxLoc.get(0);
+//				if (resultats[0] != null) {
+//					reqLocsPlatExistants = CommunicationBD.getList("from RequetePlatLoc r where plateforme_id = "
+//									+ plateforme.getPlateformeId());
+//					// si l'objet n'existe pas : on l'insÃ©re
+//					if (reqLocsPlatExistants.size() == 0) {
+//						RequetePlatLoc requetePlatLoc = new RequetePlatLoc();
+//						requetePlatLoc.setAltMax(((Integer) resultats[5]).intValue());
+//						requetePlatLoc.setAltMin(((Integer) resultats[4]).intValue());
+//						if (resultats[7] != null) {
+//							requetePlatLoc.setHsMax((Integer)resultats[7]);
+//						}
+//						if (resultats[6] != null) {
+//							requetePlatLoc.setHsMin((Integer)resultats[6]);
+//						}
+//						requetePlatLoc.setLatMax(((Integer) resultats[1]).intValue());
+//						requetePlatLoc.setLatMin(((Integer) resultats[0]).intValue());
+//						requetePlatLoc.setLonMax(((Integer) resultats[3]).intValue());
+//						requetePlatLoc.setLonMin(((Integer) resultats[2]).intValue());
+//						requetePlatLoc.setPlateforme(plateforme);
+//						requetePlatLoc.setPlateformeId(plateforme.getPlateformeId());
+//						CommunicationBD.save(requetePlatLoc);
+//					}
+//					// Sinon on le met Ã© jour
+//					else {
+//						RequetePlatLoc requetePlatLoc = (RequetePlatLoc) reqLocsPlatExistants.get(0);
+//						if (((Integer) resultats[5]).intValue() > requetePlatLoc.getAltMax()) {
+//							requetePlatLoc.setAltMax(((Integer) resultats[5]).intValue());
+//						}
+//						if (((Integer) resultats[4]).intValue() < requetePlatLoc.getAltMin()) {
+//							requetePlatLoc.setAltMin(((Integer) resultats[4]).intValue());
+//						}
+//						if (resultats[7] != null && ((Integer) resultats[7]).intValue() > requetePlatLoc.getHsMax()) {
+//							requetePlatLoc.setHsMax(((Integer) resultats[7]).intValue());
+//						}
+//						if (resultats[6] != null && ((Integer) resultats[6]).intValue() < requetePlatLoc.getHsMin()) {
+//							requetePlatLoc.setHsMin(((Integer) resultats[6]).intValue());
+//						}
+//						if (((Integer) resultats[1]).intValue() > requetePlatLoc.getLatMax()) {
+//							requetePlatLoc.setLatMax(((Integer) resultats[1]).intValue());
+//						}
+//						if (((Integer) resultats[0]).intValue() < requetePlatLoc.getLatMin()) {
+//							requetePlatLoc.setLatMin(((Integer) resultats[0]).intValue());
+//						}
+//						if (((Integer) resultats[3]).intValue() > requetePlatLoc.getLonMax()) {
+//							requetePlatLoc.setLonMax(((Integer) resultats[3]).intValue());
+//						}
+//						if (((Integer) resultats[2]).intValue() < requetePlatLoc.getLonMin()) {
+//							requetePlatLoc.setLonMin(((Integer) resultats[2]).intValue());
+//						}
+//						CommunicationBD.save(requetePlatLoc);
+//					}
+//				}
+//			}
+//		}
+//	}
+	
+	/**
+	 * Mise Ã© jour de la liaison entre le bilan
+	 */
+	public void mettreAJourBilan(Jeu jeu) throws Exception {
+		List<?> bilanExistants = CommunicationBD.getList("from Bilan b where jeu_id = " + jeu.getJeuId());
+		Bilan bilan;
+		List<?> valsExistants;
+		Object[] resultats;
+		List<?> datesExistants;
+		List<?> locsExistants;
+//		int nbMesures;
+//		long deltaDate = 0;
+//		int frequence;
+		// Pour chaque bilan du jeu...
+		for (int numBilan = 0; numBilan < bilanExistants.size(); numBilan++) {
+			bilan = (Bilan) bilanExistants.get(numBilan);
+			// Mise Ã© jour des valeurs min, max et du nombre de valeurs
+			valsExistants = CommunicationBD.getList("select min(v.valeurVal) as valMin, max(v.valeurVal) as valMax,"
+							+ " count(v.valeurId) as nbVals from Valeur v"
+							+ " where capteur_id = " + bilan.getCapteur().getCapteurId()
+							+ " and parametre_id = " + bilan.getParametre().getParametreId()
+							+ " and v.mesure.plateforme.plateformeId = " + bilan.getPlateforme().getPlateformeId()
+							+ " and v.mesure.fichier.jeu.jeuId = " + jeu.getJeuId());
+			if (valsExistants.size() != 0) {
+				resultats = (Object[]) valsExistants.get(0);
+				bilan.setBilanValmin((Double) resultats[0]);
+				bilan.setBilanValmax((Double) resultats[1]);
+				bilan.setBilanNbval(new Integer(((Long) resultats[2]).intValue()));
+				// Mise Ã© jour des dates dÃ©but et fin
+				datesExistants = CommunicationBD.getList("select min(m.mesureDate) as dateMin, max(m.mesureDate) as dateMax"
+						 + " from Mesure m where plateforme_id = " + bilan.getPlateforme().getPlateformeId()
+						 + " and m.fichier.jeu.jeuId = " + jeu.getJeuId()
+						 + " and mesure_id in (select v.mesure.mesureId from Valeur v" 
+						 + " where capteur_id = " + bilan.getCapteur().getCapteurId()
+						 + " and parametre_id = " + bilan.getParametre().getParametreId()+")");
+				if (datesExistants.size() != 0) {
+					resultats = (Object[])datesExistants.get(0);
+					bilan.setBilanDated((Date) resultats[0]);
+					bilan.setBilanDatef((Date) resultats[1]);
+					// Mise Ã© jour des localisations
+					locsExistants = CommunicationBD.getList("select min(l.localisationLat) as latMin,"
+							+ " max(l.localisationLat) as latMax, min(l.localisationLon) as lonMin,"
+							+ " max(l.localisationLon) as lonMax, min(l.localisationAlt) as altMin,"
+							+ " max(l.localisationAlt) as altMax, min(l.localisationHs) as hsMin,"
+							+ " max(l.localisationHs) as hsMax from Localisation l where localisation_id" +
+							" in (SELECT m.localisation.localisationId FROM Mesure m"
+							+ " where plateforme_id = " + bilan.getPlateforme().getPlateformeId()
+							+ " and m.fichier.jeu.jeuId = " + jeu.getJeuId()
+							+ " and mesure_id IN (SELECT v.mesure.mesureId FROM Valeur v"
+							+ " WHERE capteur_id = " + bilan.getCapteur().getCapteurId()
+							+ " and parametre_id = " + bilan.getParametre().getParametreId()+"))");
+					if (locsExistants.size() != 0) {
+						resultats = (Object[])locsExistants.get(0);
+						bilan.setBilanLatmin((Integer) resultats[0]);
+						bilan.setBilanLatmax((Integer) resultats[1]);
+						bilan.setBilanLonmin((Integer) resultats[2]);
+						bilan.setBilanLonmax((Integer) resultats[3]);
+						bilan.setBilanAltmin((Integer) resultats[4]);
+						bilan.setBilanAltmax((Integer) resultats[5]);
+						if(resultats[6] != null){
+							bilan.setBilanHsmin((Integer) resultats[6]);
+						}
+						if(resultats[7] != null){
+							bilan.setBilanHsmax((Integer) resultats[7]);
+						}
+						/**********traitement de la frÃ©quence*****************/
+						// FrÃ©quence = nb de secondes moyen entre 2 mesures consÃ©cutives
+						// on rÃ©cupere le nbre de mesures Ã© partir du nbre de valeurs
+//						nbMesures = bilan.getBilanNbval();
+						// datemax-datemin / nbmesures-->deltadate 
+						/***********test sur le deltaDate ajoutÃ©*************/
+//						if (deltaDate != 0){
+//							deltaDate = (bilan.getBilanDatef().getTime() - bilan.getBilanDated().getTime())/1000;
+							// on range le resultat obtenu dans la frequence 
+//							frequence = Math.round((float)deltaDate / (float)(nbMesures -1));
+							// on range la frequence obtenue dans la table bilan
+//							bilan.setBilanFreq(frequence);
+//						}
+					}
+				}
+				// on sauvegarde le bilan
+				CommunicationBD.save(bilan);
+			}
+		} 	
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/EcritureLog.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/EcritureLog.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/EcritureLog.java	(revision 482)
@@ -0,0 +1,58 @@
+/**
+ * Created on 11 Jan. 2007
+ *  @author 
+ */
+
+package integration.lecture_ecriture;
+
+import integration.utils.Constantes;
+
+import java.io.*;
+
+/**
+ * Classe permettant de lire et d'Ã©crire dans un fichier
+ */
+
+public class EcritureLog {
+
+    
+    /**
+     * Construit un fichier de sortie pour le jeu correspondant
+     */
+	
+    public static void init(String nomJeu,String categorie) {
+        Constantes.fichierSortie = new File(Constantes.cheminFichierSortie+"/"+categorie+"/log_"+nomJeu+".txt");
+        Constantes.fichierSortie.delete();
+		ecrire("### JEU="+nomJeu,"out");
+		ecrire("### CATEGORIE="+categorie,"out");
+    }
+    
+    /**
+     * Ecrit un texte dans un fichier de sortie et dans le terminal
+     * L'attribut description contient "err" si c'est une erreur,
+     * "out" si c'est une sortie normale
+     */
+    public static void ecrire(String texte, String description) {
+        FileWriter ecrire = null;
+        try {
+            ecrire = new FileWriter(Constantes.fichierSortie,true);
+            if (description.equals("out")) {
+                ecrire.write(texte+"\n");
+            } else if (description.equals("err")) {
+                ecrire.write(texte);
+            } else if (description.equals("out-ln")) {
+                ecrire.write(texte);
+            }
+            ecrire.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        if (description.equals("out")) {
+            System.out.println(texte);
+        } else if (description.equals("err")) {
+            System.err.print(texte);
+        } else if (description.equals("out-ln")) {
+            System.out.print(texte);
+        }
+    }
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LectureCapteurs.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LectureCapteurs.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LectureCapteurs.java	(revision 482)
@@ -0,0 +1,164 @@
+/*
+ * Created on 29 Jan. 2007
+ */
+/**
+ * @author 
+ * 
+ * 
+ */
+package integration.lecture_ecriture;
+
+import integration.utils.Constantes;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+
+import jxl.Sheet;
+import jxl.Workbook;
+import jxl.WorkbookSettings;
+import jxl.read.biff.BiffException;
+
+public class LectureCapteurs {
+	private ArrayList<String> numerosCapt;
+	private ArrayList<String> typesCapt;
+	private ArrayList<String> fabriquantsCapt;
+	private ArrayList<String> modelesCapt;
+	private ArrayList<String> numsSeriesCapt;
+	private ArrayList<String> etalonnagesCapt;
+	private ArrayList<ArrayList<String>> numsParametresCapt;
+	private ArrayList<String> nomsCaptFromFile;
+	private ArrayList<String> descriptionsCapt;
+	private ArrayList<String> descriptionsTypeCapt;
+
+	public LectureCapteurs() {
+	}
+
+	public void lireFichier() {
+		String nomFichierCapt = Constantes.cheminListes + "/" + Constantes.nomListeCapteurs;
+		File fichier = new File(nomFichierCapt);
+		if (fichier.exists()) {
+			// Etape ou l' on crÃ©e le Workbook
+			Workbook workbook = null;
+			try {
+				WorkbookSettings ws = new WorkbookSettings();
+				ws.setEncoding(Constantes.encodageDefaut);
+				workbook = Workbook.getWorkbook(fichier, ws);
+			} catch (BiffException e) {
+				e.printStackTrace();
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+			// Etape ou l'on rÃ©cupÃ©re les donnÃ©es de la 1Ã©re page du classeur
+			Sheet sheet = workbook.getSheet(0);
+			// Etape d'initialisation des listes.
+			numerosCapt = new ArrayList<String>();
+			typesCapt = new ArrayList<String>();
+			fabriquantsCapt = new ArrayList<String>();
+			modelesCapt = new ArrayList<String>();
+			numsSeriesCapt = new ArrayList<String>();
+			etalonnagesCapt = new ArrayList<String>();
+			nomsCaptFromFile = new ArrayList<String>();
+//			descriptionsCapt = new ArrayList<String>();
+//			descriptionsTypeCapt = new ArrayList<String>();
+			numsParametresCapt = new ArrayList<ArrayList<String>>();
+
+			int nbCapteurs = sheet.getRows() - 1;//Constantes.nbCapteurs;
+		
+			String numsParametres, numParametre, paramDer;
+			int paramCourant;
+			ArrayList<String> numsParametresLigne;
+			// Etape de lecture des cellules
+			for (int numCapt = 0; numCapt < nbCapteurs; numCapt++) {
+				numerosCapt.add(sheet.getCell(0, numCapt + 1).getContents());
+				typesCapt.add(sheet.getCell(1, numCapt + 1).getContents());
+				fabriquantsCapt.add(sheet.getCell(2, numCapt + 1).getContents());
+				modelesCapt.add(sheet.getCell(3, numCapt + 1).getContents());
+				numsSeriesCapt.add(sheet.getCell(4, numCapt + 1).getContents());
+				etalonnagesCapt.add(sheet.getCell(5, numCapt + 1).getContents());
+				//descriptionsCapt.add(sheet.getCell(4, numCapt + 1).getContents());
+				//descriptionsTypeCapt.add(sheet.getCell(6, numCapt + 1).getContents());
+				numsParametres = sheet.getCell(6, numCapt + 1).getContents();
+				numsParametresLigne = new ArrayList<String>();
+				while (numsParametres.indexOf(Constantes.delimiteurXLS) != -1) {
+					// On rÃ©cupÃ©re la 1Ã©re donnÃ©e de la mesure avant le dÃ©limiteur
+					numParametre = numsParametres.substring(0, numsParametres.indexOf(Constantes.delimiteurXLS)).trim();
+					// On rÃ©cupÃ©re la mesure restante aprÃ©s le dÃ©limiteur
+					numsParametres = numsParametres.substring(numsParametres.indexOf(Constantes.delimiteurXLS)+1).trim();
+					if (numParametre.equals("..")) {
+						if (numsParametres.indexOf(Constantes.delimiteurXLS) != -1)
+							paramDer = numsParametres.substring(0, numsParametres.indexOf(Constantes.delimiteurXLS)).trim();
+						else
+							paramDer = numsParametres.trim();
+						paramCourant = Integer.parseInt(numsParametresLigne.get(numsParametresLigne.size()-1));
+						while (paramCourant < Integer.parseInt(paramDer)-1) {
+							paramCourant++;
+							numsParametresLigne.add(String.valueOf(paramCourant));
+						}
+					} else {
+						numsParametresLigne.add(numParametre);
+					}
+				}
+				numParametre = numsParametres;
+				numsParametresLigne.add(numParametre);
+				numsParametresCapt.add(numsParametresLigne);
+				nomsCaptFromFile.add(sheet.getCell(7, numCapt + 1).getContents());
+			}
+			// Etape de fermeture du flux
+			workbook.close();
+		}
+	}
+
+	public ArrayList<String> getNumerosCapt() {
+		return numerosCapt;
+	}
+
+	public ArrayList<String> getDescriptionsCapt() {
+		return descriptionsCapt;
+	}
+
+	public ArrayList<String> getEtalonnagesCapt() {
+		return etalonnagesCapt;
+	}
+
+	public ArrayList<String> getFabriquantsCapt() {
+		return fabriquantsCapt;
+	}
+
+	public ArrayList<String> getModelesCapt() {
+		return modelesCapt;
+	}
+
+	public ArrayList<String> getNumsSeriesCapt() {
+		return numsSeriesCapt;
+	}
+	
+	public ArrayList<ArrayList<String>> getNumsParametresCapt() {
+		return numsParametresCapt;
+	}
+
+	public ArrayList<String> getTypesCapt() {
+		return typesCapt;
+	}
+
+	public ArrayList<String> getDescriptionsTypeCapt() {
+		return descriptionsTypeCapt;
+	}
+
+	public ArrayList<String> getNomsCaptFromFile() {
+		return nomsCaptFromFile;
+	}
+
+	public int getIndice(int numero) {
+		int indice = -1;
+		int numeroCourant;
+		for (int indiceListe = 0; indiceListe < numerosCapt.size(); indiceListe++) {
+			numeroCourant = Integer.parseInt((String)numerosCapt.get(indiceListe));
+			if (numeroCourant == numero) {
+				indice = indiceListe;
+				return indice;
+			}
+		}
+		return indice;
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LectureModeleXML.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LectureModeleXML.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LectureModeleXML.java	(revision 482)
@@ -0,0 +1,171 @@
+/**
+ * Created on 17 Jan. 2007
+ * * @author
+ */
+package integration.lecture_ecriture;
+
+import integration.exceptions.*;
+import integration.utils.Constantes;
+import integration.vues.ParametreModele;
+import java.io.File;
+import java.util.*;
+import org.jdom.Element;
+/**
+ * Lecture et dÃ©chiffrrage d'un modÃ©le XML dÃ©crivant la structure d'un fichier
+ * de donnÃ©es correspondant Ã© un jeu donnÃ©.
+ */
+public class LectureModeleXML {
+
+	private Element root;
+
+	private String categorie;
+
+	private String jeu;
+
+	public LectureModeleXML(String categorie, String jeu) {
+		this.categorie = categorie;
+		this.jeu = jeu;
+	}
+
+	public void lireModele() {
+		//	Chemin du modÃ©le xml Ã© manipuler
+		String modele = Constantes.cheminModeles + "/" + categorie + "/" + jeu + "_modele.xml";
+		//	Etape de Construction du "parser XML"
+		XMLParser builder = new XMLParser();
+		File f = new File(modele);
+		if (f.exists()) {
+			try {
+				builder.readXml(modele);
+				//	EcritureLog.ecrire("******* ModÃ©le du jeu de donnÃ©es : "+ f.getName() + " *******", "out");
+			} catch (XMLException e) {
+				e.printStackTrace();
+			}
+
+		} else {
+			EcritureLog.ecrire("Fichier " + f.getName() + " non trouvÃ© !", "err");
+		}
+		root = builder.getRoot();
+	}
+
+	//	Partie faisant rÃ©fÃ©rence Ã© l'entÃ©te
+	public String getNomCategorie() {
+		return root.getChild("entete").getAttributeValue("categorie");
+	}
+
+	//	RÃ©fÃ©rences relatives au jeu
+	public String getNomJeu() {
+		return root.getChild("entete").getAttributeValue("jeu");
+	}
+
+	//	Description du jeu en question
+	public String getDescriptionJeu() {
+		return root.getChild("entete").getAttributeValue("description");
+	}
+
+	//	Valeur absente
+	public String getValeurAbsente() {
+		return root.getChild("entete").getAttributeValue("valeur_absente");
+	}
+
+	//	Noms relatifs aux organismes
+	public String getNumOrganismeJeu() {
+		return root.getChild("entete").getAttributeValue("organisme");
+	}
+
+	//	Delimiteur du modÃ©le
+	public String getDelimiteur() {
+		return root.getChild("entete").getAttributeValue("delimiteur");
+	}
+
+	//	Subdivision ou non
+	public String getSubdiviser() {
+		return root.getChild("entete").getAttributeValue("subdiviser");
+	}
+	
+	//	CoordonnÃ©es de la personne "pi"
+	public String getNumeroPi() {
+		return root.getChild("entete").getChild("pi").getAttributeValue(
+				"numero");
+	}
+
+	//	CoordonnÃ©es de la personne "contact"
+	public String getNumeroContact() {
+		return root.getChild("entete").getChild("contact").getAttributeValue("numero");
+	}
+
+	//	CoordonnÃ©es de la personne "integrateur"
+	public String getNumeroIntegrateur() {
+		return root.getChild("entete").getChild("integrateur").getAttributeValue("numero");
+	}
+	
+	//	Partie des donnÃ©es Ã© manimpuler
+	/**
+	 * Renvoie les paramÃ©tres avec leurs caractÃ©ristiques dans une liste.
+	 * 
+	 * @return La liste de tous les paramÃ©tres et leurs caractÃ©ristiques.
+	 */
+	public ArrayList<ParametreModele> getParametres() {
+		ArrayList<ParametreModele> infosParam = new ArrayList<ParametreModele>();
+		Iterator<?> it = root.getChild("donnees").getChildren("parametre").iterator();
+		while (it.hasNext()) {
+			Element child = (Element) it.next();
+			infosParam.add(new ParametreModele(child.getAttributeValue("nom"),
+					child.getAttributeValue("type"), child.getAttributeValue("fonction"), 
+					child.getAttributeValue("unite"), child.getAttributeValue("delta"), 
+					child.getAttributeValue("numero"),child.getAttributeValue("format"),child.getAttributeValue("lod")));
+		}
+		return infosParam;
+	}
+
+	/**
+	 * Renvoie les paramÃ©tres associÃ©s Ã© une valeur avec leurs caractÃ©ristiques dans une liste.
+	 * 
+	 * @return La liste de tous les paramÃ©tres associÃ©s et leurs caractÃ©ristiques.
+	 */
+	public ArrayList<ParametreModele> getParametresValeur() {
+		ArrayList<ParametreModele> infosParam = new ArrayList<ParametreModele>();
+		Iterator<?> it = root.getChild("donnees").getChildren("parametre").iterator();
+		String fonction;
+		while (it.hasNext()) {
+			Element child = (Element) it.next();
+			fonction = child.getAttributeValue("fonction");
+			if (fonction.equals(Constantes.nomFonctionInsererVal)) {
+				infosParam.add(new ParametreModele(child.getAttributeValue("nom"),
+						child.getAttributeValue("type"), fonction, 
+						child.getAttributeValue("unite"), child.getAttributeValue("delta"), 
+						child.getAttributeValue("numero"), child.getAttributeValue("format"),child.getAttributeValue("lod")));
+			}
+		}
+		return infosParam;
+	}
+	
+	/**
+	 * Renvoie des numÃ©ros correspondant aux plateformes et leur rÃ©fÃ©rences.
+	 */
+	//	Liste des plateformes Ã© manipuler
+	public ArrayList<String> getNumsPlateforme() {
+		ArrayList<String> numPlats = new ArrayList<String>();
+		Iterator<?> it = root.getChild("donnees").getChildren("plateforme").iterator();
+		Element child;
+		while (it.hasNext()) {
+			child = (Element) it.next();
+			numPlats.add(child.getAttributeValue("numero"));
+		}
+		return numPlats;
+	}
+
+	/**
+	 * Renvoie des numÃ©ros correspondant aux capteurs et leur rÃ©fÃ©rences.
+	 */
+	//	Liste des capteurs Ã© manipuler
+	public ArrayList<String> getNumsCapteur() {
+		ArrayList<String> numCapts = new ArrayList<String>();
+		Iterator<?> it = root.getChild("donnees").getChildren("capteur").iterator();
+		Element child;
+		while (it.hasNext()) {
+			child = (Element) it.next();
+			numCapts.add(child.getAttributeValue("numero"));
+		}
+		return numCapts;
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LectureOrganismes.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LectureOrganismes.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LectureOrganismes.java	(revision 482)
@@ -0,0 +1,127 @@
+
+/*
+ * Created on 29 Jan. 2007
+ */
+/**
+ * @author 
+ * 
+ * 
+ */
+package integration.lecture_ecriture;
+
+import integration.utils.Constantes;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+
+import jxl.Sheet;
+import jxl.Workbook;
+import jxl.WorkbookSettings;
+import jxl.read.biff.BiffException;
+
+public class LectureOrganismes {
+
+	private ArrayList<String> numerosOrg;
+	private ArrayList<String> nomsOrg;
+	private ArrayList<String> mailsOrg;
+	private ArrayList<String> descriptionsOrg;
+	private ArrayList<String> ruesOrg;
+	private ArrayList<String> codesPostalsOrg;
+	private ArrayList<String> villesOrg;
+	private ArrayList<String> paysOrg;
+	private ArrayList<String> urlsOrg;
+
+	public LectureOrganismes() {
+	}
+
+	public void lireFichier() {
+		String nomFichierOrg = Constantes.cheminListes + "/" + Constantes.nomListeOrganismes;
+		File fichier = new File(nomFichierOrg);
+		if (fichier.exists()) {
+			// Etape ou l' on crÃ©e le Workbook
+			Workbook workbook = null;
+			try {
+				WorkbookSettings ws = new WorkbookSettings();
+				//ws.setEncoding("OS2-850");//ISO-8859-1
+				ws.setEncoding(Constantes.encodageDefaut);
+				workbook = Workbook.getWorkbook(fichier, ws);
+			} catch (BiffException e) {
+				e.printStackTrace();
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+			// Etape ou l'on rÃ©cupÃ©re les donnÃ©es de la 1Ã©re page du classeur
+			Sheet sheet = workbook.getSheet(0);
+			
+            //initialisation des listes.
+			numerosOrg = new ArrayList<String>();
+			nomsOrg = new ArrayList<String>();
+			descriptionsOrg = new ArrayList<String>();
+			mailsOrg = new ArrayList<String>();
+			urlsOrg = new ArrayList<String>();
+			ruesOrg = new ArrayList<String>();
+			codesPostalsOrg = new ArrayList<String>();
+			villesOrg = new ArrayList<String>();
+			paysOrg = new ArrayList<String>();
+			int nbOrganismes = sheet.getRows() - 1;//Constantes.nbOrganismes;
+			// Etape de lecture des cellules
+			for (int numOrg = 0; numOrg < nbOrganismes; numOrg++) {
+				numerosOrg.add(sheet.getCell(0, numOrg + 1).getContents());
+				nomsOrg.add(sheet.getCell(1, numOrg + 1).getContents());
+				descriptionsOrg.add(sheet.getCell(2, numOrg + 1).getContents());
+				mailsOrg.add(sheet.getCell(3, numOrg + 1).getContents());
+				urlsOrg.add(sheet.getCell(4, numOrg + 1).getContents());
+				ruesOrg.add(sheet.getCell(5, numOrg + 1).getContents());
+				codesPostalsOrg.add(sheet.getCell(6, numOrg + 1).getContents());
+				villesOrg.add(sheet.getCell(7, numOrg + 1).getContents());
+				paysOrg.add(sheet.getCell(8, numOrg + 1).getContents());
+			}
+			// Etape de fermeture du flux
+			workbook.close();
+
+		}
+
+	}
+
+	public ArrayList<String> getNumerosOrg() {
+		return numerosOrg;
+	}
+	public ArrayList<String> getNomsOrg() {
+		return nomsOrg;
+	}
+	public ArrayList<String> getMailsOrg() {
+		return mailsOrg;
+	}
+	public ArrayList<String> getDescriptionsOrg() {
+		return descriptionsOrg;
+	}
+	public ArrayList<String> getRuesOrg() {
+		return ruesOrg;
+	}
+	public ArrayList<String> getCodesPostalsOrg() {
+		return codesPostalsOrg;
+	}
+	public ArrayList<String> getVillesOrg() {
+		return villesOrg;
+	}
+	public ArrayList<String> getPaysOrg() {
+		return paysOrg;
+	}
+	public ArrayList<String> getUrlsOrg() {
+		return urlsOrg;
+	}
+	
+	public int getIndice(int numero) {
+		int indice = -1;
+		int numeroCourant;
+		for (int indiceListe = 0; indiceListe < numerosOrg.size(); indiceListe++) {
+			numeroCourant = Integer.parseInt((String)numerosOrg.get(indiceListe));
+			if (numeroCourant == numero) {
+				indice = indiceListe;
+				return indice;
+			}
+		}
+		return indice;
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LectureParametres.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LectureParametres.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LectureParametres.java	(revision 482)
@@ -0,0 +1,116 @@
+/**
+ * Created on 26 Jan. 2007
+ */
+
+/**
+ * @author 
+ * 
+ * 
+ */
+
+package integration.lecture_ecriture;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import jxl.Sheet;
+import jxl.Workbook;
+import jxl.WorkbookSettings;
+import jxl.read.biff.BiffException;
+import integration.utils.Constantes;
+
+public class LectureParametres {
+
+	private ArrayList<String> numerosParam;
+	private ArrayList<String> nomsParam;
+	private ArrayList<String> codesMegapoliParam;
+	private ArrayList<String> categoriesParam;
+	private ArrayList<String> numsUnitesParam;
+	private ArrayList<String> descriptionsParam;
+	private ArrayList<String> nomsParamFromFile;
+
+	public LectureParametres() {
+	}
+
+	public void lireFichier() {
+		//	Etape d'accÃ©s au chemin du modÃ©le xml Ã© amanipuler
+		String nomFichierParam = Constantes.cheminListes + "/" + Constantes.nomListeParametres;
+		File fichier = new File(nomFichierParam);
+		if (fichier.exists()) {
+			Workbook workbook = null;
+			try {
+				WorkbookSettings ws = new WorkbookSettings();
+				ws.setEncoding(Constantes.encodageDefaut);
+				workbook = Workbook.getWorkbook(fichier, ws);
+			} catch (BiffException e) {
+				e.printStackTrace();
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+			//	Etape ou l'on rÃ©cupÃ©re les donnÃ©es de la 1Ã©re page du classeur
+			Sheet sheet = workbook.getSheet(0);
+			
+			//	Initialisation des listes.
+			numerosParam = new ArrayList<String>();
+			nomsParam = new ArrayList<String>();
+			codesMegapoliParam = new ArrayList<String>();
+			numsUnitesParam = new ArrayList<String>();
+			//descriptionsParam = new ArrayList<String>();
+			categoriesParam = new ArrayList<String>();
+			nomsParamFromFile = new ArrayList<String>();
+			//	Etape de lecture des cellules
+			int nbParams = sheet.getRows() - 1;//Constantes.nbParametres
+			for (int numParam = 0; numParam < nbParams; numParam++) {
+				numerosParam.add(sheet.getCell(0, numParam + 1).getContents());
+				nomsParam.add(sheet.getCell(1, numParam + 1).getContents());
+				codesMegapoliParam.add(sheet.getCell(2, numParam + 1).getContents());
+				categoriesParam.add(sheet.getCell(3, numParam + 1).getContents());
+				numsUnitesParam.add(sheet.getCell(4, numParam + 1).getContents());
+				nomsParamFromFile.add(sheet.getCell(5, numParam + 1).getContents());
+				//descriptionsParam.add(sheet.getCell(4, numParam + 1).getContents());
+			}
+			//	Etape de fermeture du flux
+			workbook.close();
+		} else {
+			EcritureLog.ecrire(
+					"Fichier " + fichier.getName() + " non trouvÃ© !", "err");
+
+		}
+	}
+	
+	public ArrayList<String> getNumerosParam() {
+		return numerosParam;
+	}
+	public ArrayList<String> getNomsParam() {
+		return nomsParam;
+	}
+	public ArrayList<String> getCodesMegapoliParam() {
+		return codesMegapoliParam;
+	}
+	public ArrayList<String> getNumsUnitesParam() {
+		return numsUnitesParam;
+	}
+	public ArrayList<String> getDescriptionsParam() {
+		return descriptionsParam;
+	}
+	public ArrayList<String> getCategoriesParam() {
+		return categoriesParam;
+	}
+
+	public ArrayList<String> getNomsParamFromFile() {
+		return nomsParamFromFile;
+	}
+
+	public int getIndice(int numero) {
+		int indice = -1;
+		int numeroCourant;
+		for (int indiceListe = 0; indiceListe < numerosParam.size(); indiceListe++) {
+			numeroCourant = Integer.parseInt((String)numerosParam.get(indiceListe));
+			if (numeroCourant == numero) {
+				indice = indiceListe;
+				return indice;
+			}
+		}
+		return indice;
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LecturePersonnes.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LecturePersonnes.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LecturePersonnes.java	(revision 482)
@@ -0,0 +1,119 @@
+/*
+ * Created on 29 Jan. 2007
+ */
+/**
+ * @author 
+ * 
+ * 
+ */
+package integration.lecture_ecriture;
+
+import integration.utils.Constantes;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+
+import jxl.Sheet;
+import jxl.Workbook;
+import jxl.WorkbookSettings;
+import jxl.read.biff.BiffException;
+
+public class LecturePersonnes {
+	private ArrayList<String> numerosPers;
+
+	private ArrayList<String> nomsPers;
+
+	private ArrayList<String> prenomsPers;
+
+	private ArrayList<String> mailsPers;
+
+	private ArrayList<String> descriptionsPers;
+
+	private ArrayList<String> numOrgsPers;
+
+	public LecturePersonnes() {
+	}
+
+	private int nbPersonnes;
+
+	public void lireFichier() {
+		String nomFichierPers = Constantes.cheminListes + "/" + Constantes.nomListePersonnes;
+		File fichier = new File(nomFichierPers);
+		if (fichier.exists()) {
+			// Etape ou l' on crÃ©e le Workbook
+			Workbook workbook = null;
+			try {
+				WorkbookSettings ws = new WorkbookSettings();
+				ws.setEncoding(Constantes.encodageDefaut);
+				workbook = Workbook.getWorkbook(fichier, ws);
+			} catch (BiffException e) {
+				e.printStackTrace();
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+			// Etape ou l'on rÃ©cupÃ©re les donnÃ©es de la 1Ã©re page du classeur
+			Sheet sheet = workbook.getSheet(0);
+			
+			// Erape d'initialisisations des listes
+			numerosPers = new ArrayList<String>();
+			nomsPers = new ArrayList<String>();
+			prenomsPers = new ArrayList<String>();
+			mailsPers = new ArrayList<String>();
+			descriptionsPers = new ArrayList<String>();
+			numOrgsPers = new ArrayList<String>();
+
+			nbPersonnes = sheet.getRows() - 1;//Constantes.nbPersonnes;
+			// Etape de lecture des cellules
+			for (int numPers = 0; numPers < nbPersonnes; numPers++) {
+				numerosPers.add(sheet.getCell(0, numPers + 1).getContents());
+				nomsPers.add(sheet.getCell(1, numPers + 1).getContents());
+				prenomsPers.add(sheet.getCell(2, numPers + 1).getContents());
+				mailsPers.add(sheet.getCell(3, numPers + 1).getContents());
+				descriptionsPers.add(sheet.getCell(4, numPers + 1).getContents());
+				numOrgsPers.add(sheet.getCell(5, numPers + 1).getContents());
+			}
+			// Etape de fermeture du flux
+			workbook.close();
+
+		}
+
+	}
+
+	public ArrayList<String> getNumerosPers() {
+		return numerosPers;
+	}
+
+	public ArrayList<String> getNomsPers() {
+		return nomsPers;
+	}
+
+	public ArrayList<String> getPrenomsPers() {
+		return prenomsPers;
+	}
+
+	public ArrayList<String> getMailsPers() {
+		return mailsPers;
+	}
+
+	public ArrayList<String> getDescriptionsPers() {
+		return descriptionsPers;
+	}
+
+	public ArrayList<String> getNumOrgsPers() {
+		return numOrgsPers;
+	}
+	
+	public int getIndice(int numero) {
+		int indice = -1;
+		int numeroCourant;
+		for (int indiceListe = 0; indiceListe < numerosPers.size(); indiceListe++) {
+			numeroCourant = Integer.parseInt((String)numerosPers.get(indiceListe));
+			if (numeroCourant == numero) {
+				indice = indiceListe;
+				return indice;
+			}
+		}
+		return indice;
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LecturePlateformes.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LecturePlateformes.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LecturePlateformes.java	(revision 482)
@@ -0,0 +1,203 @@
+/*
+ * Created on 29 Jan. 2007
+ */
+/**
+ * @author 
+ * 
+ * 
+ */
+package integration.lecture_ecriture;
+
+import integration.utils.Constantes;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+
+import jxl.Sheet;
+import jxl.Workbook;
+import jxl.WorkbookSettings;
+import jxl.read.biff.BiffException;
+
+public class LecturePlateformes {
+	private ArrayList<String> numerosPlat;
+
+	private ArrayList<String> nomsPlat;
+
+	private ArrayList<String> typesPlat;
+
+	private ArrayList<String> descriptionsPlat;
+
+	private ArrayList<String> latMinsPlat;
+
+	private ArrayList<String> latMaxsPlat;
+
+	private ArrayList<String> longMinsPlat;
+
+	private ArrayList<String> longMaxsPlat;
+
+	private ArrayList<String> altMinsPlat;
+
+	private ArrayList<String> altMaxsPlat;
+
+	private ArrayList<String> hautSolMinsPlat;
+
+	private ArrayList<String> hautSolMaxsPlat;
+	
+	 ArrayList<ArrayList<String>> numsCaptPLat;
+
+	public LecturePlateformes() {
+	}
+
+	private int nbPlateformes;
+
+	public void lireFichier() {
+		String nomFichierPlat = Constantes.cheminListes + "/" + Constantes.nomListePlateformes;
+		File fichier = new File(nomFichierPlat);
+		if (fichier.exists()) {
+			// Etape ou l' on crÃ©e le Workbook
+			Workbook workbook = null;
+			try {
+				WorkbookSettings ws = new WorkbookSettings();
+				ws.setEncoding(Constantes.encodageDefaut);
+				workbook = Workbook.getWorkbook(fichier, ws);
+			} catch (BiffException e) {
+				e.printStackTrace();
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+			// Etape ou l'on rÃ©cupÃ©re les donnÃ©es de la 1Ã©re page du classeur
+			Sheet sheet = workbook.getSheet(0);
+			
+			// initialisation des listes.
+			numerosPlat = new ArrayList<String>();
+			nomsPlat = new ArrayList<String>();
+			typesPlat = new ArrayList<String>();
+			descriptionsPlat = new ArrayList<String>();
+			latMinsPlat = new ArrayList<String>();
+			latMaxsPlat = new ArrayList<String>();
+			longMinsPlat = new ArrayList<String>();
+			longMaxsPlat = new ArrayList<String>();
+			altMinsPlat = new ArrayList<String>();
+			altMaxsPlat = new ArrayList<String>();
+			//hautSolMinsPlat = new ArrayList<String>();
+			//hautSolMaxsPlat = new ArrayList<String>();
+			numsCaptPLat = new ArrayList<ArrayList<String>>();
+			
+			
+			nbPlateformes = sheet.getRows() - 1;//Constantes.nbPlateformes;
+			String numsCapteurs, numCapteur, captDer;
+			int captCourant;
+			ArrayList<String> numsCapteursLigne;
+			// Etape de lecture des cellules
+			for (int numPlat = 0; numPlat < nbPlateformes; numPlat++) {
+				numerosPlat.add(sheet.getCell(0, numPlat + 1).getContents());
+				nomsPlat.add(sheet.getCell(1, numPlat + 1).getContents());
+				descriptionsPlat.add(sheet.getCell(2, numPlat + 1).getContents());
+				typesPlat.add(sheet.getCell(3, numPlat + 1).getContents());
+				latMinsPlat.add(sheet.getCell(4, numPlat + 1).getContents().replaceAll(",", "."));
+				latMaxsPlat.add(sheet.getCell(5, numPlat + 1).getContents().replaceAll(",", "."));
+				longMinsPlat.add(sheet.getCell(6, numPlat + 1).getContents().replaceAll(",", "."));
+				longMaxsPlat.add(sheet.getCell(7, numPlat + 1).getContents().replaceAll(",", "."));
+				altMinsPlat.add(sheet.getCell(8, numPlat + 1).getContents().replaceAll(",", "."));
+				altMaxsPlat.add(sheet.getCell(9, numPlat + 1).getContents().replaceAll(",", "."));
+				//hautSolMinsPlat.add(sheet.getCell(10, numPlat + 1).getContents());
+				//hautSolMaxsPlat.add(sheet.getCell(11, numPlat + 1).getContents());
+				
+				numsCapteurs = sheet.getCell(10, numPlat + 1).getContents();
+				numsCapteursLigne = new ArrayList<String>();
+				while (numsCapteurs.indexOf(Constantes.delimiteurXLS) != -1) {
+					// On rÃ©cupÃ©re la 1Ã©re donnÃ©e de la mesure avant le dÃ©limiteur
+					numCapteur = numsCapteurs.substring(0, numsCapteurs.indexOf(Constantes.delimiteurXLS)).trim();
+					// On rÃ©cupÃ©re la mesure restante aprÃ©s le dÃ©limiteur
+					numsCapteurs = numsCapteurs.substring(numsCapteurs.indexOf(Constantes.delimiteurXLS)+1).trim();
+					if (numCapteur.equals("..")) {
+						if (numsCapteurs.indexOf(Constantes.delimiteurXLS) != -1)
+							captDer = numsCapteurs.substring(0, numsCapteurs.indexOf(Constantes.delimiteurXLS)).trim();
+						else
+							captDer = numsCapteurs.trim();
+						captCourant = Integer.parseInt(numsCapteursLigne.get(numsCapteursLigne.size()-1));
+						while (captCourant < Integer.parseInt(captDer)-1) {
+							captCourant++;
+							numsCapteursLigne.add(String.valueOf(captCourant));
+						}
+					} else {
+						numsCapteursLigne.add(numCapteur);
+					}
+				}
+				numCapteur = numsCapteurs;
+				numsCapteursLigne.add(numsCapteurs);
+				numsCaptPLat.add(numsCapteursLigne);
+			// Etape de fermeture du flux
+			}
+			workbook.close();
+
+		}
+		
+	}
+
+	public ArrayList<String> getNumerosPlat() {
+		return numerosPlat;
+	}
+
+	public ArrayList<String> getNomsPLat() {
+		return nomsPlat;
+	}
+
+	public ArrayList<String> getTypesPlat() {
+		return typesPlat;
+	}
+
+	public ArrayList<String> getDescriptionsPLat() {
+		return descriptionsPlat;
+	}
+
+	public ArrayList<String> getLatMinsPLat() {
+		return latMinsPlat;
+	}
+
+	public ArrayList<String> getLatMaxsPLat() {
+		return latMaxsPlat;
+	}
+
+	public ArrayList<String> getLongMinsPLat() {
+		return longMinsPlat;
+	}
+
+	public ArrayList<String> getLongMaxsPLat() {
+		return longMaxsPlat;
+	}
+
+	public ArrayList<String> getAltMinsPLat() {
+		return altMinsPlat;
+	}
+
+	public ArrayList<String> getAltMaxsPLat() {
+		return altMaxsPlat;
+	}
+
+	public ArrayList<String> getHautSolMinsPlat() {
+		return hautSolMinsPlat;
+	}
+
+	public ArrayList<String> getHautSolMaxsPlat() {
+		return hautSolMaxsPlat;
+	}
+
+	public ArrayList<ArrayList<String>> getNumsCaptPlat() {
+		return numsCaptPLat;
+	}
+
+	public int getIndice(int numero) {
+		int indice = -1;
+		int numeroCourant;
+		for (int indiceListe = 0; indiceListe < numerosPlat.size(); indiceListe++) {
+			numeroCourant = Integer.parseInt((String)numerosPlat.get(indiceListe));
+			if (numeroCourant == numero) {
+				indice = indiceListe;
+				return indice;
+			}
+		}
+		return indice;
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LectureUnites.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LectureUnites.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/LectureUnites.java	(revision 482)
@@ -0,0 +1,96 @@
+/*
+ * Created on 29 Jan. 2007
+ */
+/**
+ * @author 
+ * 
+ * 
+ */
+package integration.lecture_ecriture;
+
+import integration.utils.Constantes;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+
+import jxl.Sheet;
+import jxl.Workbook;
+import jxl.WorkbookSettings;
+import jxl.read.biff.BiffException;
+
+public class LectureUnites {
+	private ArrayList<String> numerosUni;
+	private ArrayList<String> codesUni;
+	private ArrayList<String> nomsUni;
+	private ArrayList<String> typesUni;
+
+	public LectureUnites() {
+	}
+
+	public void lireFichier() {
+		String nomFichierUni = Constantes.cheminListes + "/" + Constantes.nomListeUnites;
+		File fichier = new File(nomFichierUni);
+		if (fichier.exists()) {
+			// Etape ou l' on crÃ©e le Workbook
+			Workbook workbook = null;
+			try {
+				WorkbookSettings ws = new WorkbookSettings();
+				ws.setEncoding(Constantes.encodageDefaut);
+				workbook = Workbook.getWorkbook(fichier, ws);
+			} catch (BiffException e) {
+				e.printStackTrace();
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+			// Etape ou l'on rÃ©cupÃ©re les donnÃ©es de la 1Ã©re page du classeur
+			Sheet sheet = workbook.getSheet(0);
+			// Etape d'initialisation des listes.
+			numerosUni = new ArrayList<String>();
+			codesUni = new ArrayList<String>();
+			nomsUni = new ArrayList<String>();
+			typesUni = new ArrayList<String>();
+			
+			int nbUnites = sheet.getRows() - 1;//Constantes.nbUnites;
+			// Etape de lecture des cellules
+			for (int numUni = 0; numUni < nbUnites; numUni++) {
+				numerosUni.add(sheet.getCell(0, numUni + 1).getContents());
+				codesUni.add(sheet.getCell(1, numUni + 1).getContents());
+				nomsUni.add(sheet.getCell(2, numUni + 1).getContents());
+				typesUni.add(sheet.getCell(3, numUni + 1).getContents());
+			}
+			// Etape de fermeture du flux
+			workbook.close();
+		}
+
+	}
+
+	public ArrayList<String> getCodesUni() {
+		return codesUni;
+	}
+
+	public ArrayList<String> getNumerosUni() {
+		return numerosUni;
+	}
+
+	public ArrayList<String> getNomsUni() {
+		return nomsUni;
+	}
+
+	public ArrayList<String> getTypesUni() {
+		return typesUni;
+	}
+
+	public int getIndice(int numero) {
+		int indice = -1;
+		int numeroCourant;
+		for (int indiceListe = 0; indiceListe < numerosUni.size(); indiceListe++) {
+			numeroCourant = Integer.parseInt((String)numerosUni.get(indiceListe));
+			if (numeroCourant == numero) {
+				indice = indiceListe;
+				return indice;
+			}
+		}
+		return indice;
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/XMLParser.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/XMLParser.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/XMLParser.java	(revision 482)
@@ -0,0 +1,132 @@
+/**
+ * Created on 24 Janvier. 2006
+ *  @author 
+ */
+package integration.lecture_ecriture;
+
+
+import org.jdom.*;
+import org.jdom.input.SAXBuilder;
+import org.jdom.output.XMLOutputter;
+import integration.exceptions.*;
+
+import java.io.*;
+
+/**
+ * 
+ * Classe permettant de lire, Ã©crire ou modifier des fichiers XML.
+ */
+
+public class XMLParser {
+
+    /** Document JDOM reprÃ©sentant le fichier XML manipulÃ©. **/
+    private Document doc;
+
+
+    /**
+     * Ajoute un Ã©lÃ©ment Ã© une racine.
+     * @param root ElÃ©ment racine.
+     * @param name Nom de l'Ã©lÃ©ment.
+     * @param value Valeur de l'Ã©lÃ©ment.
+     */
+    public void createXMLRepresentation(Element root, String name, String value) {
+        Element element = new Element(name);
+        element.setText(value);
+        root.addContent(element);
+    }
+
+    /**
+     * Ajoute un Ã©lÃ©ment Ã© une racine.
+     * @param root ElÃ©ment racine.
+     * @param element ElÃ©ment Ã© ajouter.
+     */
+    public void createXMLRepresentation(Element root, Element element) {
+        root.addContent(element);
+    }
+
+    /**
+     * Renvoie l'Ã©lÃ©ment enfant d'un Ã©lÃ©ment enfant de la racine du document.
+     * @param parent Nom de l'Ã©lÃ©ment parent de l'Ã©lÃ©ment Ã© renvoyer.
+     * @param child Nom de l'Ã©lÃ©ment Ã© renvoyer.
+     * @return L'Ã©lÃ©ment recherchÃ©.
+     */
+    public Element getRootElement(String parent, String child) {
+        Element el = doc.getRootElement();
+        return el.getChild(parent).getChild(child);
+    }
+
+    /**
+     * Ecrit un document JDOM dans un fichier XML.
+     * @param xmlFilename Nom du fichier XML Ã© crÃ©er.
+     */
+    public void writeXml(String xmlFilename) {
+        try {
+            XMLOutputter outputter = new XMLOutputter();
+            FileOutputStream output = new FileOutputStream(xmlFilename);
+            outputter.output(doc, output);
+            output.close();
+        } catch (IOException ex) {
+            ex.printStackTrace();
+            EcritureLog.ecrire("Le fichier XML n'a pas pu Ã©tre crÃ©Ã©.","err");
+        }
+    }
+
+    /**
+     * Ecrit un document JDOM dans un fichier XML.
+     * @param xmlFilename Nom du fichier XML Ã© crÃ©er.
+     * @param codage Codage Ã© utiliser.
+     */
+    public void writeXml(String xmlFilename, String codage) {
+        try {
+            XMLOutputter outputter = new XMLOutputter();
+            FileOutputStream output = new FileOutputStream(xmlFilename);
+            outputter.getFormat().setEncoding(codage);
+            outputter.output(doc, output);
+            output.close();
+        } catch (IOException ex) {
+            ex.printStackTrace();
+            EcritureLog.ecrire("Le fichier XML n'a pas pu Ã©tre crÃ©Ã©.","err");
+        }
+    }
+
+    /**
+     * Renvoie un document Ã© partir d'un fichier XML.
+     * @param xmlFilename Nom du fichier XML.
+     */
+    public void readXml(String xmlFilename) throws XMLException {
+        SAXBuilder builder = new SAXBuilder();
+        try {
+        	FileInputStream fic = new FileInputStream(xmlFilename);
+            doc = builder.build(fic);
+            fic.close();
+        } catch (Exception e) {
+            throw new XMLException(e);
+        }
+    }
+
+    /**
+     * CrÃ©e un Ã©lÃ©ment JDOM.
+     * @param name Nom de l'Ã©lÃ©ment.
+     * @return ElÃ©ment crÃ©Ã©.
+     */
+    public Element createElement(String name) {
+        return new Element(name);
+    }
+
+    /**
+     * Met Ã© jour le document JDOM courant du builder.
+     * @param doc Nouveau document.
+     */
+    public void setDocument(Document doc) {
+        this.doc = doc;
+    }
+
+    /**
+     * Renvoie l'Ã©lÃ©ment root du document courant.
+     * @return Element root.
+     */
+    public Element getRoot() {
+        return doc.getRootElement();
+    }
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/prevalidation/PreValidation.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/prevalidation/PreValidation.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/prevalidation/PreValidation.java	(revision 482)
@@ -0,0 +1,224 @@
+/*
+ * Created on 16 Janvier. 2006
+ */
+
+package integration.prevalidation;
+
+import integration.hibernate.Capteur;
+import integration.hibernate.Parametre;
+import integration.lecture_ecriture.EcritureLog;
+import integration.lecture_ecriture.LectureCapteurs;
+import integration.lecture_ecriture.LectureParametres;
+import integration.lecture_ecriture.LectureUnites;
+import integration.vues.ParametreModele;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+
+import java.util.ArrayList;
+
+/**
+ * @author
+ * 
+ * Classe permettant de Prevalider un ensemble de fichier d'un jeu donnÃ©
+ */
+
+public class PreValidation {
+
+//	private String jeu;
+
+	protected File fichier;
+	protected ArrayList<String> entete;
+	protected ArrayList<String> mesures;
+	protected int nbParams;
+	protected ArrayList<ParametreModele> infoParams;
+	protected ArrayList<String> infoSup;
+	
+	public PreValidation(File fichier) {
+		this.fichier = fichier;
+		entete = new ArrayList<String>();
+		mesures = new ArrayList<String>();
+	}
+
+	public void prevalider(LectureParametres lectureParametres, LectureUnites lectureUnites, LectureCapteurs lectureCapteurs
+			, ArrayList<Parametre> parametres, ArrayList<Capteur> capteurs, String nomJeu) {
+		// Fichier constituÃ© d'un entÃ©te de type METEO
+		if ((nomJeu.equals("METEO-SIRTA") || nomJeu.equals("weather SIRTA")) && fichier.getName().endsWith(".txt")) {
+			PreValidationMETEOFILE prevalidationMETEOFILE = new PreValidationMETEOFILE(fichier);
+			prevalidationMETEOFILE.lireFichier(lectureParametres,lectureUnites,lectureCapteurs,parametres,capteurs);
+			this.setEntete(prevalidationMETEOFILE.getEntete());
+			this.setMesures(prevalidationMETEOFILE.getMesures());
+			this.setNbParams(prevalidationMETEOFILE.getNbParams());
+			this.setInfoParams(prevalidationMETEOFILE.getInfoParams());
+			prevalidationMETEOFILE = null;
+		}
+		// Fichier constituÃ© d'un entÃ©te NASA AMES
+		else if (fichier.getName().endsWith(".na") || fichier.getName().endsWith(".txt") || fichier.getName().endsWith(".ames") || fichier.getName().endsWith(".nas") || fichier.getName().endsWith(".ict")) {
+			int formatFichierNASAAMES = 0;
+			try {
+				BufferedReader buf = new BufferedReader(new FileReader(fichier));
+				String ligne = buf.readLine();
+				if (ligne != null) {
+					formatFichierNASAAMES = Integer.parseInt(ligne.substring(ligne.indexOf(" ")+1).trim());
+				}
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+			if (formatFichierNASAAMES == 1001) {
+				PreValidationNASAAMES1001 preValidationNASAAMES1001 = new PreValidationNASAAMES1001(fichier);
+				preValidationNASAAMES1001.lireFichier(lectureParametres,lectureUnites,lectureCapteurs,parametres,capteurs);
+				this.setEntete(preValidationNASAAMES1001.getEntete());
+				this.setMesures(preValidationNASAAMES1001.getMesures());
+				this.setNbParams(preValidationNASAAMES1001.getNbParams());
+				this.setInfoParams(preValidationNASAAMES1001.getInfoParams());
+				preValidationNASAAMES1001 = null;
+			}
+		}
+		else {
+			EcritureLog.ecrire("\nErreur sur l'extension du fichier : Les extensions valides sont na, ames, txt, ict ou nas","err");
+		}
+	}
+
+	public ArrayList<String> getEntete() {
+		return entete;
+	}
+
+	public void setEntete(ArrayList<String> entete) {
+		this.entete = entete;
+	}
+
+	public ArrayList<String> getMesures() {
+		return mesures;
+	}
+
+	public void setMesures(ArrayList<String> mesures) {
+		this.mesures = mesures;
+	}
+
+	public File getFichier() {
+		return fichier;
+	}
+
+	public void setFichier(File fichier) {
+		this.fichier = fichier;
+	}
+
+	public void vider() {
+		fichier = null;
+		mesures = null;
+		entete = null;
+		infoParams = null;
+	}
+	
+	public int getNbParams() {
+		return nbParams;
+	}
+
+	public void setNbParams(int nbParams) {
+		this.nbParams = nbParams;
+	}
+
+	public ArrayList<ParametreModele> getInfoParams() {
+		return infoParams;
+	}
+
+	public void setInfoParams(ArrayList<ParametreModele> infoParams) {
+		this.infoParams = infoParams;
+	}
+	
+	/**
+	 *  On retrouve les indices de capteurs correspondant aux noms de capteurs
+	 *  apparaissant dans le fichier de donnÃ©es
+	 */
+	protected ArrayList<Integer> findIndicesCaptInFile(LectureCapteurs lectureCapteurs, ArrayList<Capteur> capteurs) {
+		ArrayList<Integer> numsCapt = new ArrayList<Integer>();
+		Capteur capt;
+		String nomFromFile, modele, numserie, fabriquant, type;
+		int captTrouve;
+		for (int numCapt = 0; numCapt < lectureCapteurs.getTypesCapt().size(); numCapt++) {
+			nomFromFile = lectureCapteurs.getNomsCaptFromFile().get(numCapt);
+			captTrouve = -1;
+			for (String ligne: infoSup) {
+				if (captTrouve == -1 && ligne.indexOf(nomFromFile) != -1) {
+					// On a trouvÃ© un nom de capteur dans le fichier qui correspond au capteur numCapt de la liste des capteurs
+					modele = lectureCapteurs.getModelesCapt().get(numCapt);
+					numserie = lectureCapteurs.getNumsSeriesCapt().get(numCapt);
+					fabriquant = lectureCapteurs.getFabriquantsCapt().get(numCapt);
+					type = lectureCapteurs.getTypesCapt().get(numCapt);
+					for (int numC = 0; numC < capteurs.size(); numC++) {
+						capt = capteurs.get(numC);
+						if ((type.equals("") || capt.getTypeCapteur().getTypeCapteurNom().equals(type))
+								&& (fabriquant.equals("") || capt.getFabriquant().getFabriquantNom().equals(fabriquant))
+								&& (modele.equals("") || capt.getCapteurModele().equals(modele))
+								&& (numserie.equals("") || capt.getCapteurNumserie().equals(numserie))) {
+							// On a fait le lien entre le capteur numCapt de la liste XLS et le capteur numC de la liste d'objets
+							captTrouve = numC;
+//							numsCapt.add(new Integer(numC));
+							break;
+						}
+					}
+				}
+			}
+			if (captTrouve != -1) numsCapt.add(new Integer(captTrouve));
+		}
+		return numsCapt;
+	}
+	
+	/**
+	 * A partir du nom d'unitÃ©, va chercher dans le tableau des unitÃ©s et rÃ©cupÃ©re le type et le code de l'unitÃ©
+	 */
+	protected String[] findUnite(String nomUnite, LectureUnites lectureUnites) {
+		String code, nom, type = null;
+		String[] res = new String[2];
+		for (int indiceUnite = 0; indiceUnite < lectureUnites.getCodesUni().size(); indiceUnite++) {
+			code = lectureUnites.getCodesUni().get(indiceUnite);
+			nom = lectureUnites.getNomsUni().get(indiceUnite);
+			if (code.trim().equals(nomUnite) || nom.trim().equals(nomUnite)) {
+				type = lectureUnites.getTypesUni().get(indiceUnite);
+				res[0] = code;
+				res[1] = type;
+				break;
+			}
+		}
+		return res;
+	}
+	
+
+	/**
+	 * A partir du nom de paramÃ©tre du fichier, va chercher dans le tableau des paramÃ©tres, rÃ©cupÃ©re le code du paramÃ©tre
+	 * puis renvoie l'indice Ã© lequel est situÃ© le paramÃ©tre correspondant dans la liste des paramÃ©tres du jeu
+	 */
+	protected int findIndiceParam(String nomParam, LectureParametres lectureParametres, ArrayList<Parametre> parametres) {
+		if (parametres.size() == 1) return 0;
+		String nomInFile, code;
+		for (int indiceP = 0; indiceP < lectureParametres.getNomsParam().size(); indiceP++) {
+			nomInFile = lectureParametres.getNomsParamFromFile().get(indiceP);
+			if (nomInFile.trim().equals(nomParam)) {
+				code = lectureParametres.getCodesMegapoliParam().get(indiceP);
+				for (int numP = 0; numP < parametres.size(); numP++) {
+					if (parametres.get(numP).getParametreCode().equals(code)) return numP;
+				}
+			}
+		}
+		return -1;
+	}
+	
+	/**
+	 * Retrouve l'indice du capteur correspondant au code de paramÃ©tre donnÃ©
+	 */
+	protected int findIndiceCapt(String codeParam, ArrayList<Integer> indicesCapteur, ArrayList<Capteur> capteurs) {
+		if (capteurs.size() == 1) return 0;
+		Capteur capt;
+		for (Integer indice: indicesCapteur) {
+			capt = capteurs.get(indice.intValue());
+			for (Parametre param : capt.getParametres()) {
+				if (param.getParametreCode().equals(codeParam)) {
+					return indice.intValue();
+				}
+			}
+		}
+		return -1;
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/prevalidation/PreValidationMETEOFILE.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/prevalidation/PreValidationMETEOFILE.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/prevalidation/PreValidationMETEOFILE.java	(revision 482)
@@ -0,0 +1,147 @@
+package integration.prevalidation;
+
+import integration.hibernate.Capteur;
+import integration.hibernate.Parametre;
+import integration.lecture_ecriture.EcritureLog;
+import integration.lecture_ecriture.LectureCapteurs;
+import integration.lecture_ecriture.LectureParametres;
+import integration.lecture_ecriture.LectureUnites;
+import integration.utils.Constantes;
+import integration.utils.DateTime;
+import integration.vues.ParametreModele;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.Date;
+
+/**
+ * PrÃ©validation d'un jeu ayant des donnÃ©es de type METEO
+ *
+ */
+public class PreValidationMETEOFILE extends PreValidation {
+
+	public PreValidationMETEOFILE(File fichier) {
+		super(fichier);
+	}
+
+	/**
+	 * MÃ©thode de prÃ©validation permmettent de distinguer l'entÃ©te et les donnÃ©es d'un fichier METEO
+	 * NB: La premiÃ©re ligne ne commenÃ©ant pas par # indique la ligne Ã© laquelle commence la sÃ©rie de donnÃ©es
+	 * @return 
+	 */
+
+	public void lireFichier(LectureParametres lectureParametres, LectureUnites lectureUnites, LectureCapteurs lectureCapteurs
+			, ArrayList<Parametre> parametres, ArrayList<Capteur> capteurs) {
+
+		try {
+			//**************************************************************************************
+			// On rÃ©cupÃ©re le contenu du fichier pour le lire.
+			//****************************************************************************************
+			FileInputStream fis = new FileInputStream(fichier);
+			InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
+			BufferedReader buf = new BufferedReader(isr);
+			// Lecture du fichier ligne aprÃ©s ligne
+			String ligne = buf.readLine();
+			while (ligne != null) {
+				if (!ligne.startsWith("#")) {
+					mesures.add(ligne);					 
+				} else {
+					entete.add(ligne);
+				}
+				ligne = buf.readLine();
+			}
+			// RÃ©cupÃ©ration des informations de l'entÃ©te
+			// Dates de dÃ©but et de fin
+			int nbLignesMesures = mesures.size();
+			Date dateDeb = DateTime.stringToDate(mesures.get(0).substring(0,10).trim(), "yyyy MM dd");
+			Date dateFin = DateTime.stringToDate(mesures.get(nbLignesMesures-1).substring(0,10).trim(), "yyyy MM dd");
+//			System.out.println("deb="+dateDeb+", fin="+dateFin);
+			// Infos supplÃ©mentaires (pour trouver les capteurs)
+			infoSup = new ArrayList<String>();
+			infoSup.add(entete.get(1));
+			// On recherche les capteurs apparaissant dans les infos supplÃ©mentaires du fichier
+			ArrayList<Integer> indicesCaptInFile = findIndicesCaptInFile(lectureCapteurs,capteurs);
+			// Infos sur les paramÃ©tres et la valeur absente
+			infoParams = new ArrayList<ParametreModele>();
+			ParametreModele infoParam;
+			int nbLignesEntete = entete.size();
+			int diff;
+			String ligneEntete, nombre1, nombre2, valAbs = null;
+			ArrayList<String> lignesParam = new ArrayList<String>();
+			for(int numL=0; numL < nbLignesEntete;numL++){
+				ligneEntete = entete.get(numL).trim();
+				// Recherche des lignes de description des paramÃ©tres
+				if(ligneEntete.toLowerCase().startsWith("# col.")){
+					if (ligneEntete.indexOf("->") == -1) {
+						lignesParam.add(ligneEntete);
+						nbParams++;
+					} else {
+						nombre1 = ligneEntete.substring(ligneEntete.indexOf("ol.")+3,ligneEntete.indexOf("->")).trim();
+						nombre2 = ligneEntete.substring(ligneEntete.indexOf("->")+2, ligneEntete.indexOf(":")).trim();
+						diff = Integer.parseInt(nombre2)-Integer.parseInt(nombre1)+1;
+						nbParams += diff;
+						for (int i = 0; i < diff; i++) {
+							lignesParam.add("# col. x : none (no unit)");
+						}
+					}
+				}
+				// Recherche de la ligne oÃ© est indiquÃ©e la valeur absente
+				else if (ligneEntete.indexOf("corresponds to missed data") != -1){
+					valAbs = ligneEntete.substring(ligneEntete.indexOf("\"")+1, ligneEntete.lastIndexOf("\""));
+				}
+			}
+			String nomParam, nomUnite, codeParam;
+			String[] unite;
+			int indiceParam, indiceCapt;
+			for (int numParam = 0; numParam < nbParams; numParam++) {
+				infoParam = new ParametreModele();
+				nomParam = lignesParam.get(numParam);
+				nomUnite = nomParam.substring(nomParam.indexOf("(")+1,nomParam.indexOf(")")).trim();
+				nomParam = nomParam.substring(nomParam.indexOf(":")+1,nomParam.indexOf("(")).trim();
+				infoParam.setNom(nomParam);
+				infoParam.setValAbsente(valAbs);
+				infoParam.setCoef("1");
+				unite = findUnite(nomUnite, lectureUnites);
+				infoParam.setNomUnite(unite[0]);
+				infoParam.setType(unite[1]);
+				if (nomParam.toLowerCase().equals(Constantes.nomParametreLatitude) || nomParam.toLowerCase().equals(Constantes.nomParametreLongitude)
+						|| nomParam.toLowerCase().equals(Constantes.nomParametreAltitude) || nomParam.toLowerCase().equals("height")) {
+					infoParam.setFonction(Constantes.nomFonctionInsererLoc);
+				} else if (nomParam.startsWith("none") || nomParam.startsWith("Altitude") || nomParam.startsWith("QF")
+						|| nomParam.startsWith("Quality")) {
+					infoParam.setFonction(Constantes.nomFonctionNone);
+				} else if (nomParam.startsWith("Year") || nomParam.startsWith("Month") || nomParam.startsWith("Day") 
+						|| nomParam.startsWith("Hour") || nomParam.startsWith("Minute") || nomParam.startsWith("Second")) {
+					infoParam.setDateDeb(dateDeb);
+					infoParam.setDateFin(dateFin);
+					infoParam.setDateSince(null);
+					infoParam.setFonction(Constantes.nomFonctionDate);
+					infoParam.setFormat(nomUnite);
+					infoParam.setType(nomParam);
+				} else {
+					infoParam.setFonction(Constantes.nomFonctionInsererVal);
+					// Nom des paramÃ©tres correspondant aux variables primaires
+					indiceParam = findIndiceParam(nomParam,lectureParametres,parametres);
+					infoParam.setIndiceParam(indiceParam);
+					if (indiceParam == -1) {
+						codeParam = "???";
+						EcritureLog.ecrire("\nErreur : le paramÃ©tre '"+nomParam+"' n'a pas Ã©tÃ© trouvÃ©","err");
+					} else {
+						codeParam = parametres.get(indiceParam).getParametreCode();
+						infoParam.setDelta(parametres.get(indiceParam).getDelta());
+						infoParam.setLod(parametres.get(indiceParam).getLod());
+					}
+					indiceCapt = findIndiceCapt(codeParam,indicesCaptInFile,capteurs);
+					infoParam.setIndiceCapt(indiceCapt);
+				}
+//				EcritureLog.ecrire("param="+infoParam.getNom()+", format="+infoParam.getFormat()+", fct="+infoParam.getFonction()+", type="+infoParam.getType()+", unite="+infoParam.getNomUnite(), "out");
+				infoParams.add(infoParam);
+			}
+		} catch (IOException e) {
+			System.out.println(e.getMessage()+ "\nErreur dans la lecture du fichier "+ fichier.getName() + " !");
+		}
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/prevalidation/PreValidationNASAAMES1001.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/prevalidation/PreValidationNASAAMES1001.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/prevalidation/PreValidationNASAAMES1001.java	(revision 482)
@@ -0,0 +1,201 @@
+/**
+ * Created on 16 Jan. 2007
+ * @author 
+ */
+
+package integration.prevalidation;
+
+import integration.hibernate.Capteur;
+import integration.hibernate.Parametre;
+import integration.lecture_ecriture.EcritureLog;
+import integration.lecture_ecriture.LectureCapteurs;
+import integration.lecture_ecriture.LectureParametres;
+import integration.lecture_ecriture.LectureUnites;
+import integration.utils.Constantes;
+import integration.utils.DateTime;
+import integration.vues.ParametreModele;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.Date;
+
+/**
+ * PrÃ©validation d'un jeu ayant des donnÃ©es de type NASA-AMES 1001
+ *
+ */
+
+public class PreValidationNASAAMES1001 extends PreValidation {
+
+	public PreValidationNASAAMES1001(File fichier) {
+		super(fichier);
+	}
+
+	/**
+	 * MÃ©thode de prÃ©validation permmettent de distinguer l'entÃ©te et les donnÃ©es d'un fichier NASA-AMES 1001
+	 * NB: Le 1er nombre indiquÃ© sur la 1Ã©re ligne indique la ligne Ã© laquelle commence la sÃ©rie de donnÃ©es
+	 * @return 
+	 */
+	
+	public void lireFichier(LectureParametres lectureParametres, LectureUnites lectureUnites, LectureCapteurs lectureCapteurs
+			, ArrayList<Parametre> parametres, ArrayList<Capteur> capteurs) {
+		try {
+			//**************************************************************************************
+			// On rÃ©cupÃ©re le contenu du fichier pour le lire.
+			//****************************************************************************************
+			FileInputStream fis = new FileInputStream(fichier);
+			InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
+			BufferedReader buf = new BufferedReader(isr);//new FileReader(fichier));
+			boolean isEntete = true;
+			// Lecture du fichier ligne aprÃ©s ligne
+			String ligne = buf.readLine();
+			int nbLignesEntete = 0;
+			if (ligne != null) {
+				nbLignesEntete = Integer.parseInt(ligne.substring(0,ligne.indexOf(" ")));
+			}
+			while (ligne != null) {
+				if (isEntete == false) {
+					mesures.add(ligne);
+				} else {
+					entete.add(ligne);
+				}
+				// Si le dÃ©compte des lignes d'entÃ©te est terminÃ©, on arrive aux lignes de donnÃ©es
+				if (nbLignesEntete == 1) {
+					isEntete = false;
+				}
+				ligne = buf.readLine();
+				nbLignesEntete--;
+			}
+			// RÃ©cupÃ©ration des informations de l'entÃ©te
+			// Dates de dÃ©but et de fin
+			String dates = entete.get(6).trim();
+			Date dateDeb = DateTime.stringToDate(dates.substring(0,10).trim(), "yyyy MM dd");
+			Date dateFin = DateTime.stringToDate(dates.substring(dates.length()-10).trim(), "yyyy MM dd");
+			//System.out.println("dates="+dates+", deb="+dateDeb+", fin="+dateFin);
+			// Nom du paramÃ©tre de la 1Ã©re colonne (variable temporelle)
+			String nomParamInd = entete.get(8).trim();
+			String unitInd = nomParamInd.substring(nomParamInd.indexOf("(")+1,nomParamInd.indexOf(")")).trim();
+			// Date Ã© partir de laquelle dÃ©marre la variable temporelle
+			Date dateSince = null;
+			String typeTime, formatTime;
+			if (nomParamInd.indexOf("since ") != -1) {
+				String dateSinceStr = unitInd.substring(unitInd.indexOf("since ")+6).trim();
+				dateSinceStr = dateSinceStr.replaceAll("\\+", "GMT\\+");
+				dateSince = DateTime.stringToDate(dateSinceStr,Constantes.formatDateDefault);
+				if (unitInd.toLowerCase().startsWith("hours")) {
+					typeTime = "HoursSince";
+				} else if (unitInd.toLowerCase().startsWith("seconds")) {
+					typeTime = "SecondsSince";
+				} else if (unitInd.toLowerCase().startsWith("year")) {
+					typeTime = "YearsSince";
+				} else {
+					typeTime = "DaysSince";
+				}
+				formatTime = null;
+			} else {
+				formatTime = unitInd;
+				if (nomParamInd.startsWith("Year")) {
+					typeTime = "Year";
+				} else {
+					typeTime = "Date";
+				}				
+			}
+			// Nb de colonnes de donnÃ©es = nb de variables primaires + 1 (variable temporelle)
+			nbParams = Integer.parseInt(entete.get(9).trim()) + 1;
+			// Coefficients
+			String[] coefficients = entete.get(10).trim().split(" ");
+			ArrayList<String> coefs = new ArrayList<String>();
+			for (String co : coefficients) {
+				if (!co.equals("")) coefs.add(co.trim());
+			}
+			// Valeurs absentes
+			String[] valAbsentes = entete.get(11).trim().split(" ");
+			ArrayList<String> valAbs = new ArrayList<String>();
+			for (String va : valAbsentes) {
+				if (!va.equals("")) valAbs.add(va.trim());
+			}
+			// Infos supplÃ©mentaires (pour trouver les capteurs)
+			infoSup = new ArrayList<String>();
+			infoSup.add(entete.get(3));
+			int nbLignesSup = Integer.parseInt(entete.get(11+nbParams).trim());
+			for (int numSup = 0; numSup < nbLignesSup; numSup++) {
+				infoSup.add(entete.get(12+nbParams+numSup));
+			}
+			// On recherche les capteurs apparaissant dans les infos supplÃ©mentaires du fichier
+			ArrayList<Integer> indicesCaptInFile = findIndicesCaptInFile(lectureCapteurs,capteurs);
+			// Infos sur les paramÃ©tres
+			infoParams = new ArrayList<ParametreModele>();
+			ParametreModele infoParam = new ParametreModele();
+			infoParam.setNom(nomParamInd);
+			infoParam.setDateDeb(dateDeb);
+			infoParam.setDateFin(dateFin);
+			infoParam.setDateSince(dateSince);
+			infoParam.setFonction(Constantes.nomFonctionDate);
+			infoParam.setType(typeTime);
+			infoParam.setFormat(formatTime);
+			infoParams.add(infoParam);
+			String nomParam, nomUnite, codeParam;
+			String[] unite;
+			int indiceParam, indiceCapt;
+			for (int numParam = 0; numParam < nbParams - 1; numParam++) {
+				infoParam = new ParametreModele();
+				nomParam = entete.get(12+numParam).trim();
+				nomUnite = nomParam.substring(nomParam.indexOf("(")+1,nomParam.indexOf(")")).trim();
+				nomParam = nomParam.substring(0,nomParam.indexOf("(")).trim();
+				infoParam.setNom(nomParam);
+				infoParam.setValAbsente(valAbs.get(numParam));
+				infoParam.setCoef(coefs.get(numParam));
+				unite = findUnite(nomUnite, lectureUnites);
+				infoParam.setNomUnite(unite[0]);
+				infoParam.setType(unite[1]);
+				if (nomParam.toLowerCase().equals(Constantes.nomParametreLatitude) || nomParam.toLowerCase().equals(Constantes.nomParametreLongitude)
+						|| nomParam.toLowerCase().equals(Constantes.nomParametreAltitude) || nomParam.toLowerCase().equals(Constantes.nomParametreHauteurSol)) {
+					infoParam.setFonction(Constantes.nomFonctionInsererLoc);
+				} else if (nomParam.startsWith("time") || nomParam.startsWith("end_time") || nomParam.startsWith("event_marker")
+						|| nomParam.startsWith("number of DMA") || nomParam.startsWith("numflag") || nomParam.startsWith("platform")) {
+					infoParam.setFonction(Constantes.nomFonctionNone);
+				} else if (nomParam.startsWith("Month") || nomParam.startsWith("Day") 
+						|| nomParam.startsWith("Hour") || nomParam.startsWith("Minute") || nomParam.startsWith("Second")) {
+					infoParam.setDateDeb(dateDeb);
+					infoParam.setDateFin(dateFin);
+					infoParam.setDateSince(dateSince);
+					infoParam.setFonction(Constantes.nomFonctionDate);
+					infoParam.setFormat(nomUnite);
+					infoParam.setType(nomParam);
+				} else {
+					infoParam.setFonction(Constantes.nomFonctionInsererVal);
+					// Nom des paramÃ©tres correspondant aux variables primaires
+					indiceParam = findIndiceParam(nomParam,lectureParametres,parametres);
+					infoParam.setIndiceParam(indiceParam);
+					if (indiceParam == -1) {
+						codeParam = "???";
+						EcritureLog.ecrire("\nErreur : le paramÃ©tre '"+nomParam+"' n'a pas Ã©tÃ© trouvÃ©","err");
+					} else {
+						codeParam = parametres.get(indiceParam).getParametreCode();
+						infoParam.setDelta(parametres.get(indiceParam).getDelta());
+						infoParam.setLod(parametres.get(indiceParam).getLod());
+					}
+					indiceCapt = findIndiceCapt(codeParam,indicesCaptInFile,capteurs);
+					infoParam.setIndiceCapt(indiceCapt);
+				}
+				infoParams.add(infoParam);
+			}
+//			System.out.println("\n\ndate="+DateTime.dateToString(dateDeb,"dd/MM/yyyy")+" to "+DateTime.dateToString(dateFin,"dd/MM/yyyy")+" since "+DateTime.dateToString(dateSince,"dd/MM/yyyy HH:mm:ss")+"\n");
+//			System.out.println("\n\nligne entete 1="+entete.get(0));
+//			System.out.println("ligne entete 2="+entete.get(1));
+//			System.out.println("ligne entete 3="+entete.get(2));
+//			System.out.println("ligne entete avder="+entete.get(entete.size()-2));
+//			System.out.println("ligne entete der="+entete.get(entete.size()-1));
+//			System.out.println("\nligne data 1="+mesures.get(0));
+//			System.out.println("ligne data 2="+mesures.get(1));
+//			System.out.println("ligne data 3="+mesures.get(2));
+//			System.out.println("ligne data avder="+mesures.get(mesures.size()-2));
+//			System.out.println("ligne data der="+mesures.get(mesures.size()-1)+"\n");
+		} catch (IOException e) {
+			System.out.println(e.getMessage()+ "\nErreur dans la lecture du fichier "+ fichier.getName() + " !");
+		}
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/principal/Principal.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/principal/Principal.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/principal/Principal.java	(revision 482)
@@ -0,0 +1,398 @@
+package integration.principal;
+import integration.hibernate.Capteur;
+import integration.hibernate.Fichier;
+import integration.hibernate.Jeu;
+import integration.hibernate.Localisation;
+import integration.hibernate.Mesure;
+import integration.hibernate.Parametre;
+import integration.hibernate.Personne;
+import integration.hibernate.Plateforme;
+import integration.hibernate.Valeur;
+import integration.insertion.Insertion;
+import integration.lecture_ecriture.EcritureLog;
+import integration.lecture_ecriture.LectureCapteurs;
+import integration.lecture_ecriture.LectureModeleXML;
+import integration.lecture_ecriture.LectureOrganismes;
+import integration.lecture_ecriture.LectureParametres;
+import integration.lecture_ecriture.LecturePersonnes;
+import integration.lecture_ecriture.LecturePlateformes;
+import integration.lecture_ecriture.LectureUnites;
+import integration.prevalidation.PreValidation;
+import integration.repartition.Repartition;
+import integration.utils.Chrono;
+import integration.utils.CommunicationBD;
+import integration.utils.Constantes;
+import integration.utils.DateTime;
+import integration.utils.Nombre;
+import integration.utils.Statiques;
+import integration.validation.Validation;
+import integration.vues.MesureModele;
+import integration.vues.ParametreModele;
+import integration.vues.PlateformeModele;
+import integration.vues.ValeurModele;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Properties;
+
+/**
+ * Created on 24 Jan. 2007
+ * 
+ */
+
+/**
+ * 
+ * @author
+ * 
+ * *******************************************************************************************************************
+ *	Classe permettant de prevalider, valider, rÃ©partir et inserer un ensemble de fichier d'un jeu donnÃ©. 			 *
+ * *******************************************************************************************************************
+ */
+
+public class Principal {
+	public static void main(String[] args) {
+		// Argument 0 : LE NOM DE LA CATEGORIE
+		String nomCategorie = args[0];
+		// Argument 1 : LE NOM DU JEU
+		String nomJeu = args[1];
+		// Argument 2 : LE NUMERO DE VERSION
+		String numVersion = args[2];
+		
+		/**
+		 * Lancement du chronomÃ©tre
+		 */
+		Chrono chrono = new Chrono();
+		chrono.start();
+		// Attribution des constantes
+//		String fichierProp = new File("megapoli.properties").getAbsolutePath();
+		String emplacementProp = Principal.class.getResource("").getPath();
+		emplacementProp = emplacementProp.substring(0, emplacementProp.lastIndexOf("/"))+"/../../../";
+		String fichierProp = emplacementProp+"megapoli.properties";
+		Properties prop = new Properties();
+		try {
+			prop.load (new FileInputStream(fichierProp));
+		} catch (FileNotFoundException e) {
+			e.printStackTrace();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		Constantes.cheminFichierSortie = prop.getProperty("data.output");
+		Constantes.cheminDonnees = prop.getProperty("data.upload");
+		Constantes.cheminListes = prop.getProperty("data.metadata");
+		Constantes.cheminModeles = prop.getProperty("data.model");
+		Constantes.cheminDonneesSortie = prop.getProperty("data.download");
+		// Fichier de log
+		EcritureLog.init(nomJeu, nomCategorie);
+		// ***********************************************
+		// ************ On recherche les fichiers du jeu *
+		// ***********************************************
+		String cheminJeu = Constantes.cheminDonnees + "/" + nomCategorie + "/" + nomJeu + "/";
+		String cheminJeuSortie = Constantes.cheminDonneesSortie + "/" + nomCategorie + "/" + nomJeu + "/";
+		//	On rÃ©cupÃ©re tous les fichiers du rÃ©pertoire
+		File fileCourant = new File(cheminJeu);
+		// CrÃ©ation du rÃ©pertoire de sortie
+		File fileDest = new File(cheminJeuSortie);
+		if (!fileDest.exists()) fileDest.mkdir();
+		String[] listeFics = fileCourant.list();
+		ArrayList<String> listeFichiers = new ArrayList<String>();
+		// On enlÃ©ve de la liste les fichiers inutiles
+		for (String fic:listeFics) {
+			if (!fic.endsWith(".xml") && !fic.endsWith(".svn")) {
+				listeFichiers.add(fic);
+			}
+		}
+		//	S'il y a au moins un fichier dans le jeu
+		if (listeFichiers.size() != 0) {
+			Chrono chronoMeta = new Chrono();
+			chronoMeta.start();
+			//	Trier les fichiers par ordre alphabÃ©tique
+			Collections.sort(listeFichiers);
+			//	Etape 1 : On lit le modÃ©le XML du jeu
+			LectureModeleXML lectureModeleXML = new LectureModeleXML(nomCategorie, nomJeu);
+			lectureModeleXML.lireModele();
+			//	Etape 2 : On lit les listes EXCEL de capteurs, paramÃ©tres, plateformes, ...
+			LectureUnites lectureUnites = new LectureUnites();
+			lectureUnites.lireFichier();
+			LectureParametres lectureParametres = new LectureParametres();
+			lectureParametres.lireFichier();
+			LectureCapteurs lectureCapteurs = new LectureCapteurs();
+			lectureCapteurs.lireFichier();
+			LecturePlateformes lecturePlateformes = new LecturePlateformes();
+			lecturePlateformes.lireFichier();
+			LectureOrganismes lectureOrganismes = new LectureOrganismes();
+			lectureOrganismes.lireFichier();
+			LecturePersonnes lecturePersonnes = new LecturePersonnes();
+			lecturePersonnes.lireFichier();
+//			ArrayList<String> codesUnite = lectureUnites.getCodesUni();
+			
+			//	Etape 3 : RÃ©partition des mÃ©tadonnÃ©es du jeu
+			Repartition repartition = new Repartition(lectureModeleXML, lectureCapteurs,
+					lecturePlateformes, lectureParametres, lecturePersonnes, lectureUnites, lectureOrganismes);
+			ArrayList<Personne> personnes = repartition.repartirPersonnes();
+			Jeu jeu = repartition.repartirJeu(personnes,numVersion);
+			Statiques.plateformesModele = new ArrayList<PlateformeModele>();
+			ArrayList<Parametre> parametres = repartition.repartirParametres();
+			ArrayList<Capteur> capteurs = repartition.repartirCapteurs(parametres);
+			ArrayList<Plateforme> plateformes = repartition.repartirPlateformes(jeu.getOrganisme().getAdresse().getAdressePays(),capteurs,parametres);
+
+			//	Etape 4 : Insertion des mÃ©tadonnÃ©es du jeu
+			Insertion insertion = new Insertion();
+			try {
+				synchronized (Principal.class) {
+				//	Insertion des personnes (PI, contact, intÃ©grateur)
+				insertion.insererPersonne(jeu.getPersonneByIntegrateurId());
+				insertion.insererPersonne(jeu.getPersonneByContactId());
+				// on teste si le pi n est pas null : on l'insere
+				if (jeu.getPersonneByPiId() != null)
+					insertion.insererPersonne(jeu.getPersonneByPiId());
+				//	Insertion du jeu
+				insertion.insererJeu(jeu);
+				// Insertion des parametres
+				for (Parametre parametre: parametres)
+					insertion.insererParametre(parametre);
+				//	Insertion des capteurs
+				for (Capteur capteur: capteurs)
+					insertion.insererCapteur(capteur, parametres);
+				//	Insertion des plateformes
+				for (Plateforme plateforme: plateformes)
+					insertion.insererPlateforme(plateforme,capteurs,parametres);
+				//	On ouvre la connexion
+				CommunicationBD.open();
+				//	Mise Ã© jour des liaisons capteurs/jeu
+				insertion.mettreAJourRequeteCaptJeu(jeu, capteurs);
+//				EcritureLog.ecrire(" 1 Liaisons entre : jeu/capteurs -> OK", "out");
+				//	Mise Ã© jour des liaisons parametres/jeu
+				insertion.mettreAJourRequeteParamJeu(jeu, parametres);
+//				EcritureLog.ecrire(" 2 Liaisons entre : jeu/parametres -> OK", "out");
+				//	Mise Ã© jour des liaisons plateformes/jeu
+				insertion.mettreAJourRequetePlatJeu(jeu, plateformes);
+//				EcritureLog.ecrire(" 3 Liaisons entre : jeu/plateformes -> OK", "out");
+				//	Mise Ã© jour des liaisons paramÃ©tres/capteurs
+				insertion.mettreAJourRequeteParamCapt(capteurs, parametres);
+//				EcritureLog.ecrire(" 4 Liaisons entre : capteurs/parametres -> OK", "out");
+				//	Mise Ã© jour des liaisons capteurs/plateformes et paramÃ©tres/plateformes
+				insertion.mettreAJourRequeteCaptPlatParam(plateformes, capteurs, parametres);
+//				EcritureLog.ecrire(" 5 Liaisons entre : plateformes/capteurs et plateformes/paramÃ©tres -> OK", "out");
+				//	Insertion de la table bilan
+				insertion.insererBilan(jeu, plateformes, capteurs, parametres);
+//				EcritureLog.ecrire(" 6 Insertion : bilan -> Ok", "out");
+				//	On ferme la connexion
+				CommunicationBD.close();
+				chronoMeta.stop();
+				chronoMeta.afficheChrono("METADONNEES");
+		
+				// Etape 5 : Traitement des fichiers de donnÃ©es
+				/*****************************************************************************************************
+				* On parcourt les fichiers du jeu																	 *
+				******************************************************************************************************
+				*/
+				//	Initialisations
+//				String numSeqPrecedent = null;
+				//	Bilan bilan = null;
+//				int flagLocId;
+//				int flagValidId;
+//				ArrayList<ParametreModele> parametresModele = lectureModeleXML.getParametres();
+//				ArrayList<ParametreModele> parametresValeur = lectureModeleXML.getParametresValeur();
+//				Statiques.sequencesModeles = new ArrayList<SequenceModele>();
+				//	Initialialisation des :  altitude,latitude, longitude et hauteur sol.
+				//	On convertit une altitude, latitude, longitude ou hauteur sol de Double vers Integer.
+				//	altitude du jeu
+				Statiques.altMaxJeu = Nombre.altDoubleToInt(Double.valueOf(Constantes.altitudeMoinsInf));
+				Statiques.altMinJeu = Nombre.altDoubleToInt(Double.valueOf(Constantes.altitudePlusInf));
+				//	latitude du jeu
+				Statiques.latMaxJeu = Nombre.latDoubleToInt(Double.valueOf(Constantes.latitudeMoinsInf));
+				Statiques.latMinJeu = Nombre.latDoubleToInt(Double.valueOf(Constantes.latitudePlusInf));
+				//	longitude du jeu
+				Statiques.lonMaxJeu = Nombre.latDoubleToInt(Double.valueOf(Constantes.longitudeMoinsInf));
+				Statiques.lonMinJeu = Nombre.latDoubleToInt(Double.valueOf(Constantes.longitudePlusInf));
+				//	hauteur sol du jeu
+				Statiques.hsMaxJeu =  Nombre.altDoubleToInt(Double.valueOf(Constantes.hsMoinsInf));
+				Statiques.hsMinJeu = Nombre.altDoubleToInt(Double.valueOf(Constantes.hsPlusInf));
+				// Dates
+				Statiques.dateMinJeu = DateTime.stringToDate(Constantes.datePlusInf,Constantes.formatDateJJMMAAAAHHMMSS);
+				Statiques.dateMaxJeu = DateTime.stringToDate(Constantes.dateMoinsInf,Constantes.formatDateJJMMAAAAHHMMSS);
+//				int indiceNiv = -1;
+//				int nbNiv;
+//				int indiceParam;
+//				int cptNiv, cptParam;
+				ArrayList<ArrayList<String>> listeDonnees;
+				PreValidation preValidation;
+				Validation validation;
+				String cheminFichier, cheminFichierSortie;
+				Chrono chronoFichier;
+				Fichier fichier;
+				MesureModele mesureModele;
+				Mesure mesure;
+				ArrayList<Localisation> listeLocs = new ArrayList<Localisation>();
+				ArrayList<ParametreModele> paramsMesure, paramsValeur;
+				ParametreModele parametreModele;
+				Parametre parametre;
+				Capteur capteur;
+				ArrayList<ValeurModele> valeursMesure;
+				ValeurModele valeurModele;
+				Valeur valeur;
+				int nbMesures = 0, nbValeurs = 0, nbErreurs = 0, numFichier = 0;
+				int nbFichiers = listeFichiers.size();// - 1; // On enlÃ©ve le fichier de mÃ©tadonnÃ©es xml
+				// Pour chaque fichier de donnÃ©es...
+				for (int numFic = 0; numFic < nbFichiers; numFic++) {
+					cheminFichier = cheminJeu + listeFichiers.get(numFic);
+					fileCourant = new File(cheminFichier);
+					//	Si le fichier existe et n'est pas vide
+					if (fileCourant.exists() && !cheminFichier.endsWith("metadata.xml") && !cheminFichier.endsWith(".svn")) {
+						numFichier++;
+						chronoFichier = new Chrono();
+						chronoFichier.start();
+						EcritureLog.ecrire("\n- ["+numFichier+"/"+nbFichiers+"] Fichier " + fileCourant.getName(), "out-ln");
+						//	Etape 6 : prÃ©validation : On prÃ©valide le fichier
+						preValidation = new PreValidation(fileCourant);
+						preValidation.prevalider(lectureParametres, lectureUnites, lectureCapteurs, parametres, capteurs, nomJeu);
+						EcritureLog.ecrire(" -> PrÃ©validation OK", "out-ln");
+						//	Etape 7 : validation : On valide le fichier
+						validation = new Validation(preValidation);
+						listeDonnees = validation.valider(lectureModeleXML, fileCourant.getName());
+						preValidation.vider();
+						validation.vider();
+//						indiceNiv = validation.getIndiceNiv();
+						int nbErreursValidation = validation.getNbErreursTotales();
+						nbErreurs += nbErreursValidation;
+						if (nbErreursValidation == 0) {
+							EcritureLog.ecrire(" -> Validation OK", "out-ln");
+							//	Etape 8 : rÃ©partition du fichier
+							fichier = repartition.repartirFichier(jeu,fileCourant);
+							//	On ouvre la connexion
+							CommunicationBD.open();
+							// Etape 9 : insertion du fichier
+							insertion.insererFichier(fichier);
+							nbMesures += listeDonnees.size();
+//							for(int numMesure = 0; numMesure < listeDonnees.size(); numMesure++) {
+//							int nbMes = 0;
+							paramsMesure = validation.getListeParams();
+							//	Pour chaque mesure...
+							for(ArrayList<String> donneesMesure: listeDonnees) {
+//								nbMes++;
+//								flagLocId = insertion.getFlagLocId();
+								//	Etape 10 : Rangement des donnÃ©es sur la ligne et rÃ©partition des sÃ©quences
+								mesureModele = repartition.repartirDonnees(donneesMesure, paramsMesure);//,numSeqPrecedent,parametresModele,indiceNiv);
+								paramsValeur = mesureModele.getParamsValeur();
+//								numSeqPrecedent = mesureModele.getNumSequence();
+								//	Etape 11 : repartition de la mesure
+								mesure = repartition.repartirMesure(mesureModele, fichier, plateformes);
+//								System.out.println("mes="+nbMes+", date="+mesure.getMesureDate());
+								//	Si le fichier n'existe pas encore, on insÃ©re les mesures et les valeurs
+//								if (!insertion.isFichierExiste()) {
+								//	Etape 12 : Insertion de la mesure
+								insertion.insererMesure(mesure,listeLocs);//,flagLocId);
+								valeursMesure = mesureModele.getValeursMesure();
+								//	nbValeurs += valeursMesure.size();
+//								nbNiv = valeursMesure.size() / parametres.size();
+//								cptNiv = 0;
+//								cptParam = 0;
+								//	Pour chaque valeur...
+								for(int numValeur = 0; numValeur < valeursMesure.size() ; numValeur++){
+									valeurModele = valeursMesure.get(numValeur);
+									// On rÃ©cupÃ©re les infos du paramÃ©tre associÃ© Ã© la valeur
+									parametreModele = paramsValeur.get(numValeur);
+									parametre = parametres.get(parametreModele.getIndiceParam());
+									capteur = capteurs.get(parametreModele.getIndiceCapt());
+//									flagValidId = insertion.getFlagValidId();
+									//	Si pas subdivision
+//									if (indiceNiv == -1) {
+//										indiceParam = numValeur;										
+//									}
+									//	Si subdivision
+//									else {
+//										cptNiv++;
+										//	Cas oÃ© on arrive Ã© la derniÃ©re donnÃ©e du paramÃ©tre courant
+//										if (cptNiv > nbNiv) {
+//											cptParam++;
+//											cptNiv = 1;
+//										}
+//										indiceParam = cptParam;
+//									}
+									//	Etape 13 : repartition de la valeur
+									valeur = repartition.repartirValeur(mesure,valeurModele,parametreModele,parametre,capteur);
+									
+									//,mesureModele.getFlagValidite(),capteurs,parametres.get(indiceParam).getUnite().getUniteCode(),parametresValeur.get(indiceParam),codesUnite);
+									//	Etape 14 : insertion de la valeur
+									if (valeur != null) {
+										insertion.insererValeur(valeur);//,flagValidId);
+										nbValeurs++;
+									}
+								}
+//							}
+							}
+							//	On ferme la connexion
+							CommunicationBD.close();
+							EcritureLog.ecrire(" -> Insertion OK", "out-ln");
+							// Le fichier est validÃ© et ses donnÃ©es sont insÃ©rÃ©es: on dÃ©place le fichier dans le rÃ©pertoire "download"
+							cheminFichierSortie = cheminJeuSortie + listeFichiers.get(numFic);
+							fileDest = new File(cheminFichierSortie);
+							if (!fileDest.exists()) {
+								fileCourant.renameTo(fileDest);
+							}
+						}
+						chronoFichier.stop();
+						chronoFichier.afficheChrono(" -> FICHIER");
+					} else if (!cheminFichier.endsWith("metadata.xml") && !cheminFichier.endsWith(".svn")){
+						EcritureLog.ecrire("- Fichier " + fileCourant.getName()+ " non trouvÃ© !", "err");
+					}
+				}
+				if (nbErreurs != 0) {
+					EcritureLog.ecrire("\n-> Il y a au total "+nbErreurs+" erreur(s) dans les fichiers du jeu "+nomJeu+"\n","err");
+				}
+				Chrono chronoFin = new Chrono();
+				chronoFin.start();
+				//	Etape 15 : rÃ©partition de la derniÃ©re sÃ©quence
+//				repartition.repartirDerniereSequence();
+				//	Etape 16 : rÃ©partition et insertion des sÃ©quences
+//				SequenceModele sequenceModele;
+//				Sequence sequence;
+				//	On ouvre la connexion
+				CommunicationBD.open();				
+//				for(int numSeq = 0; numSeq < Statiques.sequencesModeles.size(); numSeq++){
+//					sequenceModele = Statiques.sequencesModeles.get(numSeq);
+//					sequence = repartition.repartirSequence(jeu, sequenceModele);					
+//					insertion.insererSequence(sequence);
+					//	Insertion.insererSequence(sequence, numSeq);
+					// 	Mettre Ã© jour les mesures
+					//	Mise Ã© jour des mesures appartenant Ã© la sÃ©quence
+//					 insertion.mettreAjourMesure(sequence);
+//				}
+//				EcritureLog.ecrire(" 0 Mesure : mise Ã© jour -> Ok", "out");
+//				EcritureLog.ecrire("SÃ©quences mises Ã© jour", "out");
+				//	Mise Ã© jour du jeu
+				insertion.mettreAjourJeu(jeu);
+//				EcritureLog.ecrire("Jeu mis Ã© jour : jeu -> OK", "out");
+				//	Mise Ã© jour des infos sur la quantitÃ© de donnÃ©es insÃ©rÃ©e
+				insertion.mettreAJourRequeteNbValsJeu(jeu,nbFichiers,nbMesures, nbValeurs);
+//				EcritureLog.ecrire("Liaisons entre : jeu/nbFichiers/nbMesures/nbValeurs -> OK", "out");
+				//	Mise Ã© jour de la liaison entre les plateformes et les localisations.
+//				insertion.mettreAJourRequetePlatLoc(plateformes,jeu);
+//				EcritureLog.ecrire(" 9 Liaisons localisations/plateformes -> OK", "out");
+//				CommunicationBD.close();
+//				CommunicationBD.open();
+				//	Mise Ã© jour du bilan
+				insertion.mettreAJourBilan(jeu);
+//				EcritureLog.ecrire("Bilan mis Ã© jour", "out");
+				//	On ferme la connexion
+				CommunicationBD.close();
+//				EcritureLog.ecrire(" -----> Insertion du jeu terminÃ©e", "out");
+				//	Fin du chrono
+				chronoFin.stop();
+				chronoFin.afficheChrono("FINALISATION");
+				}// Fin synchronized
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		} else {
+			EcritureLog.ecrire("Pas de fichiers Ã© valider dans le jeu "+ nomJeu, "err");
+		}
+		/** ArrÃ©t du chronomÃ©tre */
+		chrono.stop();
+		chrono.afficheChrono("TOTAL");
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/principal/Test.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/principal/Test.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/principal/Test.java	(revision 482)
@@ -0,0 +1,1755 @@
+//TODO
+package integration.principal;
+import integration.lecture_ecriture.EcritureLog;
+import integration.lecture_ecriture.LectureCapteurs;
+import integration.lecture_ecriture.LectureModeleXML;
+import integration.lecture_ecriture.LectureOrganismes;
+import integration.lecture_ecriture.LectureParametres;
+import integration.lecture_ecriture.LecturePersonnes;
+import integration.lecture_ecriture.LecturePlateformes;
+import integration.lecture_ecriture.LectureUnites;
+import integration.prevalidation.PreValidation;
+import integration.repartition.Repartition;
+import integration.utils.Chrono;
+import integration.utils.Constantes;
+import integration.utils.DateTime;
+import integration.utils.Nombre;
+import integration.utils.Statiques;
+import integration.validation.Validation;
+import integration.vues.MesureModele;
+import integration.vues.ParametreModele;
+import integration.vues.PlateformeModele;
+import integration.vues.SequenceModele;
+import integration.vues.ValeurModele;
+import integration.insertion.*;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+
+/**
+ * Created on 24 Jan. 2007
+ * 
+ */
+
+/**
+ * 
+ * @author
+ * 
+ * *******************************************************************************************************************
+ * Classe permettant de prevalider, valider, rÃ©partir et inserer un ensemble de fichier d'un jeu donnÃ©. 			 *
+ * *******************************************************************************************************************
+ */
+
+public class Test {
+
+
+	public static void main(String[] args) {
+		// Argument 0 : LE NOM DE LA CATEGORIE
+		String nomCategorie = args[0];
+		// Argument 1 : LE NOM DU JEU
+		String nomJeu = args[1];
+
+		/**
+		 * Lancement du chronomÃ©tre
+		 * 
+		*/ 
+		
+		Chrono chrono = new Chrono();
+		Chrono chronoFichier;
+		Chrono chronoMeta;
+		Chrono chronoFin;
+		chrono.start();
+		// Fichier de log
+		EcritureLog.init(nomJeu, nomCategorie);
+		// ************ On recherche les fichiers du jeu
+		// ************************
+		String cheminJeu = Constantes.cheminDonnees + nomCategorie + "/" + nomJeu
+				+ "/";
+		String cheminFichier;
+		PreValidation preValidation;
+		Validation validation;
+		ArrayList<String> listeMesures = null;
+		ArrayList<ArrayList<String>> listeDonnees = null;
+		int nbErreursValidation;
+//		Fichier fichier;
+		MesureModele mesureModele;
+//		ValeurModele valeurModele = null;
+//		Valeur valeur = null;
+		ArrayList<ValeurModele> valeursMesure = null;
+		ArrayList<String> donneesMesure = null;
+//		Mesure mesure = null;
+//		String numSeqPrecedent = null;
+		//Bilan bilan = null;
+//		int flagLocId;
+		//int flagValId;
+//		int flagValidId;
+		// On rÃ©cupÃ©re tous les fichiers du rÃ©pertoire
+		File fileCourant = new File(cheminJeu);
+		String[] listeFichiers = fileCourant.list();
+		// S'il y a au moins un fichier dans le jeu
+		if (listeFichiers.length != 0) {
+			chronoMeta = new Chrono();
+			chronoMeta.start();
+			// Trier les fichiers par ordre alphabÃ©tique
+			Arrays.sort(listeFichiers);
+			// Etape 3 : On lit le modÃ©le XML du jeu
+			LectureModeleXML lectureModeleXML = new LectureModeleXML(nomCategorie,nomJeu);
+			lectureModeleXML.lireModele();
+			ArrayList<ParametreModele> parametresModele = lectureModeleXML.getParametres();
+//			ArrayList<ParametreModele> parametresValeur = lectureModeleXML.getParametresValeur();
+			// Etape 4 : On lit les listes EXCEL de capteurs, paramÃ©tres, plateformes, ...
+			LectureCapteurs lectureCapteurs = new LectureCapteurs();
+			lectureCapteurs.lireFichier();
+			LecturePlateformes lecturePlateformes = new LecturePlateformes();
+			lecturePlateformes.lireFichier();
+			LectureParametres lectureParametres = new LectureParametres();
+			lectureParametres.lireFichier();
+			LecturePersonnes lecturePersonnes = new LecturePersonnes();
+			lecturePersonnes.lireFichier();
+			LectureUnites lectureUnites = new LectureUnites();
+			lectureUnites.lireFichier();
+//			ArrayList<String> codesUnite = lectureUnites.getCodesUni();
+			LectureOrganismes lectureOrganismes = new LectureOrganismes();
+			lectureOrganismes.lireFichier();			
+			// Etape 5 : RÃ©partition des mÃ©tadonnÃ©es du jeu
+			Statiques.plateformesModele = new ArrayList<PlateformeModele>();
+			Repartition repartition = new Repartition(lectureModeleXML, lectureCapteurs, lecturePlateformes, lectureParametres, lecturePersonnes, lectureUnites,lectureOrganismes);
+//			ArrayList<Personne> personnes = repartition.repartirPersonnes();
+//			Jeu jeu = repartition.repartirJeu(personnes);
+//			ArrayList<Parametre> parametres = repartition.repartirParametres(jeu);
+//			ArrayList<Capteur> capteurs = repartition.repartirCapteurs(parametres);
+//			ArrayList<Plateforme> plateformes = repartition.repartirPlateformes();
+			// Etape 10 : Insertion des mÃ©tadonnÃ©es du jeu
+			/**---
+			 * 
+			 * */
+//			--------
+			Insertion insertion = new Insertion();
+			try {
+				synchronized (Principal.class) {
+//					
+//				// On ouvre la connexion
+//					//------------
+					//--------
+//					CommunicationBD.open();
+//				//System.out.println("---ouvert----");
+//				// insertion du jeu
+//				//------
+//				////--------
+//					insertion.insererJeu(jeu);
+//				//System.out.println("----"+jeu);
+//				// Insertion des parametres
+//				
+//				/**--*/
+//				/*
+//				 * 
+//				 */
+//					Parametre parametre ;
+/**				for(int numParam = 0; numParam < parametres.size(); numParam++){
+					parametre = parametres.get(numParam);
+//					//--------
+					insertion.insererParametre(parametre);
+//					System.out.println("par="+parametre.getParametreNom());
+				}*/
+//				
+//				// Insertion des capteurs
+//			Capteur capteur = null;
+/**				for(int numCapt = 0; numCapt < capteurs.size(); numCapt++){
+					capteur = capteurs.get(numCapt);
+					//--------
+					insertion.insererCapteur(capteur,parametres);
+//	
+//					
+				}*/
+//				
+//				// Insertion des plateformes
+//				/**
+//				 * 
+//				 */
+/**				Plateforme plateforme = null;
+				for(int numPlat = 0; numPlat < plateformes.size(); numPlat++){
+					plateforme = plateformes.get(numPlat);
+//					
+					////--------
+					insertion.insererPlateforme(plateforme,capteurs);
+//					
+//					//--System.out.println("PLAT="+plateforme.getPlateformeNom());
+				}/**/
+//				// On ferme la connexion
+//				////--------
+//				CommunicationBD.close();
+				
+				chronoMeta.stop();
+				chronoMeta.afficheChrono("METADONNEES");
+				
+//				/*****************************************************************************************************
+//				* On parcourt les fichiers du jeu																	 *
+//				******************************************************************************************************
+//				*/
+//				// Initialisations
+				/*****************************/
+				
+				Statiques.sequencesModeles = new ArrayList<SequenceModele>();
+
+				Statiques.dateMinJeu = DateTime.stringToDate(Constantes.datePlusInf,Constantes.formatDateJJMMAAAAHHMMSS);
+				Statiques.dateMaxJeu = DateTime.stringToDate(Constantes.dateMoinsInf,Constantes.formatDateJJMMAAAAHHMMSS);
+				// Initialialisation des :  altitude,latitude, longitude et hauteur sol. 
+				// On onvertit une altitude, latitude, longitude ou hauteur sol de Double vers Integer.
+				// altitude du jeu
+				Statiques.altMaxJeu = Nombre.altDoubleToInt(Double.valueOf(Constantes.altitudeMoinsInf));
+				Statiques.altMinJeu = Nombre.altDoubleToInt(Double.valueOf(Constantes.altitudePlusInf));
+				// latitude du jeu
+				Statiques.latMaxJeu = Nombre.latDoubleToInt(Double.valueOf(Constantes.latitudeMoinsInf));
+				Statiques.latMinJeu = Nombre.latDoubleToInt(Double.valueOf(Constantes.latitudePlusInf));
+				// longitude du jeu
+				Statiques.lonMaxJeu = Nombre.latDoubleToInt(Double.valueOf(Constantes.longitudeMoinsInf));
+				Statiques.lonMinJeu = Nombre.latDoubleToInt(Double.valueOf(Constantes.longitudePlusInf));
+				// hauteur sol du jeu
+				Statiques.hsMaxJeu =  Nombre.altDoubleToInt(Double.valueOf(Constantes.hsMoinsInf));
+				Statiques.hsMinJeu = Nombre.altDoubleToInt(Double.valueOf(Constantes.hsPlusInf));
+		
+				int nbFichiers = 0;
+//				int nbMesures = 0;
+//				int nbValeurs = 0;
+				int indiceNiv = -1;
+//				int nbNiv;
+//				int indiceParam = 0;
+//				int cptNiv, cptParam;
+				nbFichiers = listeFichiers.length;
+				for (int numFic = 0; numFic < nbFichiers; numFic++) {
+					chronoFichier = new Chrono();
+					chronoFichier.start();
+					cheminFichier = cheminJeu + listeFichiers[numFic];
+					fileCourant = new File(cheminFichier);
+					// Si le fichier existe et n'est pas vide
+					if (fileCourant.exists()) {
+						EcritureLog.ecrire("Fichier " + fileCourant.getName(), "out-ln");
+						// Etape 1 : prÃ©validation : On prÃ©valide le fichier
+						preValidation = new PreValidation(fileCourant);
+						preValidation.prevalider(null,null,null,null,null,nomJeu);
+						viderPrevalidation(preValidation, fileCourant);
+						EcritureLog.ecrire("  -> PrÃ©validation OK", "out-ln");
+						//System.out.println("\n");
+						//for(int numListM = /*listeMesures.size()-2*/0; numListM < /*listeMesures.size()*/2; numListM++){
+							//System.out.println(listeMesures.get(numListM));
+						//}
+						// Etape 2 : validation : On valide le fichier
+
+						
+						//-----------traitement de la validation 
+						validation = new Validation(preValidation);
+							listeDonnees = validation.valider(lectureModeleXML,fileCourant.getName());
+							indiceNiv = validation.getIndiceNiv();
+							nbErreursValidation = validation
+									.getNbErreursTotales();
+							viderValidation(validation, listeMesures);
+							if (nbErreursValidation == 0) {
+								EcritureLog.ecrire("  -> Validation OK",
+										"out-ln");
+								System.out.println("\n");
+							}
+
+							
+							  /**ArrayList<String> donnees; for(int numListD = 0;
+							  *numListD < listeDonnees.size(); numListD++){ donnees =
+							  *listeDonnees.get(numListD); for(int numDonnee =
+							  *0; numDonnee < /*donnees.size()*///37; numDonnee++){
+							  /*System.out.print(" *** "+donnees.get(numDonnee)); }
+							  *System.out.println(); }*/
+							 
+							// traitement de la repartion
+							// Etape 5 : rÃ©partition du fichier
+//							fichier = repartition.repartirFichier(jeu,fileCourant);
+							//System.out.println("***********"+fileCourant);
+							// On ouvre la connexion
+							////--------
+//							CommunicationBD.open();
+							// Etape 10 : insertion du fichier
+							//--------
+//							insertion.insererFichier(fichier);
+//
+							// Pour chaque mesure...
+							// /***
+//							nbMesures += listeDonnees.size();
+							for (int numMesure = 0; numMesure < 2/*listeDonnees
+									.size()*/; numMesure++) {
+//								////--------
+//								//flagLocId = insertion.getFlagLocId();
+								donneesMesure = listeDonnees.get(numMesure);
+								
+								// Etape 6 : Rangement des donnÃ©es sur la ligne
+								// et rÃ©partition des sÃ©quences
+								//mesureModele = repartition.repartirDonnees(donneesMesure, numSeqPrecedent,parametresModele, indiceNiv);
+								//
+								//numSeqPrecedent = mesureModele.getNumSequence();
+								//mesureModele = repartition.repartirDonnees(donneesMesure, numSeqPrecedent, parametresModele, indiceNiv);
+								mesureModele = repartition.repartirDonnees(donneesMesure,parametresModele);
+//								numSeqPrecedent = mesureModele.getNumSequence();
+								// Etape 7 : repartition de la mesure
+//								mesure = repartition.repartirMesure(mesureModele, fichier, plateformes);
+//System.out.println("mesure="+DateTime.dateToString(mesure.getMesureDate(),Constantes.formatDateJJMMAAAAHHMMSS));
+//System.out.println("mesure pos="+Nombre.altIntToFloat(mesure.getLocalisation().getLocalisationAlt()));
+								// Si le fichier n'existe pas encore, on insÃ©re
+								// les mesures et les valeurs
+								// --
+								if (!insertion.isFichierExiste()) {
+								// Etape 11 : Insertion de la mesure
+								////--------
+								//
+								//insertion.insererMesure(mesure, flagLocId);
+								valeursMesure = mesureModele.getValeursMesure();
+								// Pour chaque valeur...
+//								nbValeurs += valeursMesure.size();
+//								nbNiv = valeursMesure.size() / parametres.size();
+//								cptNiv = 0;
+//								cptParam = 0;
+								for (int numValeur = 0; numValeur < valeursMesure.size(); numValeur++) {
+//									////--------
+//									//flagValId = insertion.getFlagValId();
+//								//	flagValidId = insertion.getFlagValidId();
+//									valeurModele = valeursMesure.get(numValeur);
+									// Si pas subdivision
+									if (indiceNiv == -1) {
+//										indiceParam = numValeur;										
+									}
+//									}
+//									// Si subdivision
+									else {
+//										cptNiv++;
+									}
+//										// Cas oÃ© on arrive Ã© la derniÃ©re donnÃ©e du paramÃ©tre courant
+//										if (cptNiv > nbNiv) {
+//											cptParam++;
+//											cptNiv = 1;
+//										}
+//										indiceParam = cptParam;
+									}
+									// Etape 9 : repartition de la valeur
+//									valeur = repartition.repartirValeur(mesure,mesureModele.getFlagValidite(),
+//										valeurModele, capteurs, parametres.get(indiceParam), parametres.get(indiceParam).getUnite()
+//											.getUniteCode(),parametresValeur.get(indiceParam),codesUnite);
+									// Etape 12 : insertion de la valeur
+									////--------
+									//System.out.println("------00-------");
+									//insertion.insererValeur(valeur, /*flagValId*/flagValidId);
+									//System.out.println("-------------");
+								}
+							}
+						}
+
+						// On ferme la connexion
+						////--------
+							//**
+					//		CommunicationBD.close();
+
+//						EcritureLog.ecrire("  -> RÃ©partition-Insertion OK","out");
+					} // ---*/
+					/** ---viderRepartition(listeDonnees);-- */
+//
+//					else { EcritureLog.ecrire("Fichier " +
+//					  fileCourant.getName()+ " non trouvÃ© !", "err");
+//					}
+//					 
+//					
+//					  chronoFichier.stop(); chronoFichier.afficheChrono(" -> FICHIER");
+//					 
+//					 }
+					chronoFin = new Chrono();
+					chronoFin.start();
+					// Etape 8 : rÃ©partition de la derniÃ©re sÃ©quence
+					////--------
+//					repartition.repartirDerniereSequence();
+					// Etape 13 : rÃ©partition et insertion des sÃ©quences
+//					SequenceModele sequenceModele;
+//					Sequence sequence;
+
+					// On ouvre la connexion
+					// ---
+	//				CommunicationBD.open();
+					for (int numSeq = 0; numSeq < Statiques.sequencesModeles
+							.size(); numSeq++) {
+//						sequenceModele = Statiques.sequencesModeles.get(numSeq);
+		//				sequence = repartition.repartirSequence(jeu,sequenceModele);
+						////--------
+		//				insertion.insererSequence(sequence);
+						// insertion.insererSequence(sequence, numSeq);
+						// Mettre Ã© jour les mesures
+						// Mise Ã© jour des mesures appartenant Ã© la sÃ©quence
+						// ---
+			//			insertion.mettreAjourMesure(sequence);
+
+					}
+					/**
+					 * ---EcritureLog.ecrire(" 0 Mesure : mise Ã© jour -> Ok",
+					 * "out"); EcritureLog.ecrire("SÃ©quences mises Ã© jour",
+					 * "out"); // Mettre Ã© jour le jeu
+					 * insertion.mettreAjourJeu(jeu); EcritureLog.ecrire(" 1 Jeu
+					 * mis Ã© jour : jeu -> OK", "out"); // Mettre Ã© jour les
+					 * tables requetes capteurs du jeu
+					 * insertion.mettreAJourRequeteCapteurJeu(jeu, capteurs);
+					 * EcritureLog.ecrire(" 2 Liaisons entre : jeu/capteurs ->
+					 * OK", "out"); // Mettre Ã© jour les les tables requetes des
+					 * parametres du jeu
+					 * insertion.mettreAJourRequeteParametreJeu(jeu,
+					 * parametres); EcritureLog.ecrire(" 3 Liaisons entre :
+					 * jeu/parametres -> OK", "out"); // Mettre Ã© jour les les
+					 * tables requetes des plateformes du jeu
+					 * insertion.mettreAJourRequetePlateformeJeu(jeu,
+					 * plateformes); EcritureLog.ecrire(" 4 Liaisons entre :
+					 * jeu/plateformes -> OK", "out"); // Mettre Ã© jour les les
+					 * tables requetes nbvals
+					 * insertion.mettreAJourRequeteNbValsJeu(jeu,nbFichiers,nbMesures,
+					 * nbValeurs); EcritureLog.ecrire(" 5 Liaisons entre :
+					 * jeu/nbFichiers/nbMesures/nbValeurs -> OK", "out"); //
+					 * Mettre Ã© jour les tables requetes des parametres des
+					 * plateformes
+					 * insertion.mettreAJourRequeteParametreCapteur(capteurs,
+					 * parametres); EcritureLog.ecrire(" 6 Liaisons entre :
+					 * capteurs/parametres -> OK", "out"); // Mettre Ã© jour les
+					 * tables requetes des plateformes des capteurs
+					 * insertion.mettreAJourRequeteCapteurPlateforme(plateformes,
+					 * capteurs); EcritureLog.ecrire(" 7 Liaisons entre :
+					 * plateformes/capteurs -> OK", "out"); // Mettre Ã© jour de
+					 * la liaison entre les plateformes et les parametres.
+					 * insertion.mettreAJourRequeteParametrePlateforme(plateformes,parametres);
+					 * EcritureLog.ecrire(" 8 Liaisons entre :
+					 * plateformes/paramÃ©tres -> OK", "out"); // Mise Ã© jour de
+					 * la liaison entre les plateformes et les localisations.
+					 * insertion.mettreAJourRequeteLocalisationsPlateforme(plateformes);
+					 * EcritureLog.ecrire(" 9 Liaisons localisations/plateformes ->
+					 * OK", "out"); CommunicationBD.close();
+					 * CommunicationBD.open(); // Insertion de la table bilan
+					 * insertion.insererBilan(jeu, plateformes, capteurs,
+					 * parametres); EcritureLog.ecrire(" 10 Insertion : bilan ->
+					 * Ok", "out"); // Mettre Ã© jour de la liaison entre le
+					 * bilan. insertion.mettreAJourBilan(jeu);
+					 * EcritureLog.ecrire(" 11 Bilan mis Ã© jour", "out"); // On
+					 * ferme la connexion CommunicationBD.close();
+					 * EcritureLog.ecrire(" 12 Insertion du jeu terminÃ©e",
+					 * "out");---
+					 */
+					// Fin du chrono
+					chronoFin.stop();
+					System.out.println("\n");
+					chronoFin.afficheChrono("FINAL");
+
+					/**************************** */
+
+				}
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+
+		} else {
+			//EcritureLog.ecrire("Pas de fichiers Ã© valider dans le jeu "+ Constantes.nomJeuAMDAR, "err");
+			EcritureLog.ecrire("Pas de fichiers Ã© valider dans le jeu ", "err");
+		}
+		/**
+		 * ArrÃ©t du chronomÃ©tre
+		 * 
+		 */
+		chrono.stop();
+		chrono.afficheChrono("TOTAL");
+	}
+	
+	/**
+	 * LibÃ©rer la mÃ©moire aprÃ©s la repartition d'un fichier donnÃ©.
+	 *
+	 */
+	/**---private static void viderRepartition(ArrayList<ArrayList<String>> listeDonnees) {
+		listeDonnees = null;
+	}*/
+
+	/**
+	 * LibÃ©rer la mÃ©moire aprÃ©s la validation d'un fichier donnÃ©.
+	 * 
+	 */
+	private static void viderValidation(Validation validation,
+			ArrayList<String> listeMesures) {
+		validation = null;
+		listeMesures = null;
+	}
+	
+	/**
+	 * LibÃ©rer la mÃ©moire aprÃ©s la prÃ©validation d'un fichier donnÃ©.
+	 * 
+	 */
+	private static void viderPrevalidation(PreValidation preValidation,
+			File fichier) {
+		preValidation = null;
+		fichier = null;
+	}
+
+}
+
+/*************************************************************************************/
+///*
+// * Created on 30 Jan. 2007
+// */
+///**
+// * @author 
+// * 
+// * 
+// */
+//package integration.principal;
+//
+//import java.io.File;
+//// import java.math.BigDecimal;
+//import java.util.ArrayList;
+//import java.util.Arrays;
+//
+////import org.hibernate.type.IntegerType;
+//// import java.util.Iterator;
+//// import java.util.List;
+//
+//// import EDU.oswego.cs.dl.util.concurrent.FJTask.Seq;
+//
+//// import integration.hibernate.Adresse;
+//import integration.hibernate.Capteur;
+//// import integration.hibernate.Categorie;
+//// import integration.hibernate.Commentaire;
+//// import integration.hibernate.DeltaMesure;
+//import integration.hibernate.Fichier;
+//import integration.hibernate.Jeu;
+//// import integration.hibernate.Langue;
+//// import integration.hibernate.Localisation;
+//import integration.hibernate.Mesure;
+//import integration.hibernate.Parametre;
+//import integration.hibernate.Personne;
+//import integration.hibernate.Plateforme;
+//import integration.hibernate.Sequence;
+//import integration.hibernate.Valeur;
+//import integration.insertion.Insertion;
+//import integration.lecture_ecriture.EcritureLog;
+//import integration.lecture_ecriture.LectureCapteurs;
+//import integration.lecture_ecriture.LectureModeleXML;
+//import integration.lecture_ecriture.LectureOrganismes;
+//import integration.lecture_ecriture.LectureParametres;
+//import integration.lecture_ecriture.LecturePersonnes;
+//import integration.lecture_ecriture.LecturePlateformes;
+//import integration.lecture_ecriture.LectureUnites;
+//import integration.prevalidation.PreValidation;
+//import integration.repartition.Repartition;
+//import integration.utils.Chrono;
+//import integration.utils.CommunicationBD;
+//import integration.utils.Constantes;
+//import integration.utils.DateTime;
+//import integration.utils.Nombre;
+//// import integration.utils.DateTime;
+//// import integration.utils.Nombre;
+//import integration.utils.Statiques;
+//import integration.validation.Validation;
+//import integration.vues.MesureModele;
+//import integration.vues.ParametreModele;
+//import integration.vues.SequenceModele;
+//import integration.vues.ValeurModele;
+//
+//public class Test {
+//
+//	/**
+//	 * @param args
+//	 */
+//	// **********************************************************************************
+//	// ****************************TestCapteurs******************************************
+//	// **********************************************************************************
+//	// public static void main(String[] args) {
+//	// LectureCapteurs lectureCapteurs = new LectureCapteurs();
+//	// lectureCapteurs.lireFichier();
+//	// for (int num=0; num< Constantes.nbCapteurs; num++){
+//	// System.out.print(lectureCapteurs.getNumerosCapt().get(num));
+//	// System.out.print(" * "+lectureCapteurs.getModelesCapt().get(num));
+//	// System.out.print(" * "+lectureCapteurs.getEtalonnagesCapt().get(num));
+//	// System.out.print(" * "+lectureCapteurs.getNumsSeriesCapt().get(num));
+//	// System.out.print(" * "+lectureCapteurs.getTypesCapt().get(num));
+//	// System.out.print(" * "+lectureCapteurs.getDescriptionsCapt().get(num));
+//	// System.out.print(" * "+lectureCapteurs.getFabriquantsCapt().get(num));
+//	// System.out.print(" * ");
+//	// for (int num2=0;
+//	// num2<lectureCapteurs.getParametresCapt().get(num).size(); num2++){
+//	// System.out.print(" #
+//	// "+lectureCapteurs.getParametresCapt().get(num).get(num2));
+//	// }
+//	// System.out.println();
+//	// }
+//	//	
+//	// }
+//
+//	public static void main(String[] args) {
+//		// Argument 0 : LE NOM DE LA CATEGORIE
+//		String nomCategorie = args[0];
+//		// Argument 1 : LE NOM DU JEU
+//		String nomJeu = args[1];
+//		// ******************************Lancement du chronomÃ©tre
+//		// **********************************
+//		// Chrono chrono = new Chrono();
+//		// chrono.start();
+//		Chrono chrono = new Chrono();
+//		Chrono chronoFichier;
+//		Chrono chronoMeta;
+//		Chrono chronoFin;
+//		chrono.start();
+//		// Fichier de log
+//		EcritureLog.init(nomJeu, nomCategorie);
+//		// ************ On recherche les fichiers du jeu
+//		// ************************
+//		String cheminJeu = Constantes.cheminDonnees + nomCategorie + "/"
+//				+ nomJeu + "/";
+//		/**
+//		 * boolean fichierExiste = false; String cheminFichier; PreValidation
+//		 * preValidation; Validation validation; ArrayList<String>
+//		 * listeMesures; ArrayList<ArrayList<String>> listeDonnees = null; int
+//		 * nbErreursValidation; Fichier fichier = new Fichier(); Localisation
+//		 * localisation = new Localisation(); MesureModele mesureModele;
+//		 * ValeurModele valeurModele = null; Valeur valeur = null; ArrayList<ValeurModele>
+//		 * valeursMesure = null; ArrayList<String> donneesMesure = null; Mesure
+//		 * mesure = null; String numSeqPrecedent = null; File fileCourant = new
+//		 * File(cheminJeu); String[] listeFichiers = fileCourant.list(); int
+//		 * flagLocId; int flagValId;
+//		 */
+//		String cheminFichier;
+//		PreValidation preValidation;
+//		Validation validation;
+//		ArrayList<String> listeMesures;
+//		ArrayList<ArrayList<String>> listeDonnees = null;
+//		int nbErreursValidation;
+//		Fichier fichier;
+//		MesureModele mesureModele;
+//		ValeurModele valeurModele = null;
+//		Valeur valeur = null;
+//		ArrayList<ValeurModele> valeursMesure = null;
+//		ArrayList<String> donneesMesure = null;
+//		Mesure mesure = null;
+//		String numSeqPrecedent = null;
+//		int flagLocId;
+//		int flagValId;
+//		// On rÃ©cupÃ©re tous les fichiers du rÃ©pertoire
+//		File fileCourant = new File(cheminJeu);
+//		String[] listeFichiers = fileCourant.list();
+//		// S'il y a au moins un fichier dans le jeu
+//		if (listeFichiers.length != 0) {
+//			chronoMeta = new Chrono();
+//			chronoMeta.start();
+//			// Trier les fichiers par ordre alphabÃ©tique
+//			Arrays.sort(listeFichiers);
+//			// Etape 3 : On lit le modÃ©le XML du jeu
+//			LectureModeleXML lectureModeleXML = new LectureModeleXML(
+//					nomCategorie, nomJeu);
+//			lectureModeleXML.lireModele();
+//			ArrayList<ParametreModele> parametresModele = lectureModeleXML
+//					.getParametres();
+//			ArrayList<ParametreModele> parametresValeur = lectureModeleXML
+//					.getParametresValeur();
+//			// Etape 4 : On lit les listes EXCEL de capteurs, paramÃ©tres,
+//			// plateformes, ...
+//			LectureCapteurs lectureCapteurs = new LectureCapteurs();
+//			lectureCapteurs.lireFichier();
+//			LecturePlateformes lecturePlateformes = new LecturePlateformes();
+//			lecturePlateformes.lireFichier();
+//			LectureParametres lectureParametres = new LectureParametres();
+//			lectureParametres.lireFichier();
+//			LecturePersonnes lecturePersonnes = new LecturePersonnes();
+//			lecturePersonnes.lireFichier();
+//			LectureUnites lectureUnites = new LectureUnites();
+//			lectureUnites.lireFichier();
+//			ArrayList<String> codesUnite = lectureUnites.getCodesUni();
+//			LectureOrganismes lectureOrganismes = new LectureOrganismes();
+//			lectureOrganismes.lireFichier();
+//
+//			// Etape 5 : RÃ©partition des mÃ©tadonnÃ©es du jeu
+//			Repartition repartition = new Repartition(lectureModeleXML,
+//					lectureCapteurs, lecturePlateformes, lectureParametres,
+//					lecturePersonnes, lectureUnites, lectureOrganismes);
+//			ArrayList<Personne> personnes = repartition.repartirPersonnes();
+//			Jeu jeu = repartition.repartirJeu(personnes);
+//			ArrayList<Parametre> parametres = repartition.repartirParametres();
+//			ArrayList<Capteur> capteurs = repartition.repartirCapteurs();
+//			ArrayList<Plateforme> plateformes = repartition.repartirPlateformes();
+//					
+//
+//			// Etape 10 : Insertion des mÃ©tadonnÃ©es du jeu
+//			Insertion insertion = new Insertion();
+//			try {
+//				synchronized (Principal.class) {
+//					// On ouvre la connexion
+//					CommunicationBD.open();
+//					// On insÃ©re le jeu
+//					insertion.insererJeu(jeu);
+//					// CommunicationBD.close();
+//					// insertion des parametres
+//					// CommunicationBD.open();
+//					// insertion des parametres
+//					Parametre parametre;
+//					for (int numParam = 0; numParam < parametres.size(); numParam++) {
+//						parametre = parametres.get(numParam);
+//						insertion.insererParametre(parametre);
+//					}
+//					// insertion des capteurs
+//					Capteur capteur;
+//					for (int numCapt = 0; numCapt < capteurs.size(); numCapt++) {
+//						capteur = capteurs.get(numCapt);
+//			//			insertion.insererCapteur(capteur);
+//					}
+//					// insererPlateforme
+//					Plateforme plateforme;
+//					for (int numPlat = 0; numPlat < plateformes.size(); numPlat++) {
+//						plateforme = plateformes.get(numPlat);
+//			//			insertion.insererPlateforme(plateforme);
+//					}
+//					//On ferme la connexion
+//					CommunicationBD.close();
+//					chronoMeta.stop();
+//					System.out.println("TEST DEMARRÃ©");
+//					chronoMeta.afficheChrono("METADONNEES");
+//			
+//					// insertion fichier
+//					// **************************************************************************************************
+//					// On parcourt les fichiers du jeu
+//					// ****************************************************************************************************
+//					// Statiques.sequencesModeles = new
+//					// ArrayList<SequenceModele>();
+//					// for (int numFic = 0; numFic < 1/*listeFichiers.length*/;
+//					// numFic++) {
+//					/**
+//					 * cheminFichier = cheminJeu + listeFichiers[numFic];
+//					 * fileCourant = new File(cheminFichier); // Si le fichier
+//					 * existe et n'est pas vide if (fileCourant.exists()) {
+//					 * EcritureLog .ecrire("Fichier " + fileCourant.getName(),
+//					 * "out-ln"); // Etape 1 : prÃ©validation : On prÃ©valide le
+//					 * fichier preValidation = new PreValidation(nomJeu,
+//					 * fileCourant); listeMesures = preValidation.prevalider();
+//					 * viderPrevalidation(preValidation, fileCourant);
+//					 * EcritureLog.ecrire(" -> PrÃ©validation OK", "out-ln");
+//					 * //insertion // Etape 2 : validation : On valide le
+//					 * fichier validation = new Validation(listeMesures);
+//					 * listeDonnees = validation.valider(lectureModeleXML);
+//					 * nbErreursValidation = validation.getNbErreursTotales();
+//					 * viderValidation(validation, listeMesures); if
+//					 * (nbErreursValidation == 0) { EcritureLog.ecrire(" ->
+//					 * Validation OK", "out-ln"); // Etape 5 : rÃ©partition du
+//					 * fichier fichier =
+//					 * repartition.repartirFichier(jeu,fileCourant); //boolean
+//					 * fichierExiste = false; fichierExiste =
+//					 * insertion.insererFichier(fichier); //if (fichierExiste =
+//					 * false) { }
+//					 */
+//					// **************************************************************************************************
+//					// On parcourt les fichiers du jeu
+//					// ****************************************************************************************************
+//					// initialisations des dates.
+//					Statiques.sequencesModeles = new ArrayList<SequenceModele>();
+//					//les mettre ds constantes
+//					Statiques.dateMinJeu = DateTime.stringToDate(Constantes.datePlusInf,Constantes.formatDateJJMMAAAAHHMMSS);
+//					Statiques.dateMaxJeu = DateTime.stringToDate(Constantes.dateMoinsInf,Constantes.formatDateJJMMAAAAHHMMSS);
+//					// initialialisation des :  altitude,latitude, longitude et hauteur sol. 
+//					// On onvertit une altitude, latitude, longitude ou hauteur sol de Double vers Integer.
+//					// altitude du jeu
+//					Statiques.altMaxJeu = Nombre.latDoubleToInt(Double.valueOf(Constantes.altitudeMoinsInf));
+//					Statiques.altMinJeu = Nombre.latDoubleToInt(Double.valueOf(Constantes.altitudePlusInf));
+//					// latitude du jeu
+//					Statiques.latMaxJeu = Nombre.latDoubleToInt(Double.valueOf(Constantes.latitudeMoinsInf));
+//					Statiques.latMinJeu = Nombre.latDoubleToInt(Double.valueOf(Constantes.latitudePlusInf));
+//					// longitude du jeu
+//					Statiques.lonMaxJeu = Nombre.latDoubleToInt(Double.valueOf(Constantes.longitudeMoinsInf));
+//					Statiques.lonMinJeu = Nombre.latDoubleToInt(Double.valueOf(Constantes.longitudePlusInf));
+//					// hauteur sol du jeu
+//					Statiques.hsMaxJeu =  Nombre.latDoubleToInt(Double.valueOf(Constantes.hsMoinsInf));
+//					Statiques.hsMinJeu = Nombre.latDoubleToInt(Double.valueOf(Constantes.hsPlusInf));
+//					for (int numFic = 0; numFic < listeFichiers.length; numFic++) {
+//						chronoFichier = new Chrono();
+//						chronoFichier.start();
+//						cheminFichier = cheminJeu + listeFichiers[numFic];
+//						fileCourant = new File(cheminFichier);
+//						// Si le fichier existe et n'est pas vide
+//						if (fileCourant.exists()) {
+//							EcritureLog.ecrire("Fichier "
+//									+ fileCourant.getName(), "out-ln");
+//							// Etape 1 : prÃ©validation : On prÃ©valide le fichier
+//							preValidation = new PreValidation(nomJeu,
+//									fileCourant);
+//							listeMesures = preValidation.prevalider();
+//							viderPrevalidation(preValidation, fileCourant);
+//							EcritureLog.ecrire("  -> PrÃ©validation OK",
+//									"out-ln");
+//							// Etape 2 : validation : On valide le fichier
+//							validation = new Validation(listeMesures);
+//							listeDonnees = validation.valider(lectureModeleXML);
+//							nbErreursValidation = validation
+//									.getNbErreursTotales();
+//							viderValidation(validation, listeMesures);
+//							if (nbErreursValidation == 0) {
+//								EcritureLog.ecrire("  -> Validation OK",
+//										"out-ln");
+//								// Etape 5 : rÃ©partition du fichier
+//								fichier = repartition.repartirFichier(jeu,
+//										fileCourant);
+//								// On ouvre la connexion
+//								CommunicationBD.open();
+//								// Etape 10 : insertion du fichier
+//								insertion.insererFichier(fichier);
+//								// for (int numMesure = 0; numMesure <
+//								// listeDonnees.size(); numMesure++) {
+//								//								
+//								// donneesMesure = listeDonnees.get(numMesure);
+//								// mesureModele =
+//								// repartition.repartirDonnees(donneesMesure,
+//								// numSeqPrecedent,parametresModele);
+//								// numSeqPrecedent =
+//								// mesureModele.getNumSequence();
+//								// mesure =
+//								// repartition.repartirMesure(mesureModele,
+//								// fichier, plateformes);
+//								//								
+//								// if (!fichierExiste) {
+//								// // Insertion de la mesure
+//								// insertion.insererMesure(mesure);
+//								//								
+//								// valeursMesure =
+//								// mesureModele.getValeursMesure();
+//								// // Pour chaque valeur...
+//								// for(int numValeur = 0; numValeur <
+//								// valeursMesure.size() ; numValeur++){
+//								// valeurModele = valeursMesure.get(numValeur);
+//								// // Etape 9 : repartition de la valeur
+//								// valeur =
+//								// repartition.repartirValeur(mesure,mesureModele.getFlagValidite(),valeurModele,capteurs,parametres.get(numValeur),parametresValeur.get(numValeur),codesUnite);
+//								// // insertion de la valeur
+//								// insertion.insererValeur(valeur);
+//								//										
+//								// }
+//								// Pour chaque mesure...
+//								for (int numMesure = 0; numMesure < listeDonnees
+//										.size(); numMesure++) {
+//									flagLocId = insertion.getFlagLocId();
+//									donneesMesure = listeDonnees.get(numMesure);
+//									// Etape 6 : Rangement des donnÃ©es sur la
+//									// ligne et rÃ©partition des sÃ©quences
+//									mesureModele = repartition.repartirDonnees(
+//											donneesMesure, numSeqPrecedent,
+//											parametresModele);
+//									numSeqPrecedent = mesureModele
+//											.getNumSequence();
+//									// Etape 7 : repartition de la mesure
+//									mesure = repartition.repartirMesure(
+//											mesureModele, fichier, plateformes);
+//									// Si le fichier n'existe pas encore, on
+//									// insÃ©re les mesures et les valeurs
+//									if (!insertion.isFichierExiste()) {
+//										// Etape 11 : Insertion de la mesure
+//										insertion.insererMesure(mesure,
+//												flagLocId);
+//										valeursMesure = mesureModele
+//												.getValeursMesure();
+//										// Pour chaque valeur...
+//										for (int numValeur = 0; numValeur < valeursMesure
+//												.size(); numValeur++) {
+//											flagValId = insertion
+//													.getFlagValId();
+//											valeurModele = valeursMesure
+//													.get(numValeur);
+//											// Etape 9 : repartition de la
+//											// valeur
+//											valeur = repartition.repartirValeur(mesure,mesureModele.getFlagValidite(),
+//															valeurModele,capteurs,parametres.get(numValeur),
+//															parametres.get(numValeur).getUnite().getUniteCode(),
+//															parametresValeur.get(numValeur),codesUnite);
+//											// Etape 12 : insertion de la valeur
+//											insertion.insererValeur(valeur,flagValId);
+//										}
+//									}
+//
+//									// valeursMesure =
+//									// mesureModele.getValeursMesure();
+//									// insertion.insererLoc(localisation);
+//
+//								}
+//
+//								// On ferme la connexion
+//								CommunicationBD.close();
+//
+//								EcritureLog.ecrire(
+//										"  -> RÃ©partition-Insertion OK",
+//										"out-ln");
+//							}
+//							viderRepartition(listeDonnees);
+//						} else {
+//							EcritureLog.ecrire("Fichier "
+//									+ fileCourant.getName() + " non trouvÃ© !",
+//									"err");
+//						}
+//						chronoFichier.stop();
+//						chronoFichier.afficheChrono("  -> FICHIER");
+//					}
+//					chronoFin = new Chrono();
+//					chronoFin.start();
+//					// Etape 8 : rÃ©partition de la derniÃ©re sÃ©quence
+//					repartition.repartirDerniereSequence();
+//					// Etape 13 : rÃ©partition et insertion des sÃ©quences
+//					SequenceModele sequenceModele;
+//					Sequence sequence;
+//					// On ouvre la connexion
+//					CommunicationBD.open();
+//					//int nbMesures;
+//					for (int numSeq = 0; numSeq < Statiques.sequencesModeles
+//							.size(); numSeq++) {
+//						sequenceModele = Statiques.sequencesModeles.get(numSeq);
+//						sequence = repartition.repartirSequence(jeu,
+//								sequenceModele);
+//						 insertion.insererSequence(sequence);
+//						// Mise Ã© jour des mesures appartenant Ã© la sÃ©quence
+//						 insertion.mettreAjourMesure(sequence);
+//					}
+//					// Mettre Ã© jour le jeu
+//					insertion.mettreAjourJeu(jeu);
+//					// Mettre Ã© jour les tables requetes
+//					// insertion.mettreAjourRequete();
+//					// Mettre Ã© jour la table bilan
+//                    /**insertion.insererBilan();*/
+//					// On ferme la connexion
+//					CommunicationBD.close();
+//					chronoFin.stop();
+//					chronoFin.afficheChrono("FINAL");
+//
+//				}
+//			} catch (Exception e) {
+//				e.printStackTrace();
+//			}
+//
+//		} else {
+//			EcritureLog.ecrire("Pas de fichiers Ã© valider dans le jeu "
+//					+ Constantes.nomJeuAMDAR, "err");
+//		}
+//		// ******************************ArrÃ©t du chronomÃ©tre
+//		chrono.stop();
+//		chrono.afficheChrono("TOTAL");
+//	}
+//
+//	/**
+//	 * LibÃ©rer la mÃ©moire aprÃ©s la repartition d'un fichier donnÃ©.
+//	 * 
+//	 */
+//	private static void viderRepartition(
+//			ArrayList<ArrayList<String>> listeDonnees) {
+//		listeDonnees = null;
+//	}
+//
+//	/**
+//	 * LibÃ©rer la mÃ©moire aprÃ©s la validation d'un fichier donnÃ©.
+//	 * 
+//	 */
+//	private static void viderValidation(Validation validation,
+//			ArrayList<String> listeMesures) {
+//		validation = null;
+//		listeMesures = null;
+//	}
+//
+//	/**
+//	 * LibÃ©rer la mÃ©moire aprÃ©s la prÃ©validation d'un fichier donnÃ©.
+//	 * 
+//	 */
+//	private static void viderPrevalidation(PreValidation preValidation,
+//			File fichier) {
+//		preValidation = null;
+//		fichier = null;
+//	}
+//
+//}
+//
+///*******************************************************************************
+// * } }
+// * 
+// * //insertion sequences //repartition.repartirDerniereSequence(); //boucler
+// * pour inserer tte les sequences modÃ©les
+// *  // Sequence sequence = repartition.repartirSequence(jeu, sequenceModele); //
+// * //insertion.insererSequence(sequence); //
+// * 
+// *  // Pour chaque mesure...
+// * 
+// * //DeltaMesure deltaMesure = null; //insertion. insererDelta(deltaMesure); //
+// *  //
+// *  // On ferme la connexion CommunicationBD.close(); } } catch (Exception e) {
+// * e.printStackTrace(); } } }
+// ******************************************************************************/
+//
+///**
+// * LibÃ©rer la mÃ©moire aprÃ©s la repartition d'un fichier donnÃ©.
+// * 
+// */
+//// private static void viderRepartition(ArrayList<ArrayList<String>>
+//// listeDonnees) {
+//// listeDonnees = null;
+//// }
+///**
+// * LibÃ©rer la mÃ©moire aprÃ©s la validation d'un fichier donnÃ©.
+// * 
+// */
+//// private static void viderValidation(Validation validation,
+//// ArrayList<String> listeMesures) {
+//// validation = null;
+//// listeMesures = null;
+//// }
+///**
+// * LibÃ©rer la mÃ©moire aprÃ©s la prÃ©validation d'un fichier donnÃ©.
+// * 
+// */
+//// private static void viderPrevalidation(PreValidation preValidation,
+//// File fichier) {
+//// preValidation = null;
+//// fichier = null;
+//// }
+//// }
+//// ***********************************************//
+//// categorie
+//// try {
+//// CommunicationBD.open();
+//// List cats = CommunicationBD.getAllList(Categorie.class);
+//// Categorie cat;
+//// for (int i=0; i<cats.size(); i++) {
+//// cat = (Categorie) cats.get(i);
+//// System.out.println("cat="+cat.getCategorieNom());
+//// }
+//// CommunicationBD.close();
+//// } catch (Exception e) {
+//// TODO Auto-generated catch block
+//// e.printStackTrace();
+//// }
+//// commentaire
+//// try {
+//// CommunicationBD.open();
+//// List coms = CommunicationBD.getAllList(Commentaire.class);
+//// Commentaire com;
+//// for (int i=0; i<coms.size(); i++) {
+//// com = (Commentaire) coms.get(i);
+//// System.out.println("\ncommentaire = " + com.getCommentaireTxt());
+//// }
+//// CommunicationBD.close();
+//// } catch (Exception e) {
+//// // TODO Auto-generated catch block
+//// e.printStackTrace();
+//// }
+//// adresses
+//// try {
+//// CommunicationBD.open();
+//// List adrs = CommunicationBD.getAllList(Adresse.class);
+//// Adresse adr;
+//// for (int i=0; i<adrs.size(); i++) {
+//// adr = (Adresse) adrs.get(i);
+//// System.out.println("\nAdresseId = " + adr.getAdresseId());
+//// System.out.println("\nAdressePays= " + adr.getAdressePays());
+//// System.out.println("\nAdresseRue = " + adr.getAdresseRue());
+//// System.out.println("\nAdresseVille = " + adr.getAdresseVille());
+//// System.out.println("\nAdresseZip = " + adr.getAdresseZip());
+//// }
+//// CommunicationBD.close();
+//// } catch (Exception e) {
+//// // TODO Auto-generated catch block
+//// e.printStackTrace();
+//// }
+////		
+//// try {
+//// CommunicationBD.open();
+//// List plats = CommunicationBD.getAllList(Plateforme.class);
+//// Plateforme plat;
+//// for (int i=0; i<plats.size(); i++) {
+//// plat = (Plateforme) plats.get(i);
+//// System.out.println("\nPlateformesId = " + plat.getPlateformeNom());
+////				
+//// }
+//// CommunicationBD.close();
+//// } catch (Exception e) {
+//// // TODO Auto-generated catch block
+//// e.printStackTrace();
+//// }
+//
+//// // Argument 0 : LE NOM DE LA CATEGORIE
+//// String nomCategorie = args[0];
+//// // Argument 1 : LE NOM DU JEU
+//// String nomJeu = args[1];
+////
+//// // ******************************Lancement du chronomÃ©tre
+//// // **********************************
+//// Chrono chrono = new Chrono();
+//// chrono.start();
+//// // Fichier de log
+//// EcritureLog.init(nomJeu, nomCategorie);
+//// // ************ On recherche les fichiers du jeu
+//// // ************************
+//// String cheminJeu = Constantes.cheminDonnees + nomCategorie + "/" + nomJeu
+//// + "/";
+//// String cheminFichier;
+//// PreValidation preValidation;
+//// Validation validation;
+//// ArrayList<String> listeMesures;
+//// ArrayList<ArrayList<String>> listeDonnees = null;
+//// int nbErreursValidation;
+//// Fichier fichier;
+//// MesureModele mesureModele;
+//// ValeurModele valeurModele = null;
+//// Valeur valeur = null;
+//// ArrayList<ValeurModele> valeursMesure = null;
+//// ArrayList<String> donneesMesure = null;
+//// Mesure mesure = null;
+//// String numSeqPrecedent = null;
+////				
+//// // On rÃ©cupÃ©re tous les fichiers du rÃ©pertoire
+//// File fileCourant = new File(cheminJeu);
+//// String[] listeFichiers = fileCourant.list();
+//// // S'il y a au moins un fichier dans le jeu
+//// if (listeFichiers.length != 0) {
+//// // Trier les fichiers par ordre alphabÃ©tique
+//// Arrays.sort(listeFichiers);
+//// // Etape 3 : On lit le modÃ©le XML du jeu
+//// LectureModeleXML lectureModeleXML = new LectureModeleXML(nomCategorie,
+//// nomJeu);
+//// lectureModeleXML.lireModele();
+//// ArrayList<ParametreModele> parametresModele =
+//// lectureModeleXML.getParametres();
+//// ArrayList<ParametreModele> parametresValeur =
+//// lectureModeleXML.getParametresValeur();
+//// // Etape 4 : On lit les listes EXCEL de capteurs, paramÃ©tres, plateformes,
+//// ...
+//// LectureCapteurs lectureCapteurs = new LectureCapteurs();
+//// lectureCapteurs.lireFichier();
+//// LecturePlateformes lecturePlateformes = new LecturePlateformes();
+//// lecturePlateformes.lireFichier();
+//// LectureParametres lectureParametres = new LectureParametres();
+//// lectureParametres.lireFichier();
+//// LecturePersonnes lecturePersonnes = new LecturePersonnes();
+//// lecturePersonnes.lireFichier();
+//// LectureUnites lectureUnites = new LectureUnites();
+//// lectureUnites.lireFichier();
+//// ArrayList<String> codesUnite = lectureUnites.getCodesUni();
+//// LectureOrganismes lectureOrganismes = new LectureOrganismes();
+//// lectureOrganismes.lireFichier();
+//// // Etape 5 : RÃ©partition des mÃ©tadonnÃ©es du jeu
+//// Repartition repartition = new Repartition(lectureModeleXML, lectureCapteurs,
+//// lecturePlateformes, lectureParametres,
+//// lecturePersonnes, lectureUnites,
+//// lectureOrganismes);
+//// ArrayList<Personne> personnes = repartition.repartirPersonnes();
+//// Jeu jeu = repartition.repartirJeu(personnes);
+//// ArrayList<Parametre> parametres = repartition.repartirParametres();
+//// ArrayList<Capteur> capteurs = repartition.repartirCapteurs();
+//// ArrayList<Plateforme> plateformes = repartition.repartirPlateformes();
+//// Statiques.sequencesModeles = new ArrayList<SequenceModele>();
+////					
+//// //
+//// **************************************************************************************************
+//// // On parcourt les fichiers du jeu
+//// //
+//// ****************************************************************************************************
+//// for (int numFic = 0; numFic < 2; numFic++) {
+//// cheminFichier = cheminJeu + listeFichiers[numFic];
+//// fileCourant = new File(cheminFichier);
+//// // Si le fichier existe et n'est pas vide
+//// if (fileCourant.exists()) {
+//// EcritureLog.ecrire("Fichier " + fileCourant.getName(), "out-ln");
+//// // Etape 1 : prÃ©validation : On prÃ©valide le fichier
+//// preValidation = new PreValidation(nomJeu, fileCourant);
+//// listeMesures = preValidation.prevalider();
+//// viderPrevalidation(preValidation, fileCourant);
+//// EcritureLog.ecrire(" -> PrÃ©validation OK", "out-ln");
+////
+//// // Etape 2 : validation : On valide le fichier
+//// validation = new Validation(listeMesures);
+//// listeDonnees = validation.valider(lectureModeleXML);
+//// nbErreursValidation = validation.getNbErreursTotales();
+//// viderValidation(validation, listeMesures);
+//// if (nbErreursValidation == 0) {
+//// EcritureLog.ecrire(" -> Validation OK", "out-ln");
+////
+//// // Etape 5 : rÃ©partition du fichier
+//// fichier = repartition.repartirFichier(jeu,fileCourant);
+////								
+//// // TESTS 1
+//// // System.out.println("\nCHEMIN = " + fichier.getFichierChemin());
+//// // System.out.println("Nom = " + fichier.getFichierNom());
+//// // System.out.println("TAILLE = " + fichier.getFichierTaille()+" ko");
+//// // System.out.println("Jeu = " + fichier.getJeu().getJeuNom());
+////								
+////								
+//// // Pour chaque mesure...
+//// for(int numMesure = 0; numMesure < listeDonnees.size() ; numMesure++){
+//// donneesMesure = listeDonnees.get(numMesure);
+//// // Etape 6 : Rangement des donnÃ©es sur la ligne et rÃ©partition des sÃ©quences
+//// mesureModele =
+//// repartition.repartirDonnees(donneesMesure,numSeqPrecedent,parametresModele);
+//// numSeqPrecedent = mesureModele.getNumSequence();
+//// // Etape 7 : repartition de la mesure
+//// mesure = repartition.repartirMesure(mesureModele, fichier, plateformes);
+//////
+////									
+//// // TESTS 2
+//// //System.out.println("\n Nom Fichier = " +
+//// mesure.getFichier().getFichierNom());
+//// //System.out.println(" Date Mesure = " +
+//// DateTime.dateToString(mesure.getMesureDate(),Constantes.formatDateJJMMAAAAHHMMSS));
+//// //System.out.println(" Nom PLateForme = " +
+//// mesure.getPlateforme().getPlateformeNom());
+//// //System.out.println(" Type PLateForme = " +
+//// mesure.getPlateforme().getTypePlateforme().getTypePlateformeNom());
+//// //System.out.println("lat="+Nombre.latIntToFloat(new
+//// Integer(mesure.getLocalisation().getLocalisationLat())));
+//// //System.out.println("lon="+Nombre.latIntToFloat(new
+//// Integer(mesure.getLocalisation().getLocalisationLon())));
+//// //System.out.println("alt="+Nombre.altIntToFloat(new
+//// Integer(mesure.getLocalisation().getLocalisationAlt())));
+//// valeursMesure = mesureModele.getValeursMesure();
+//// // Pour chaque valeur...
+//// for(int numValeur = 0; numValeur < valeursMesure.size() ; numValeur++){
+//// valeurModele = valeursMesure.get(numValeur);
+//// // Etape 9 : repartition de la valeur
+//// valeur =
+//// repartition.repartirValeur(mesure,mesureModele.getFlagValidite(),valeurModele,capteurs,parametres.get(numValeur),parametresValeur.get(numValeur),codesUnite);
+////
+//// // TESTS 3
+//// // System.out.println("\n\n date = " +
+//// DateTime.dateToString(valeur.getMesure().getMesureDate(),Constantes.formatDateJJMMAAAAHHMMSS));
+//// // System.out.println(" param code = " +
+//// valeur.getParametre().getParametreCode());
+//// // System.out.println(" param nom = " +
+//// valeur.getParametre().getParametreNom());
+//// // System.out.println(" cat param = " +
+//// valeur.getParametre().getCategorieParam().getCategorieParamNom());
+//// // System.out.println(" unite = " +
+//// valeur.getParametre().getUnite().getUniteCode());
+//// // System.out.println(" valeurVAL = " + valeur.getValeurVal());
+//// // System.out.println(" capteur mod= " +
+//// valeur.getCapteur().getCapteurModele());
+//// // System.out.println(" capteur num= " +
+//// valeur.getCapteur().getCapteurNumserie());
+//// // System.out.println(" capteur fab= " +
+//// valeur.getCapteur().getFabriquant().getFabriquantNom());
+//// // System.out.println(" flagVALIDITE = " +
+//// valeur.getFlagByValiditeFlag().getFlagNom());
+//// // System.out.println(" Valeur Delta = " + valeur.getValeurDelta());
+////										
+////										
+////										
+//// }
+//// //EcritureLog.ecrire(" -> RÃ©partition OK", "out-ln");
+//// }
+//// EcritureLog.ecrire(" -> RÃ©partition OK", "out");
+//// }
+//// viderRepartition(listeDonnees);
+//// } else {
+//// EcritureLog.ecrire("Fichier " + fileCourant.getName()
+//// + " non trouvÃ© !", "err");
+//// }
+//// }
+//// // Etape 8 : rÃ©partition de la derniÃ©re sÃ©quence
+//// repartition.repartirDerniereSequence();
+//// TESTS 4
+//// for (int i = 0; i < Statiques.sequencesModeles.size(); i++) {
+//// SequenceModele sequenceModele = Statiques.sequencesModeles.get(i);
+//// EcritureLog.ecrire(" DESCRIPTION = " +
+//// sequenceModele.getDescription(),"out");
+//// EcritureLog.ecrire(" nbMESURES = " + sequenceModele.getNbMesures(),"out");
+//// EcritureLog.ecrire(" DTE_SEQ_MIN = " +
+//// DateTime.dateToString(sequenceModele.getDateMinSeq(),Constantes.formatDateJJMMAAAAHHMMSS),"out");
+//// EcritureLog.ecrire(" DTE_SEQ_MAX = " +
+//// DateTime.dateToString(sequenceModele.getDateMaxSeq(),Constantes.formatDateJJMMAAAAHHMMSS),"out");
+//// EcritureLog.ecrire(" ALTITUDE_SEQ_MIN = " + Nombre.altIntToFloat(new
+//// Integer(sequenceModele.getAltMinSeq())),"out");
+//// EcritureLog.ecrire(" ALTITUDE_SEQ_MAX = " + Nombre.altIntToFloat(new
+//// Integer(sequenceModele.getAltMaxSeq())),"out");
+//// EcritureLog.ecrire(" LAT_SEQ_MIN = " + Nombre.latIntToFloat(new
+//// Integer(sequenceModele.getLatMinSeq())),"out");
+//// EcritureLog.ecrire(" LAT_SEQ_MAX = " + Nombre.latIntToFloat(new
+//// Integer(sequenceModele.getLatMaxSeq())),"out");
+//// EcritureLog.ecrire(" LONG_SEQ_MIN = " + Nombre.latIntToFloat(new
+//// Integer(sequenceModele.getLonMinSeq())),"out");
+//// EcritureLog.ecrire(" LONG_SEQ_MAX = " + Nombre.latIntToFloat(new
+//// Integer(sequenceModele.getLonMaxSeq())),"out");
+//// EcritureLog.ecrire("","out");
+////
+////						
+//// }
+//
+////					
+//// } else {
+//// EcritureLog.ecrire("Pas de fichiers Ã© valider dans le jeu "
+//// + Constantes.nomJeuAMDAR, "err");
+//// }
+//// // ******************************ArrÃ©t du chronomÃ©tre
+//// // **********************************
+//// chrono.stop();
+//// chrono.afficheChrono();
+//// }
+//// /**
+//// * LibÃ©rer la mÃ©moire aprÃ©s la repartition d'un fichier donnÃ©.
+//// *
+//// */
+//// private static void viderRepartition(ArrayList<ArrayList<String>>
+//// listeDonnees) {
+//// listeDonnees = null;
+//// }
+////
+//// /**
+//// * LibÃ©rer la mÃ©moire aprÃ©s la validation d'un fichier donnÃ©.
+//// *
+//// */
+//// private static void viderValidation(Validation validation,
+//// ArrayList<String> listeMesures) {
+//// validation = null;
+//// listeMesures = null;
+//// }
+////
+//// /**
+//// * LibÃ©rer la mÃ©moire aprÃ©s la prÃ©validation d'un fichier donnÃ©.
+//// *
+//// */
+//// private static void viderPrevalidation(PreValidation preValidation,
+//// File fichier) {
+//// preValidation = null;
+//// fichier = null;
+//// }
+////		 
+//
+//// String s = "machin";
+//// String t = null;
+//// System.out.println("res="+(.equals(t)));
+//// ArrayList<ValeurModele> liste=new ArrayList<ValeurModele>();
+//// ValeurModele val;
+//// for (int i=0; i< 3; i++){
+//// val = new ValeurModele();
+//// val.setValeurVal("0");
+//// liste.add(val);
+//// }
+////		 
+//// ValeurModele val2 = liste.get(1);
+//// val2.setValeurVal("1");
+//// //liste.get(1).setValeurVal("1");
+////		 
+//// for (int i=0; i< liste.size(); i++){
+//// System.out.println(liste.get(i).getValeurVal());
+//// }
+//// ArrayList<ArrayList<String>> listeDonnees = null;
+//// // On lit le modÃ©le XML du jeu
+//// LectureModeleXML lectureModeleXML = new LectureModeleXML("AVION","AMDAR");
+//// lectureModeleXML.lireModele();
+//// // On lit les listes de capteurs, paramÃ©tres, plateformes, ...
+//// LectureCapteurs lectureCapteurs = new LectureCapteurs();
+//// lectureCapteurs.lireFichier();
+//// LecturePlateformes lecturePlateformes = new LecturePlateformes();
+//// lecturePlateformes.lireFichier();
+//// LectureParametres lectureParametres = new LectureParametres();
+//// lectureParametres.lireFichier();
+//// LecturePersonnes lecturePersonnes = new LecturePersonnes();
+//// lecturePersonnes.lireFichier();
+//// LectureUnites lectureUnites = new LectureUnites();
+//// lectureUnites.lireFichier();
+//// LectureOrganismes lectureOrganismes = new LectureOrganismes();
+//// lectureOrganismes.lireFichier();
+////		
+////		 
+//// Fichier fichier;
+//// MesureModele mesureModele;
+//// ArrayList<String> donneesMesure = null;
+//// // On rÃ©cupÃ©re tous les fichiers du rÃ©pertoire
+//// File fileCourant = null;
+//// String[] listeFichiers = fileCourant.list();
+////	
+//// //
+////			
+////			
+//// Repartition repartition = new Repartition(lectureModeleXML, lectureCapteurs,
+//// lecturePlateformes, lectureParametres,
+//// lecturePersonnes, lectureUnites,
+//// lectureOrganismes);
+//// ArrayList<Personne> personnes = repartition.repartirPersonnes();
+//// Jeu jeu = repartition.repartirJeu(personnes);
+//// ArrayList<Parametre> parametres = repartition.repartirParametres();
+//// ArrayList<Capteur> capteurs = repartition.repartirCapteurs();
+//// ArrayList<Plateforme> plateformes = repartition.repartirPlateformes();
+//// fichier = repartition.repartirFichier(jeu,fileCourant);
+//// mesureModele = repartition.repartirDonnees(donneesMesure);
+//// // RÃ©partition des mÃ©tadonnÃ©es du jeu
+//// // Repartition repartition = new Repartition(listeDonnees,
+//// // lectureModeleXML, lectureCapteurs,
+//// // lecturePlateformes, lectureParametres,
+//// // lecturePersonnes, lectureUnites,
+//// // lectureOrganismes);
+//// // ArrayList<Personne> personnes = repartition.repartirPersonnes();
+//// // Jeu jeu = repartition.repartirJeu(personnes);
+//// //
+//// // ArrayList<Parametre> parametres = repartition.repartirParametres();
+//// // ArrayList<Capteur> capteurs = repartition.repartirCapteurs();
+//// // ArrayList<Plateforme> plateformes = repartition.repartirPlateformes();
+//// // mesureModele = repartition.repartirDonnees(donneesMesure);
+////			
+////			
+//// Personne personne;
+//// Capteur capteur;
+//// Parametre parametre;
+//// Plateforme plateforme;
+//// int numCapteur;
+//
+///**
+// * -------------------------------test sur
+// * personnes------------------------------------
+// */
+//
+//// for (int num=0; num< personnes.size(); num++){
+//// personne = personnes.get(num);
+////
+//// System.out.println("Mail ="+ personne.getPersonneMail());
+//// System.out.println("Nom ="+ personne.getPersonneNom());
+//// System.out.println("PrÃ©nom ="+ personne.getPersonnePrenom());
+//// if (personne.getCommentaire() != null) {
+//// System.out.println("Description ="+
+//// personne.getCommentaire().getCommentaireTxt());
+//// }
+//// System.out.println("nom organisme = "+
+//// personne.getOrganisme().getOrganismeNom());
+//// System.out.println("mail organisme = "+
+//// personne.getOrganisme().getOrganismeMail());
+//// System.out.println(" pyas organisme = "+
+//// personne.getOrganisme().getAdresse().getAdressePays());
+//// System.out.println(" rue organisme = "+
+//// personne.getOrganisme().getAdresse().getAdresseRue());
+//// System.out.println(" ville organisme = "+
+//// personne.getOrganisme().getAdresse().getAdresseVille());
+//// System.out.println("code organisme = "+
+//// personne.getOrganisme().getAdresse().getAdresseZip());
+//// System.out.println();
+////			 
+//// }
+///**
+// * ---------------------------fin test sur
+// * personnes------------------------------------
+// */
+//
+///**
+// * -------------------------------test sur
+// * capteurs------------------------------------
+// */
+//
+//// Iterator<Parametre> it;
+//// // Parametre parametre;
+//// for (int num=0; num< capteurs.size(); num++){
+//// capteur = capteurs.get(num);
+////			 
+//// System.out.println("Etalonnage Capteurs ="+ capteur.getCapteurEtalonnage());
+//// System.out.println("MOdele Capteurs = " + capteur.getCapteurModele());
+//// System.out.println("Nomero Serie Cpateurs = " +
+//// capteur.getCapteurNumserie());
+//// if (capteur.getCommentaire() != null) {
+//// System.out.println("Description Capteurs = " +
+//// capteur.getCommentaire().getCommentaireTxt());
+//// }
+//// System.out.println("Nom Fabriquant Capteurs = " +
+//// capteur.getFabriquant().getFabriquantNom());
+////			 
+//// it = capteur.getParametres().iterator();
+//// while (it.hasNext()) {
+//// parametre = it.next();
+//// System.out.println("Parametres Capteurs = " + parametre.getParametreCode());
+//// }
+////
+//// System.out.println("Noms types Capteurs = " +
+//// capteur.getTypeCapteur().getTypeCapteurNom());
+////						 
+//// System.out.println();
+////		 
+//// }
+///**
+// * ----------------------------fin test sur
+// * capteurs------------------------------------
+// */
+//
+///**
+// * -------------------------------test sur
+// * palteformes------------------------------------
+// */
+//
+////		 
+//// Iterator<Capteur> it;
+//// //Capteur capteur;
+//// for (int num=0; num< plateformes.size(); num++){ plateforme =
+//// plateformes.get(num);
+////			 
+//// System.out.println("Id plateforme = "+ plateforme.getPlateformeId());
+//// System.out.println("Nom plateforme = " + plateforme.getPlateformeNom());
+//// System.out.println("Type plateforme = " +
+//// plateforme.getTypePlateforme().getTypePlateformeNom());
+////			
+////			 
+//// if (plateforme.getCommentaire() != null) {
+//// System.out.println("Description Capteurs = " +
+//// plateforme.getCommentaire().getCommentaireTxt());
+//// }
+////			 
+////			 
+//// it = plateforme.getCapteurs().iterator();
+//// while (it.hasNext()) {
+//// capteur = it.next();
+//// System.out.println("Etalonnage Capteurs de Palateformes = " +
+//// capteur.getCapteurEtalonnage());
+//// System.out.println("Id Capteurs de Palateformes = " +
+//// capteur.getCapteurId());
+//// System.out.println("Modele Capteurs de Palateformes = " +
+//// capteur.getCapteurModele());
+//// System.out.println("Numero de Serie Capt Platformes = " +
+//// capteur.getCapteurNumserie());
+//// if (capteur.getCommentaire() != null) {
+//// System.out.println(" description Capt Plateformes = " +
+//// capteur.getCommentaire().getCommentaireTxt());
+//// }
+//// System.out.println("Id Fabriquant Capt PLateformes = " +
+//// capteur.getFabriquant().getFabriquantId());
+//// System.out.println(" Type capteur palteformes = " +
+//// capteur.getTypeCapteur().getTypeCapteurNom());
+//// }
+//// System.out.println();
+////			 
+//// }
+////		 
+////		 
+//
+///**
+// * ---------------------------fin test sur
+// * palteformes------------------------------------
+// */
+//
+///**
+// * ---------------------------fin test sur
+// * jeux------------------------------------
+// */
+//
+//// for (int num=0; num< personnes.size(); num++){
+//// personne = personnes.get(num);
+////			 
+//// System.out.println("Mail ="+ personne.getPersonneMail());
+//// System.out.println("Nom ="+ personne.getPersonneNom());
+//// System.out.println("PrÃ©nom ="+ personne.getPersonnePrenom());
+//// if (personne.getCommentaire() != null) {
+//// System.out.println("Description ="+
+//// personne.getCommentaire().getCommentaireTxt());
+//// }
+//// System.out.println("nom organisme = "+
+//// personne.getOrganisme().getOrganismeNom());
+//// System.out.println("mail organisme = "+
+//// personne.getOrganisme().getOrganismeMail());
+//// System.out.println(" pyas organisme = "+
+//// personne.getOrganisme().getAdresse().getAdressePays());
+//// System.out.println(" rue organisme = "+
+//// personne.getOrganisme().getAdresse().getAdresseRue());
+//// System.out.println(" ville organisme = "+
+//// personne.getOrganisme().getAdresse().getAdresseVille());
+//// System.out.println("code organisme = "+
+//// personne.getOrganisme().getAdresse().getAdresseZip());
+//// System.out.println();
+////			 
+//// }
+////		 
+////		 
+////		 
+//// System.out.println("nom jeu = "+ jeu.getJeuId());
+//// System.out.println("nom jeu = "+ jeu.getJeuNom());
+//// System.out.println("Categorie jeu = "+ jeu.getCategorie().getCategorieNom());
+//// System.out.println("Description jeu = "+
+//// jeu.getCommentaire().getCommentaireTxt());//.getJeuNom());
+//// System.out.println("mail organisme jeu = "+
+//// jeu.getOrganisme().getOrganismeMail());
+//// System.out.println("nom Organisme jeu = "+
+//// jeu.getOrganisme().getOrganismeNom());
+//// System.out.println("description organisme jeu = " +
+//// jeu.getOrganisme().getCommentaire().getCommentaireTxt());
+//// System.out.println("contact jeu = " +
+//// jeu.getPersonneByContactId().getPersonneMail());
+//// System.out.println("mail contact jeu = " +
+//// jeu.getPersonneByContactId().getPersonneNom());
+//// System.out.println("nom contact jeu = " +
+//// jeu.getPersonneByContactId().getPersonneNom());
+//// System.out.println("prenom contact jeu = " +
+//// jeu.getPersonneByContactId().getPersonnePrenom());
+//// }
+//
+///** ---------------------------fin test jeu------------------------------------ */
+//
+///** ---------------------------test parametres-------------------------------- */
+//
+//// for (int num=0; num< parametres.size(); num++){
+//// parametre = parametres.get(num);
+////			 
+//// System.out.println("Code parametre = " + parametre.getParametreCode());
+//// System.out.println("Nom parametre = " + parametre.getParametreNom());
+//// System.out.println("Nom Categorie parametre = " +
+//// parametre.getCategorieParam().getCategorieParamNom());
+//// System.out.println("Code Unite parametre = " +
+//// parametre.getUnite().getUniteCode());
+////		 
+////		
+//// if (parametre.getCommentaire() != null) {
+//// System.out.println("Description ="+
+//// parametre.getCommentaire().getCommentaireTxt());
+//// }
+//// System.out.println();
+//// }
+///** -----------------------fin test parametres-------------------------------- */
+//
+//// LecturePlateformes lecturePlateformes = new LecturePlateformes();
+//// lecturePlateformes.lireFichier();
+//// for (int num=0; num< Constantes.nbPlateformes; num++){
+//// System.out.print(lecturePlateformes.getNumerosPlat().get(num));
+//// System.out.print(" * "+lecturePlateformes.getNomsPLat().get(num));
+//// System.out.print(" * "+lecturePlateformes.getTypesPlat().get(num));
+//// System.out.print(" * "+lecturePlateformes.getDescriptionsPLat().get(num));
+//// System.out.print(" * "+lecturePlateformes.getLatMinsPLat().get(num));
+//// System.out.print(" * "+lecturePlateformes.getLatMaxsPLat().get(num));
+//// System.out.print(" * "+lecturePlateformes.getLongMinsPLat().get(num));
+//// System.out.print(" * "+lecturePlateformes.getLongMaxsPLat().get(num));
+//// System.out.print(" * "+lecturePlateformes.getAltMinsPLat().get(num));
+//// System.out.print(" * "+lecturePlateformes.getAltMaxsPLat().get(num));
+//// System.out.print(" * "+lecturePlateformes.getHautSolMinsPlat().get(num));
+//// System.out.print(" * "+lecturePlateformes.getHautSolMaxsPlat().get(num));
+//// System.out.print(" * ");
+//// for (int num2=0; num2<lecturePlateformes.getNumsCaptPlat().get(num).size();
+//// num2++){
+//// System.out.print(" # "+
+//// lecturePlateformes.getNumsCaptPlat().get(num).get(num2));
+//// }
+//// System.out.println();
+//
+//// **********************************************************************************
+//// ****************************TestParametres****************************************
+//// **********************************************************************************
+////	
+//// public static void main(String[] args) {
+//// LectureParametres lectureParametres = new LectureParametres(null);
+//// lectureParametres.lireFichier();
+//// for (int num=0; num< Constantes.nbParametres; num++){
+//// System.out.print(lectureParametres.getNumerosParam().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lectureParametres.getNomParam().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lectureParametres.getCodeMegapoliParam().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lectureParametres.getNumUniteParam().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lectureParametres.getDescriptionParam().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lectureParametres.getCategorieParam().get(num));
+////			
+//// System.out.println();
+//// }
+//// }
+////
+//// }
+////	
+//// **********************************************************************************
+//// ****************************TestOrganismes****************************************
+//// **********************************************************************************
+////
+//// public static void main(String[] args) {
+//// LectureOrganismes lectureOrganismes = new LectureOrganismes(null);
+//// lectureOrganismes.lireFichier();
+//// for (int num=0; num< Constantes.nbParametres; num++){
+//// System.out.print(lectureOrganismes.getNumerosOrg().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lectureOrganismes.getNomsOrg().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lectureOrganismes.getMailOrg().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lectureOrganismes.getDescriptionOrg().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lectureOrganismes.getRueOrg().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lectureOrganismes.getCodePostalOrg().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lectureOrganismes.getVilleOrg().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lectureOrganismes.getPaysOrg().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lectureOrganismes.getUrlOrg().get(num));
+////			
+//// System.out.println();
+//// }
+//// }
+////
+//// }
+////	
+//// **********************************************************************************
+//// ***************************TestPersonnes*****************************************
+//// **********************************************************************************
+////
+//// public static void main(String[] args) {
+//// LecturePersonnes lecturePersonnes = new LecturePersonnes(null);
+//// lecturePersonnes.lireFichier();
+//// for (int num=0; num< Constantes.nbPersonnes; num++){
+//// System.out.print(lecturePersonnes.getNumerosPes().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lecturePersonnes.getNomsPes().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lecturePersonnes.getPrenomsPes().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lecturePersonnes.getPrenomsPes().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lecturePersonnes.getMailPes().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lecturePersonnes.getDescriptionPes().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lecturePersonnes.getNumOrgPes().get(num));
+////			
+//// System.out.println();
+//// }
+//// }
+////
+//// }
+//// ********************************************************************************
+//// *************************TestPLateformes***************************************
+//// ********************************************************************************
+//// public static void main(String[] args) {
+//// LecturePlateformes lecturePlateformes = new LecturePlateformes(null);
+//// lecturePlateformes.lireFichier();
+//// for (int num=0; num< Constantes.nbPlateformes; num++){
+//// System.out.print(lecturePlateformes.getNumerosPlat().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lecturePlateformes.getNomsPLat().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lecturePlateformes.getTypePlat().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lecturePlateformes.getDescriptionPLat().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lecturePlateformes.getAltMinPLat().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lecturePlateformes.getAltMaxPLat().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lecturePlateformes.getAltMinPLat().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lecturePlateformes.getAltMaxPLat().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lecturePlateformes.getAltMaxPLat().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lecturePlateformes.getAltMaxPLat().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lecturePlateformes.getAltMinPLat().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lecturePlateformes.getAltMaxPLat().get(num));
+//// System.out.print(" ->>->>->>->>
+//// "+lecturePlateformes.getNumsCaptPlat().get(num));
+//// System.out.println();
+//// }
+//// }
+//// }
+////	
+////
+//// *********************************************************************************
+//// ********************************TestUnites***************************************
+//// *********************************************************************************
+//// public static void main(String[] args) {
+//// LectureUnites lectureUnites = new LectureUnites(null);
+//// lectureUnites.lireFichier();
+//// for (int num = 0; num < Constantes.nbUnites; num++) {
+//// System.out.print(lectureUnites.getNumUni().get(num));
+//// System.out.print(" ->>->>->>->> "
+//// + lectureUnites.getNumUni().get(num));
+//// System.out.print(" ->>->>->>->> "
+//// + lectureUnites.getCodeUni().get(num));
+////
+//// System.out.println();
+//// }
+////}
+/******************************************************************/
+
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/repartition/Repartition.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/repartition/Repartition.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/repartition/Repartition.java	(revision 482)
@@ -0,0 +1,1090 @@
+/**
+ * Created on 00 00. 0000
+ *  @author 
+ */
+
+package integration.repartition;
+import integration.hibernate.*;
+import integration.lecture_ecriture.*;
+import integration.utils.*;
+import integration.vues.*;
+import java.io.File;
+import java.math.BigDecimal;
+import java.util.*;
+
+public class Repartition {
+
+	private LectureModeleXML lectureModeleXML;
+	private LectureCapteurs lectureCapteurs;
+	private LecturePlateformes lecturePlateformes;
+	private LectureParametres lectureParametres;
+	private LecturePersonnes lecturePersonnes;
+	private LectureUnites lectureUnites;
+	private LectureOrganismes lectureOrganismes;
+	
+	/**
+	 * Classe permettant de lire et d'Ã©crire dans un fichier
+	 */
+	public Repartition(LectureModeleXML lectureModeleXML, LectureCapteurs lectureCapteurs,
+			LecturePlateformes lecturePlateformes,
+			LectureParametres lectureParametres,
+			LecturePersonnes lecturePersonnes, LectureUnites lectureUnites,
+			LectureOrganismes lectureOrganismes) {
+		this.lectureModeleXML = lectureModeleXML;
+		this.lectureCapteurs = lectureCapteurs;
+		this.lecturePlateformes = lecturePlateformes;
+		this.lectureParametres = lectureParametres;
+		this.lecturePersonnes = lecturePersonnes;
+		this.lectureUnites = lectureUnites;
+		this.lectureOrganismes = lectureOrganismes;
+	}
+
+	/** 
+	 * Traitement des informations personnes 
+	 */
+	public ArrayList<Personne> repartirPersonnes() {
+		ArrayList<Personne> personnes = new ArrayList<Personne>();
+		/** Traitement de personne IntÃ©grateur */
+		String numIntegrateur = lectureModeleXML.getNumeroIntegrateur();
+		if (numIntegrateur == null) {
+			EcritureLog.ecrire("Erreur : pas d'intÃ©grateur trouvÃ©", "err");
+		} else {
+			Personne integrateur = repartirPersonne(numIntegrateur);
+			personnes.add(integrateur);
+		}
+
+		/** Traitement de la personne Contact */
+		String numContact = lectureModeleXML.getNumeroContact();
+		if (numContact == null) {
+			EcritureLog.ecrire("Erreur : pas de contact trouvÃ© ", "err");
+		} else {
+			Personne contact = repartirPersonne(numContact);
+			personnes.add(contact);
+		}
+
+		/** Traitement de la personne PI */
+		String numPI = lectureModeleXML.getNumeroPi();
+		if (numPI != null) {
+			Personne pi = repartirPersonne(numPI);
+			personnes.add(pi);
+		}
+		return personnes;
+	}
+	
+	/**
+	 * RÃ©partition d'un objet personne Ã© partir de son numÃ©ro
+	 */
+	public Personne repartirPersonne(String num) {
+		// On va chercher dans la liste des personnes la personne correspondant au numÃ©ro trouvÃ©
+		int indicePers = lecturePersonnes.getIndice(Integer.parseInt(num));
+		String mail = lecturePersonnes.getMailsPers().get(indicePers);
+		String nom = lecturePersonnes.getNomsPers().get(indicePers);
+		String prenom = lecturePersonnes.getPrenomsPers().get(indicePers);
+		String numOrg = lecturePersonnes.getNumOrgsPers().get(indicePers);
+		String role = lecturePersonnes.getDescriptionsPers().get(indicePers);
+		Organisme organisme = null;
+		// On va chercher dans la liste des organismes l'organisme correspondant au numÃ©ro trouvÃ©
+		if (numOrg == null) {
+			EcritureLog.ecrire("Erreur : pas d'organisme trouvÃ© pour "+prenom+" "+nom, "err");
+		} else {
+			organisme = repartirOrganisme(numOrg);
+		}
+		Personne personne = new Personne();
+		Commentaire commentaire = new Commentaire();
+		commentaire.setCommentaireTxt(role);
+		commentaire.setLangue(Constantes.langueEN);
+		personne.setCommentaire(commentaire);
+		personne.setOrganisme(organisme);
+		personne.setPersonneMail(mail);
+		personne.setPersonneNom(nom);
+		personne.setPersonnePrenom(prenom);
+		return personne;
+	}
+
+	/**
+	 * RÃ©partition d'un objet organisme Ã© partir de son numÃ©ro
+	 */
+	public Organisme repartirOrganisme(String num) {
+		int indiceOrg = lectureOrganismes.getIndice(Integer.parseInt(num));
+		String codepostal = lectureOrganismes.getCodesPostalsOrg().get(indiceOrg);
+		String descriptionOrg = lectureOrganismes.getDescriptionsOrg().get(indiceOrg);
+		String mailOrg = lectureOrganismes.getMailsOrg().get(indiceOrg);
+		String nomOrg = lectureOrganismes.getNomsOrg().get(indiceOrg);
+		String pays = lectureOrganismes.getPaysOrg().get(indiceOrg);
+		String rue = lectureOrganismes.getRuesOrg().get(indiceOrg);
+		String urlOrg = lectureOrganismes.getUrlsOrg().get(indiceOrg);
+		String ville = lectureOrganismes.getVillesOrg().get(indiceOrg);
+		Adresse adresse = new Adresse();
+		adresse.setAdressePays(pays);
+		adresse.setAdresseRue(rue);
+		adresse.setAdresseVille(ville);
+		adresse.setAdresseZip(codepostal);
+		Organisme organisme = new Organisme();
+		organisme.setAdresse(adresse);
+		Commentaire commentaire = new Commentaire();
+		commentaire.setCommentaireTxt(descriptionOrg);
+		commentaire.setCommentaireUrl(urlOrg);
+		Langue langue = (pays.equals("France")?Constantes.langueFR:Constantes.langueEN);
+		commentaire.setLangue(langue);
+		organisme.setCommentaire(commentaire);
+		organisme.setOrganismeMail(mailOrg);
+		organisme.setOrganismeNom(nomOrg);
+		return organisme;
+	}
+	
+	/** 
+	 * Traitement des informations Jeu 
+	 */
+	public Jeu repartirJeu(ArrayList<Personne> personnes, String numVersion) {
+		/** On recupere les infos du modÃ©le */
+		String nomCategorie = lectureModeleXML.getNomCategorie();
+		String nomJeu = lectureModeleXML.getNomJeu();
+		String descriptionJeu = lectureModeleXML.getDescriptionJeu();
+		String numOrganisme = lectureModeleXML.getNumOrganismeJeu();
+		Langue langue = Constantes.langueEN;
+		// On va chercher dans la liste des personnes la personne correspondant au numÃ©ro trouvÃ©
+		Jeu jeu = new Jeu();
+		Categorie categorie = new Categorie();
+		categorie.setCategorieId(getCategorieId(nomCategorie));
+		categorie.setCategorieNom(nomCategorie);
+		jeu.setCategorie(categorie);
+		jeu.setJeuDateinser(new Date(System.currentTimeMillis()));
+		jeu.setJeuNom(nomJeu);
+		jeu.setJeuNumversion(numVersion);
+		// On va chercher les infos sur l'organisme du jeu
+		if (numOrganisme == null) {
+			EcritureLog.ecrire("Erreur : pas d'organisme trouvÃ© pour le jeu","err");
+		} else {
+			Organisme organisme = repartirOrganisme(numOrganisme);
+			jeu.setOrganisme(organisme);
+			if (organisme.getAdresse().getAdressePays().equals("France"))
+				langue = Constantes.langueFR;
+		}
+		if (descriptionJeu != null) {
+			Commentaire commentaire = new Commentaire();
+			commentaire.setCommentaireTxt(descriptionJeu);
+			commentaire.setLangue(langue);
+			jeu.setCommentaire(commentaire);
+		}
+		jeu.setPersonneByContactId(personnes.get(Constantes.indiceContact));
+		jeu.setPersonneByIntegrateurId(personnes.get(Constantes.indiceIntegrateur));
+		if (personnes.size() == 3) {
+			jeu.setPersonneByPiId(personnes.get(Constantes.indicePI));
+		}
+		return jeu;
+	}
+
+	/** 
+	 * Traitement des informations Capteurs
+	 */
+	public ArrayList<Capteur> repartirCapteurs(ArrayList<Parametre> parametres) {
+		ArrayList<Capteur> capteurs = new ArrayList<Capteur>();
+		ArrayList<String> numsCapteur = lectureModeleXML.getNumsCapteur();
+		Capteur capteur;
+		String numCapteur;
+		// On retrouve les infos de chaque capteur Ã© partir de son numÃ©ro
+		for (int num = 0; num < numsCapteur.size(); num++) {
+			numCapteur = numsCapteur.get(num);
+			if (numCapteur == null) {
+				EcritureLog.ecrire("Erreur : pas de capteur trouvÃ©", "err");
+			} else {
+				capteur = repartirCapteur(numCapteur, parametres);
+				capteurs.add(capteur);
+			}
+		}
+		return capteurs;
+	}
+	
+	public Capteur repartirCapteur(String num, ArrayList<Parametre> parametres) {
+		int indiceCapteur = lectureCapteurs.getIndice(Integer.parseInt(num));
+		String modele = lectureCapteurs.getModelesCapt().get(indiceCapteur);
+		String numSerie = lectureCapteurs.getNumsSeriesCapt().get(indiceCapteur);
+		String etalonnage = lectureCapteurs.getEtalonnagesCapt().get(indiceCapteur);
+//		String descriptionCapt = lectureCapteurs.getDescriptionsCapt().get(indiceCapteur);
+		String nomTypeCapt = lectureCapteurs.getTypesCapt().get(indiceCapteur);
+//		String descriptionTypeCapt = lectureCapteurs.getDescriptionsTypeCapt().get(indiceCapteur);
+		String nomFabriquant = lectureCapteurs.getFabriquantsCapt().get(indiceCapteur);
+		ArrayList<String> numsParametres = lectureCapteurs.getNumsParametresCapt().get(indiceCapteur);
+
+		Capteur capteur = new Capteur();
+		capteur.setCapteurEtalonnage((etalonnage.equals("")?null:etalonnage));
+		capteur.setCapteurModele((modele.equals("")?Constantes.unknown:modele));
+		capteur.setCapteurNumserie((numSerie.equals("")?Constantes.unknown:numSerie));
+//		if (descriptionCapt != null && !descriptionCapt.trim().equals("")) {
+//			commentaireCapt = new Commentaire();
+//			commentaireCapt.setCommentaireTxt(descriptionCapt);
+//			commentaireCapt.setLangue(Constantes.langueFR);
+//			capteur.setCommentaire(commentaireCapt);
+//		}
+		Fabriquant fabriquant = new Fabriquant();
+		fabriquant.setFabriquantNom((nomFabriquant.equals("")?Constantes.unknown:nomFabriquant));
+		capteur.setFabriquant(fabriquant);
+		// RÃ©partition des paramÃ©tres du capteur
+		Set<Parametre> parametresCapt = new HashSet<Parametre>();
+		Parametre parametreCapt;
+		for (String numParametre: numsParametres) {
+			if (numParametre != null && !numParametre.equals("")) {
+				parametreCapt = repartirParametre(numParametre);
+				for (Parametre parametre: parametres) {
+					if (parametre.getParametreCode().equals(parametreCapt.getParametreCode())) {
+						parametresCapt.add(parametreCapt);
+						break;
+					}
+				}
+			}
+		}
+		capteur.setParametres(parametresCapt);
+//		Set<Jeu> jeuxCapt = new HashSet<Jeu>();
+//		jeuxCapt.add(jeu);
+//		capteur.setJeus(jeuxCapt);
+		TypeCapteur typeCapteur = new TypeCapteur();
+		typeCapteur.setTypeCapteurNom(nomTypeCapt);
+//		if (descriptionTypeCapt != null && !descriptionCapt.trim().equals("")) {
+//			commentaireTypeCapt = new Commentaire();
+//			commentaireTypeCapt.setCommentaireTxt(descriptionTypeCapt);
+//			commentaireTypeCapt.setLangue(Constantes.langueFR);
+//			typeCapteur.setCommentaire(commentaireTypeCapt);
+//		}
+		capteur.setTypeCapteur(typeCapteur);
+		return capteur;
+	}
+
+	/** 
+	 * Traitement des informations Parametres 
+	 */
+	public ArrayList<Parametre> repartirParametres() {
+		ArrayList<Parametre> parametres = new ArrayList<Parametre>();
+		ArrayList<ParametreModele> parametresJeu = lectureModeleXML.getParametres();
+		Parametre parametre;
+		String numParametre;
+		// On retrouve les infos de chaque paramÃ©tre Ã© partir de son numÃ©ro
+		for (ParametreModele paramJeu: parametresJeu) {
+			numParametre = paramJeu.getNumero();
+			if (numParametre != null) {
+				parametre = repartirParametre(numParametre);
+				parametre.setDelta(paramJeu.getDelta());
+				parametre.setLod(paramJeu.getLod());
+				parametres.add(parametre);
+			}
+		}
+		return parametres;
+	}
+	
+	public Parametre repartirParametre(String num) {
+		int indiceParametre = lectureParametres.getIndice(Integer.parseInt(num));
+		String nomPar = lectureParametres.getNomsParam().get(indiceParametre);
+		String codeMegapoliPar = lectureParametres.getCodesMegapoliParam().get(indiceParametre);
+		String numUnitePar = lectureParametres.getNumsUnitesParam().get(indiceParametre);
+//		descriptionPar = lectureParametres.getDescriptionsParam().get(indiceParametre);
+		String categoriePar = lectureParametres.getCategoriesParam().get(indiceParametre);
+		Parametre parametre = new Parametre();
+		CategorieParam categorieParam = new CategorieParam();
+		categorieParam.setCategorieParamDomaine(Constantes.domaineCategorieParam);
+		categorieParam.setCategorieParamNom((categoriePar.equals("")?Constantes.unknown:categoriePar));
+		parametre.setCategorieParam(categorieParam);
+//		commentairePar = new Commentaire();
+//		commentairePar.setCommentaireTxt(descriptionPar);
+//		commentairePar.setLangue(Constantes.langueFR);
+//		parametre.setCommentaire(commentairePar);
+		parametre.setParametreCode(codeMegapoliPar);
+		parametre.setParametreNom(nomPar);
+//		Set<Jeu> jeuxParam = new HashSet<Jeu>();
+//		jeuxParam.add(jeu);
+//		parametre.setJeus(jeuxParam);
+		// on recupere l'unitÃ© du paramÃ©tre
+		if (numUnitePar == null) {
+			EcritureLog.ecrire("Erreur : pas d'unitÃ© trouvÃ©e pour le paramÃ©tre "+nomPar, "err");
+		} else {
+			Unite unite = repartirUnite(numUnitePar);
+			parametre.setUnite(unite);
+		}
+		return parametre;
+	}
+
+	public Unite repartirUnite(String num) {
+		int indiceUnite = lectureUnites.getIndice(Integer.parseInt(num));
+		String codeUnitePar = lectureUnites.getCodesUni().get(indiceUnite);
+		String nomUnitePar = lectureUnites.getNomsUni().get(indiceUnite);
+		Unite unite = new Unite();
+		unite.setUniteCode(codeUnitePar);
+		unite.setUniteNom(nomUnitePar);
+		return unite;
+	}
+	
+	/** 
+	 * Traitement des informations Plateformes 
+	 */
+	public ArrayList<Plateforme> repartirPlateformes(String pays, ArrayList<Capteur> capteurs, ArrayList<Parametre> parametres) {
+		ArrayList<Plateforme> platesformes = new ArrayList<Plateforme>();
+		ArrayList<String> numsPlateforme = lectureModeleXML.getNumsPlateforme();
+		Plateforme plateforme;
+		String numPlat;
+		// On retrouve les infos de chaque plateforme Ã© partir de son numÃ©ro
+		for (int num = 0; num < numsPlateforme.size(); num++) {
+			numPlat = numsPlateforme.get(num);
+			if (numPlat == null) {
+				EcritureLog.ecrire("Erreur : pas de plateforme trouvÃ©", "err");
+			} else {
+				plateforme = repartirPlateforme(numPlat, pays, capteurs, parametres);
+				platesformes.add(plateforme);
+			}
+		}
+		return platesformes;
+	}
+	
+	public Plateforme repartirPlateforme(String num, String pays, ArrayList<Capteur> capteurs, ArrayList<Parametre> parametres) {
+		int indicePlat = lecturePlateformes.getIndice(Integer.parseInt(num));
+		String nomPlat = lecturePlateformes.getNomsPLat().get(indicePlat);
+		String nomTypePlat = lecturePlateformes.getTypesPlat().get(indicePlat);
+		String descriptionPlat = lecturePlateformes.getDescriptionsPLat().get(indicePlat);
+		ArrayList<String> numsCapteurs = lecturePlateformes.getNumsCaptPlat().get(indicePlat);
+		String altMaxPLat = lecturePlateformes.getAltMaxsPLat().get(indicePlat);
+		String altMinPLat = lecturePlateformes.getAltMinsPLat().get(indicePlat);
+		//hautSolMaxPlat = lecturePlateformes.getHautSolMaxsPlat().get(indicePlat);
+		//hautSolMinPlat = lecturePlateformes.getHautSolMinsPlat().get(indicePlat);
+		String latMaxPLat = lecturePlateformes.getLatMaxsPLat().get(indicePlat);
+		String latMinPLat = lecturePlateformes.getLatMinsPLat().get(indicePlat);
+		String longMaxPLat = lecturePlateformes.getLongMaxsPLat().get(indicePlat);
+		String longMinPLat = lecturePlateformes.getLongMinsPLat().get(indicePlat);
+		// On stocke la plateforme
+		PlateformeModele plateformeModele = new PlateformeModele();
+		plateformeModele.setAltMax(altMaxPLat);
+		plateformeModele.setAltMin(altMinPLat);
+		//plateformeModele.setHsMax(hautSolMaxPlat);
+		//plateformeModele.setHsMin(hautSolMinPlat);
+		plateformeModele.setLatMax(latMaxPLat);
+		plateformeModele.setLatMin(latMinPLat);
+		plateformeModele.setLonMax(longMaxPLat);
+		plateformeModele.setLonMin(longMinPLat);
+		plateformeModele.setNom(nomPlat);
+		plateformeModele.setType(nomTypePlat);
+		Statiques.plateformesModele.add(plateformeModele);
+		// On construit la plateforme
+		Plateforme plateforme = new Plateforme();
+		// RÃ©partition des capteurs de la plateforme
+		Set<Capteur> capts = new HashSet<Capteur>();
+		Set<Parametre> params = new HashSet<Parametre>();
+		ArrayList<String> paramsCode = new ArrayList<String>();
+		Capteur capteurPlat;
+		for (String numCapteur: numsCapteurs) {
+			if (numCapteur != null && !numCapteur.equals("")) {
+				capteurPlat = repartirCapteur(numCapteur,parametres);
+				for (Capteur capteur: capteurs) {
+					if (capteur.getCapteurModele().equals(capteurPlat.getCapteurModele())
+							&& capteur.getCapteurNumserie().equals(capteurPlat.getCapteurNumserie())
+							&& capteur.getFabriquant().getFabriquantNom().equals(capteurPlat.getFabriquant().getFabriquantNom())
+							&& capteur.getTypeCapteur().getTypeCapteurNom().equals(capteurPlat.getTypeCapteur().getTypeCapteurNom())) {
+						capts.add(capteurPlat);
+						// RÃ©partition des paramÃ©tres du capteur dans la plateforme
+						for (Parametre parametre : capteurPlat.getParametres()) {
+							if (!paramsCode.contains(parametre.getParametreCode())) {
+								paramsCode.add(parametre.getParametreCode());
+								params.add(parametre);
+							}
+						}
+						break;
+					}
+				}
+			}
+		}
+		plateforme.setCapteurs(capts);
+		plateforme.setParametres(params);
+		// RÃ©partition de la localisation de la plateforme
+		Set<RequetePlatLoc> requetePlatLocs = new HashSet<RequetePlatLoc>();
+		RequetePlatLoc requetePlatLoc = new RequetePlatLoc();
+		requetePlatLoc.setAltMax(Nombre.altDoubleToInt(Double.valueOf(altMaxPLat)));
+		requetePlatLoc.setAltMin(Nombre.altDoubleToInt(Double.valueOf(altMinPLat)));
+		requetePlatLoc.setLatMax(Nombre.latDoubleToInt(Double.valueOf(latMaxPLat)));
+		requetePlatLoc.setLatMin(Nombre.latDoubleToInt(Double.valueOf(latMinPLat)));
+		requetePlatLoc.setLonMax(Nombre.latDoubleToInt(Double.valueOf(longMaxPLat)));
+		requetePlatLoc.setLonMin(Nombre.latDoubleToInt(Double.valueOf(longMinPLat)));
+		requetePlatLocs.add(requetePlatLoc);
+		plateforme.setRequetePlatLocs(requetePlatLocs);
+		// RÃ©partition du jeu de la plateforme
+//		Set<Jeu> jeuxPlat = new HashSet<Jeu>();
+//		jeuxPlat.add(jeu);
+//		plateforme.setJeus(jeuxPlat);
+		if (descriptionPlat != null && !descriptionPlat.trim().equals("")) {
+			Commentaire commentaire = new Commentaire();
+			commentaire.setCommentaireTxt(descriptionPlat);
+			Langue langue = (pays.equals("France")?Constantes.langueFR:Constantes.langueEN);
+			commentaire.setLangue(langue);
+			plateforme.setCommentaire(commentaire);
+		}
+		plateforme.setPlateformeNom(nomPlat);
+		TypePlateforme typePlateforme = new TypePlateforme();
+		typePlateforme.setTypePlateformeNom(nomTypePlat);
+		plateforme.setTypePlateforme(typePlateforme);
+		return plateforme;
+	}
+	
+	/** 
+	 * Traitement des informations fichier 
+	 */
+	public Fichier repartirFichier(Jeu jeu, File file) {
+		Fichier fichier = new Fichier();
+		fichier.setFichierNom(file.getName());
+		BigDecimal taille = new BigDecimal(file.length());
+		taille = taille.divide(new BigDecimal(1024),3,BigDecimal.ROUND_HALF_DOWN);
+		fichier.setFichierTaille(taille);
+		fichier.setJeu(jeu);
+		return fichier;
+	}
+
+	/** 
+	 * Traitement des informations des donnÃ©es de la mesure
+	 */
+	public MesureModele repartirDonnees(ArrayList<String> donneesMesure,ArrayList<ParametreModele> parametresModele) {
+		//, String numSequencePrecedent, int indiceNiv) {
+		MesureModele mesureModele = new MesureModele();
+		ArrayList<ParametreModele> paramsValeur = new ArrayList<ParametreModele>();
+		String donnee, fonctionParam, formatDate, nomParam, typeDate, dateStr = "";
+		ParametreModele parametreModele;
+		ValeurModele valeurModele;
+		Date date = null;
+		ArrayList<ValeurModele> valeursMesure = new ArrayList<ValeurModele>();
+//		int indiceParam;
+//		String numUniteParam = null;
+//		Integer lat_s = null, lon_s = null, alt_s = null, hs_s = null;
+//		boolean subdiviser = Boolean.parseBoolean(lectureModeleXML.getSubdiviser());
+//		SequenceModele sequenceModele = null;
+//		int cptParam = 0;
+//		int cptNiv = 0;
+		// Cas oÃ© il y'a une subdivision
+//		int nbNiv = 1;
+//		if (subdiviser) {
+//			nbNiv = Integer.parseInt(donneesMesure.get(indiceNiv));
+//		}
+		// Pour chaque donnÃ©e de la ligne de mesure...
+		for(int numDonnee = 0 ; numDonnee < donneesMesure.size() ; numDonnee++){
+			donnee = donneesMesure.get(numDonnee);
+
+			// On recherche le paramÃ©tre associÃ© Ã© la donnÃ©e
+			// Cas oÃ© il n'y a pas de subdivision
+//			if (!subdiviser) {
+//				indiceParam = numDonnee;
+//			} 
+			// Cas oÃ© il y a subdivision
+//			else {
+				// Cas oÃ© la donnÃ©e est avant la donnÃ©e de subdivision
+//				if (numDonnee <= indiceNiv) {
+//					indiceParam = numDonnee;
+//					cptParam++;
+//				} 
+				// Cas oÃ© la donnÃ©e est aprÃ©s la donnÃ©e de subdivision
+//				else {
+//					cptNiv++;
+					// Cas oÃ© on arrive Ã© la derniÃ©re donnÃ©e du paramÃ©tre courant
+//					if (cptNiv > nbNiv) {
+//						cptParam++;
+//						cptNiv = 1;
+//					}
+//					indiceParam = cptParam;
+//				}
+//			}
+			
+			parametreModele = parametresModele.get(numDonnee);//indiceParam);
+			fonctionParam = parametreModele.getFonction();
+			nomParam = parametreModele.getNom();
+			// Si la donnÃ©e est une date
+			if (fonctionParam.equals(Constantes.nomFonctionDate)){
+				formatDate = parametreModele.getFormat();
+				typeDate = parametreModele.getType();
+				if (formatDate == null) {
+					if (typeDate.equals("HoursSince"))
+						date = DateTime.hoursSinceToDate(Double.parseDouble(donnee.replaceAll(",", ".")), parametreModele.getDateSince());
+					else if (typeDate.equals("SecondsSince"))
+						date = DateTime.secondsSinceToDate(Double.parseDouble(donnee.replaceAll(",", ".")), parametreModele.getDateSince());
+					else if (typeDate.equals("YearsSince"))
+						date = DateTime.yearsSinceToDate(Double.parseDouble(donnee.replaceAll(",", ".")), parametreModele.getDateSince());
+					else
+						date = DateTime.daysSinceToDate(Double.parseDouble(donnee.replaceAll(",", ".")), parametreModele.getDateSince());
+				} else {
+					formatDate = formatDate.replaceAll("DD", "dd").replaceAll("YYYY", "yyyy").replaceAll(":MM", ":mm").replaceAll(":SS", ":ss");
+					if (typeDate.equals("Date")) {
+						date = DateTime.stringToDate(donnee, formatDate);
+					} else if (typeDate.equals("Year")) {
+						dateStr = donnee;
+					} else if (typeDate.equals("Month")) {
+						dateStr += (donnee.length()==1?"0":"")+donnee;
+					} else if (typeDate.equals("Day")) {
+						dateStr += (donnee.length()==1?"0":"")+donnee;
+					} else if (typeDate.equals("Hour")) {
+						dateStr += (donnee.length()==1?"0":"")+donnee;
+					} else if (typeDate.equals("Minute")) {
+						dateStr += (donnee.length()==1?"0":"")+donnee;
+					} else if (typeDate.equals("Second")) {
+						dateStr += (donnee.length()==1?"0":"")+donnee;
+					}
+					if (/*date == null && */dateStr.length() == 14) {
+						date = DateTime.stringToDate(dateStr, Constantes.formatDateAAAAMMJJHHMMSS);
+					} else if (dateStr.length() == 12) {
+						date = DateTime.stringToDate(dateStr, Constantes.formatDateAAAAMMJJHHMM);
+					} else if (dateStr.length() == 10) {
+						date = DateTime.stringToDate(dateStr, Constantes.formatDateAAAAMMJJHH);
+					}
+				}
+				if (date != null) {
+					mesureModele.setDate(DateTime.dateToString(date, Constantes.formatDateDefault));
+				}
+//				mesureModele.setFormatDate(formatDate);
+			}
+			// Si la donnÃ©e est un mois
+//			if (nomParam != null && nomParam.equals(Constantes.nomParametreMois)){
+//				formatDate = parametreModele.getFormat();
+//				mesureModele.setMois(donnee);
+//				mesureModele.setFormatMois(formatDate);
+//			}
+			// Si la donnÃ©e est un jour
+//			if (nomParam != null && nomParam.equals(Constantes.nomParametreJour)){
+//				formatDate = parametreModele.getFormat();
+//				mesureModele.setJour(donnee);
+//				mesureModele.setFormatJour(formatDate);
+//			}	
+			// Si la donnÃ©e est une annee
+//			if (nomParam != null && nomParam.equals(Constantes.nomParametreAnnee)){
+//				formatDate = parametreModele.getFormat();
+//				mesureModele.setAnnee(donnee);
+//				mesureModele.setFormatAnnee(formatDate);
+//			}
+			// Si la donnÃ©e est une heure
+//			if (nomParam != null && nomParam.equals(Constantes.nomParametreHeure)){
+//				formatDate = parametreModele.getFormat();
+//				mesureModele.setHeure(donnee);
+//				mesureModele.setFormatHeure(formatDate);
+//			}
+			// Si la donnÃ©e est une minute
+//			if (nomParam != null && nomParam.equals(Constantes.nomParametreMinute)){
+//				formatDate = parametreModele.getFormat();
+//				mesureModele.setMinutes(donnee);
+//				mesureModele.setFormatMinutes(formatDate);
+//			}
+			else if(fonctionParam.equals(Constantes.nomFonctionInsererLoc)) {
+				// Si la donnÃ©e est une latitude
+				if (nomParam.toLowerCase().equals(Constantes.nomParametreLatitude)){
+					mesureModele.setLatitude(donnee);
+				}
+				// Si la donnÃ©e est une longitude
+				else if (nomParam.toLowerCase().equals(Constantes.nomParametreLongitude)){
+					mesureModele.setLongitude(donnee);
+				 }
+				// Si la donnÃ©e est une altitude
+				else if (nomParam.toLowerCase().equals(Constantes.nomParametreAltitude)){
+//					if (!subdiviser){
+						if (donnee.equals(parametreModele.getValAbsente())) {
+							mesureModele.setAltitude("0");
+						} else {
+							mesureModele.setAltitude(donnee);
+						}
+//					} else {
+//						if (mesureModele.getAlts() == null) {
+//							mesureModele.setAlts(new ArrayList<String>());
+//						}
+//						mesureModele.getAlts().add(donnee);
+//					}
+				}
+				// Si la donnÃ©e est une altitude gÃ©opotentielle
+//				else if (nomParam != null && nomParam.equals(Constantes.nomParametreGeop)){
+//					if (mesureModele.getGeops() == null) {
+//						mesureModele.setGeops(new ArrayList<String>());
+//					}
+//					mesureModele.getGeops().add(donnee);
+//				}			
+				// Si la donnÃ©e est une hauteur sol
+				else if (nomParam != null && nomParam.equals(Constantes.nomParametreHauteurSol)){
+					mesureModele.setHauteurSol(donnee);
+				}
+			}
+			// Si la donnÃ©e est une information sur la sequence
+//			else if(fonctionParam.equals(Constantes.nomFonctionInsererSeq)){
+//				mesureModele.setNumSequence(donnee);
+//				Statiques.numSeq = Integer.valueOf(donnee);
+//				lat_s = Nombre.latDoubleToInt(Double.parseDouble(mesureModele.getLatitude()));
+//				lon_s = Nombre.latDoubleToInt(Double.parseDouble(mesureModele.getLongitude()));
+//				alt_s = Nombre.altDoubleToInt(Double.parseDouble(mesureModele.getAltitude()));
+//				if (mesureModele.getHauteurSol() != null) {
+//					hs_s = Nombre.altDoubleToInt(Double.parseDouble(mesureModele.getHauteurSol()));
+//				}
+//				date = DateTime.stringToDate(mesureModele.getDate(), DateTime.convertirFormat(mesureModele.getFormatDate()));
+				// Si c'est une nouvelle sÃ©quence...
+//				if (!donnee.equals(numSequencePrecedent)) {
+					// Si ce n'est pas la premiÃ©re sÃ©quence, on construit la sÃ©quence prÃ©cÃ©dant la nouvelle sÃ©quence
+//					if (Statiques.dateMinSeq != null) {
+//						sequenceModele = new SequenceModele();
+//						sequenceModele.setAltMaxSeq(Statiques.altMaxSeq);
+//						sequenceModele.setAltMinSeq(Statiques.altMinSeq);
+//						sequenceModele.setDateMaxSeq(Statiques.dateMaxSeq);
+//						sequenceModele.setDateMinSeq(Statiques.dateMinSeq);
+						// SÃ©quence ascendante : 1
+						// SÃ©quence descendante : 0
+//						if (Integer.parseInt(numSequencePrecedent) == Constantes.numSequencesAscendante) {
+//							sequenceModele.setDescription(Constantes.descriptionSequencesAscendante);
+//						} else if (Integer.parseInt(numSequencePrecedent) == Constantes.numSequencesDescendante) {
+//							sequenceModele.setDescription(Constantes.descriptionSequencesDescendante);
+//						}
+//						sequenceModele.setHsMaxSeq(Statiques.hsMaxSeq);
+//						sequenceModele.setHsMinSeq(Statiques.hsMinSeq);
+//						sequenceModele.setLatMaxSeq(Statiques.latMaxSeq);
+//						sequenceModele.setLatMinSeq(Statiques.latMinSeq);
+//						sequenceModele.setLonMaxSeq(Statiques.lonMaxSeq);
+//						sequenceModele.setLonMinSeq(Statiques.lonMinSeq);
+//						sequenceModele.setNbMesures(Statiques.nbMesuresSeq);
+//						Statiques.sequencesModeles.add(sequenceModele);
+//					}
+//					Statiques.dateMinSeq = date;
+//					Statiques.dateMaxSeq = date;
+//					Statiques.latMinSeq = lat_s;
+//					Statiques.latMaxSeq = lat_s;
+//					Statiques.lonMinSeq = lon_s;
+//					Statiques.lonMaxSeq = lon_s;
+//					Statiques.altMinSeq = alt_s;
+//					Statiques.altMaxSeq = alt_s;
+//					if (hs_s != null) {
+//						Statiques.hsMinSeq = hs_s;
+//						Statiques.hsMaxSeq = hs_s;
+//					}
+//					Statiques.nbMesuresSeq = 1;
+//				} 
+				// Ce n'est pas une nouvelle sÃ©quence
+//				else {
+					// On calcule les bornes
+//			        if (Statiques.latMinSeq.intValue() > lat_s.intValue()) {
+//			        	Statiques.latMinSeq = lat_s;
+//			        }
+//			        if (Statiques.latMaxSeq.intValue() < lat_s.intValue()) {
+//			        	Statiques.latMaxSeq = lat_s;
+//			        }
+//			        if (Statiques.lonMinSeq.intValue() > lon_s.intValue()) {
+//			        	Statiques.lonMinSeq = lon_s;
+//			        }
+//			        if (Statiques.lonMaxSeq.intValue() < lon_s.intValue()) {
+//			        	Statiques.lonMaxSeq = lon_s;
+//			        }
+//			        if (Statiques.altMinSeq.intValue() > alt_s.intValue()) {
+//			        	Statiques.altMinSeq = alt_s;
+//			        }
+//			        if (Statiques.altMaxSeq.intValue() < alt_s.intValue()) {
+//			        	Statiques.altMaxSeq = alt_s;
+//			        }
+//			        if (hs_s != null && Statiques.hsMinSeq.intValue() > hs_s.intValue()) {
+//			        	Statiques.hsMinSeq = hs_s;
+//			        }
+//			        if (hs_s != null && Statiques.hsMaxSeq.intValue() < hs_s.intValue()) {
+//			        	Statiques.hsMaxSeq = hs_s;
+//			        }
+//			        if (Statiques.dateMinSeq.getTime() > date.getTime()) {
+//			        	Statiques.dateMinSeq = date;
+//			        }
+//			        if (Statiques.dateMaxSeq.getTime() < date.getTime()) {
+//			        	Statiques.dateMaxSeq = date;
+//			        }
+//			        Statiques.nbMesuresSeq++;
+//				}
+//			}
+			// Si la donnÃ©e est un flag validitÃ©
+//			else if(fonctionParam.equals(Constantes.nomFonctionInsererFlagValidite)){
+//				mesureModele.setFlagValidite(donnee);
+//			}
+			// Si la donnÃ©e est une valeur
+			else if(fonctionParam.equals(Constantes.nomFonctionInsererVal)){
+				// 	On vÃ©rifie que la donnÃ©e n'est pas une valeur absente
+				//	if (!donnee.equals(lectureModeleXML.getValeurAbsente())){
+//					numUniteParam = parametreModele.getNumUnite();
+				paramsValeur.add(parametreModele);
+				valeurModele = new ValeurModele();
+//					valeurModele.setNumUnite(numUniteParam);
+				valeurModele.setValeurDelta(parametreModele.getDelta());
+				valeurModele.setValeurLod(parametreModele.getLod());
+				valeurModele.setValeurVal(donnee);
+//					if (subdiviser) {
+//						if (mesureModele.getGeops() != null) {
+//							valeurModele.setValeurFlag("geop_"+mesureModele.getGeops().get(cptNiv-1));
+//						}
+//						if (mesureModele.getAlts() != null) {
+//							valeurModele.setValeurFlag("alt_"+mesureModele.getAlts().get(cptNiv-1));
+//						}
+//					}
+				valeursMesure.add(valeurModele);
+			// }
+			}
+			// Si la donnÃ©e est un delta
+//			else if(fonctionParam.equals(Constantes.nomFonctionInsererDelta)){
+				// On cherche la valeur qui a pour delta cette donnÃ©e
+//				for (int numValeur = 0; numValeur < valeursMesure.size(); numValeur++) {
+//					valeurModele = valeursMesure.get(numValeur);
+					// Si la valeur a pour delta cette donnÃ©e, on attribue le delta Ã© cette valeur
+//					if (nomParam != null && nomParam.equals(valeurModele.getDelta()) 
+//							&& !donnee.equals(lectureModeleXML.getValeurAbsente())) {
+						// Pas de subdivision
+//						if (!subdiviser){
+//							valeurModele.setValeurDelta(donnee);
+//						} 
+						// Cas oÃ© il y a subdivision
+//						else {
+//							valeursMesure.get(numValeur+cptNiv-1).setValeurDelta(donnee);
+//						}
+//						break;
+//					}
+//				}
+//			}
+			mesureModele.setParamsValeur(paramsValeur);
+			mesureModele.setValeursMesure(valeursMesure);
+		}
+		return mesureModele;
+   	}
+	
+	/**
+	 * RÃ©partition de l'objet Mesure
+	 */
+	public Mesure repartirMesure(MesureModele mesureModele, Fichier fichier, ArrayList<Plateforme> plateformes) {
+		Mesure mesure = new Mesure();
+		mesure.setFichier(fichier);
+
+		// Plateforme
+		Plateforme plateforme = null;
+		PlateformeModele plateformeModele = null;
+		// Cas une seule plateforme
+		if (plateformes.size() == 1) {
+			plateforme = plateformes.get(0);
+			plateformeModele = Statiques.plateformesModele.get(0);
+		}
+		// Cas plusieurs plateformes
+		else {
+			for (PlateformeModele platMod: Statiques.plateformesModele){
+				for (Plateforme plat: plateformes){
+					// On cherche la plateforme correspondant au modÃ©le
+					if (plat.getPlateformeNom().equals(platMod.getNom())) {
+						plateforme = plat;
+						break;
+					}
+				}
+				// On cherche la plateforme associÃ©e Ã© la mesure Ã© partir du nom du fichier
+				if (fichier.getFichierNom().toLowerCase().indexOf(platMod.getNom().toLowerCase()) != -1) {
+					plateformeModele = platMod;
+					break;
+				}
+			}
+		}
+		mesure.setPlateforme(plateforme);
+		// Construction de la localisation
+		Localisation localisation = new Localisation();
+		String altitude = mesureModele.getAltitude();
+		String hauteurSol = mesureModele.getHauteurSol();
+		String latitude = mesureModele.getLatitude();
+		String longitude = mesureModele.getLongitude();
+		if (altitude != null) {
+			// Plateforme mobile : une altitude par mesure
+			localisation.setLocalisationAlt(Nombre.altDoubleToInt(Double.valueOf(altitude)).intValue());
+		} else {
+			// Plateforme fixe
+			localisation.setLocalisationAlt(Nombre.altDoubleToInt(Double.valueOf(plateformeModele.getAltMin())).intValue());
+		}
+		if (hauteurSol != null) {
+			// Plateforme mobile : une hauteur sol par mesure
+			localisation.setLocalisationHs(Nombre.altDoubleToInt(Double.valueOf(hauteurSol)).intValue());
+		} else {
+			// Plateforme fixe et la plateforme a une hauteur sol
+			if (plateformeModele.getHsMin() != null && !plateformeModele.getHsMin().trim().equals("")) {
+				localisation.setLocalisationHs(Nombre.altDoubleToInt(Double.valueOf(plateformeModele.getHsMin())).intValue());
+			}
+		}
+		if (latitude != null ) {
+			// Plateforme mobile : une latitude par mesure
+			localisation.setLocalisationLat(Nombre.latDoubleToInt(Double.valueOf(latitude.replaceAll(",","."))).intValue());
+		} else {
+			// Plateforme fixe
+			localisation.setLocalisationLat(Nombre.latDoubleToInt(Double.valueOf(plateformeModele.getLatMin())).intValue());
+		}
+		if (longitude != null) {
+			// Plateforme mobile : une longitude par mesure
+			localisation.setLocalisationLon(Nombre.latDoubleToInt(Double.valueOf(longitude.replaceAll(",","."))).intValue());
+		} else {
+			// Plateforme fixe
+			localisation.setLocalisationLon(Nombre.latDoubleToInt(Double.valueOf(plateformeModele.getLonMin())).intValue());
+		}
+		mesure.setLocalisation(localisation);
+		// Date de la mesure
+		String sdate = mesureModele.getDate();
+//		String sMinutes = mesureModele.getMinutes();
+//		String sheure = mesureModele.getHeure();
+//		String sJour = mesureModele.getJour();
+//		String sMois = mesureModele.getMois();
+//		String sAnnee = mesureModele.getAnnee();
+//		String formatDate = mesureModele.getFormatDate();	
+
+		//si l'heure!=null
+//		if (sMois != null && sJour != null && sAnnee!= null && sheure != null && sMinutes != null){
+//			String formatMinutes = mesureModele.getFormatMinutes();
+//			String formatHeure = mesureModele.getFormatHeure();
+//			String formatJour = mesureModele.getFormatJour();
+//			String formatAnnee = mesureModele.getFormatAnnee();
+//			String formatMois = mesureModele.getFormatMois();
+//			formatDate = formatJour+"/"+formatMois+"/"+formatAnnee+" "+formatHeure+":"+formatMinutes+":SS";
+//			sdate = sJour+"/"+sMois+"/"+sAnnee+" "+sheure+":"+sMinutes+":00";
+//		}else if (sheure != null){
+//			String formatHeure = mesureModele.getFormatHeure();	
+//			formatDate += " "+formatHeure;
+//			sdate += " "+sheure;
+//		}
+		Date date = DateTime.stringToDate(sdate, Constantes.formatDateDefault);//DateTime.convertirFormat(formatDate));
+		mesure.setMesureDate(date);
+		
+		// Mises Ã© jour des extrema: - Dates min et max du jeu
+		if (Statiques.dateMinJeu.getTime() > date.getTime()) {
+        	Statiques.dateMinJeu = date;
+        }
+        if (Statiques.dateMaxJeu.getTime() < date.getTime()) {
+        	Statiques.dateMaxJeu = date;
+        }
+        // On calcule les bornes
+		int lat_j = localisation.getLocalisationLat();
+		int lon_j = localisation.getLocalisationLon();
+		int alt_j = localisation.getLocalisationAlt();
+		Integer hs_j = null;
+		if (localisation.getLocalisationHs() != null) {
+			hs_j = localisation.getLocalisationHs();
+		}
+        // Integer lat = null;
+        if (Statiques.latMinJeu.intValue() > lat_j) {
+        	Statiques.latMinJeu = new Integer(lat_j);
+        }
+        if (Statiques.latMaxJeu.intValue() < lat_j) {
+        	Statiques.latMaxJeu = new Integer(lat_j);
+        }
+        //Integer lon = null;
+        if (Statiques.lonMinJeu.intValue() > lon_j) {
+        	Statiques.lonMinJeu =  new Integer(lon_j);
+        }
+        if (Statiques.lonMaxJeu.intValue() < lon_j) {
+        	Statiques.lonMaxJeu =  new Integer(lon_j);
+        }
+        // Integer alt = null;
+        if (Statiques.altMinJeu.intValue() > alt_j) {
+        	Statiques.altMinJeu =  new Integer(alt_j);
+        }
+        if (Statiques.altMaxJeu.intValue() < alt_j) {
+        	Statiques.altMaxJeu =  new Integer(alt_j);
+        }
+        // Integer hs = null;
+		if (hs_j != null && Statiques.hsMinJeu.intValue() > hs_j.intValue()) {
+        	Statiques.hsMinJeu = hs_j;
+        }
+        if (hs_j != null && Statiques.hsMaxJeu.intValue() < hs_j.intValue()) {
+        	Statiques.hsMaxJeu = hs_j;
+        }
+		return mesure;
+	}
+	
+	/** 
+	 * Traitement des informations valeur 
+	 */
+	public Valeur repartirValeur(Mesure mesure, ValeurModele valeurModele, ParametreModele parametreModele, Parametre parametre, Capteur capteur) {
+		//, String flagValidite, ArrayList<Capteur> capteurs, String codeUnite,ArrayList<String> codesUnite) {
+		Valeur valeur = null;
+		// On vÃ©rifie que la donnÃ©e n'est pas une valeur absente
+		Double valeurVal = Double.valueOf(valeurModele.getValeurVal().replaceAll(",", "."));
+		double valAbs = Double.valueOf(parametreModele.getValAbsente());
+//		System.out.println("val="+valeurVal+", abs="+valAbs+", param="+parametreModele.getNom());
+//		if (!valeurModele.getValeurVal().equals(parametreModele.getValAbsente())) {
+		if (valeurVal.doubleValue() != valAbs) {
+			double coef = 1;
+			if (parametreModele.getCoef() != null) coef = Double.valueOf(parametreModele.getCoef());
+			valeurVal = Nombre.mult(valeurVal, coef);
+			valeur = new Valeur();
+			// CAPTEUR
+//			Capteur capteur = null;
+			// Cas un seul capteur
+//			if (capteurs.size() == 1) {
+//				capteur = capteurs.get(0);
+//			}
+			// Cas plusieurs capteurs
+//			else {
+//				Capteur capt, captPlat;
+//				Parametre paramCapt;
+				// On rÃ©cupÃ©re la liste des capteurs de la plateforme courante
+//				Iterator<Capteur> itCaptPlat = mesure.getPlateforme().getCapteurs().iterator();
+//				Iterator<Parametre> itParamCapt;
+//				while (itCaptPlat.hasNext()) {
+//					captPlat = itCaptPlat.next();
+					// On recherche les capteurs associÃ©s Ã© la plateforme courante
+//					for (int numCapt = 0; numCapt < capteurs.size(); numCapt++) {
+//						capt = capteurs.get(numCapt);
+//						if (capt.getCapteurModele().equals(captPlat.getCapteurModele())
+//								&& capt.getCapteurNumserie().equals(captPlat.getCapteurNumserie())
+//								&& capt.getFabriquant().getFabriquantNom().equals(captPlat.getFabriquant().getFabriquantNom())
+//								&& capt.getTypeCapteur().getTypeCapteurNom().equals(captPlat.getTypeCapteur().getTypeCapteurNom())) {
+							// On recherche le capteur associÃ© au paramÃ©tre de la valeur
+//							itParamCapt = capt.getParametres().iterator();
+//							while (itParamCapt.hasNext()) {
+//								paramCapt = itParamCapt.next();
+//								if (parametre.getParametreCode().equals(paramCapt.getParametreCode())) {
+//									capteur = capt;
+//									break;
+//								}
+//							}
+//						}
+//					}
+//				}
+//			}
+			valeur.setCapteur(capteur);
+			// Flag VALEUR
+			if (valeurModele.getValeurFlag() != null) {
+				Flag flag = new Flag();
+				flag.setFlagNom(valeurModele.getValeurFlag());
+				valeur.setFlagByValeurFlag(flag);
+			}
+			// Flag VALIDITE
+//			if (flagValidite != null) {
+//				int numFlagValidite = Integer.parseInt(flagValidite);
+//				Flag flag = new Flag();
+//				if (numFlagValidite == Constantes.numFlagValiditeBon) {
+//					flag.setFlagNom(Constantes.descriptionFlagValiditeBonne);
+//				} else if (numFlagValidite == Constantes.numFlagValiditeMauvais) {
+//					flag.setFlagNom(Constantes.descriptionFlagValiditeMauvaise);
+//				}
+//				valeur.setFlagByValiditeFlag(flag);
+//			}
+			// MESURE
+			valeur.setMesure(mesure);
+
+			// PARAMETRE
+			valeur.setParametre(parametre);
+
+			// DELTA
+			String valeurDelta = valeurModele.getValeurDelta();
+			if (valeurDelta != null) {
+				valeur.setValeurDelta(Double.valueOf(valeurDelta));
+			}
+			// LOD (Limit Of Detection)
+			String valeurLod = valeurModele.getValeurLod();
+			if (valeurLod != null) {
+				valeur.setValeurLod(Double.valueOf(valeurLod));
+			}
+			// VALEUR
+			String codeUniteModele = parametreModele.getNomUnite();
+			// On compare l'unitÃ© du paramÃ©tre insÃ©rÃ© avec l'unitÃ© du paramÃ©tre contenu dans le modÃ©le
+			String codeUniteParam = parametre.getUnite().getUniteCode();
+			// on recupere l'indice de l'unitÃ© du parametre
+//			int indiceUnite = lectureUnites.getIndice(Integer.parseInt(numUniteParam));
+//			String codeUniteModele = lectureUnites.getCodesUni().get(indiceUnite);
+			// Si les unitÃ©s sont diffÃ©rentes, il y a une conversion Ã© faire
+			if (!codeUniteParam.equals(codeUniteModele)) {
+				if (codeUniteModele.equals(Constantes.unitePPB) && codeUniteParam.equals(Constantes.unitePPM)) {
+					valeurVal = Nombre.divMille(valeurVal);
+				}
+				else if (codeUniteModele.equals(Constantes.unitePPB) && codeUniteParam.equals(Constantes.unitePPT)) {
+					valeurVal = Nombre.mult(valeurVal,1000);
+				}
+				else if (codeUniteModele.equals(Constantes.unitePPT) && codeUniteParam.equals(Constantes.unitePPB)) {
+					valeurVal = Nombre.divMille(valeurVal);
+				}
+				else if (codeUniteModele.equals(Constantes.uniteKelvin) && codeUniteParam.equals(Constantes.uniteCelsius)) {
+					valeurVal = Nombre.kelvinToCelsius(valeurVal);
+				}
+				else if (codeUniteModele.equals(Constantes.unitekPa) && codeUniteParam.equals(Constantes.unitembar)) {
+					valeurVal = Nombre.mult(valeurVal,10);
+				}
+				else if (codeUniteModele.equals(Constantes.unitepm) && codeUniteParam.equals(Constantes.unitepmm)) {
+					valeurVal = Nombre.divMille(valeurVal);
+				}
+				else if (codeUniteModele.equals(Constantes.unitengm_3) && codeUniteParam.equals(Constantes.uniteugm_3)) {
+					valeurVal = Nombre.divMille(valeurVal);
+				}
+			}
+			valeur.setValeurVal(valeurVal.doubleValue());
+		}
+		return valeur;
+	}
+	
+	/**
+	 * Construction de la derniÃ©re sÃ©quence
+	 */              
+	public void repartirDerniereSequence() {
+		if (Statiques.dateMinSeq != null) {
+			SequenceModele sequenceModele = new SequenceModele();
+			sequenceModele.setAltMaxSeq(Statiques.altMaxSeq);
+			sequenceModele.setAltMinSeq(Statiques.altMinSeq);
+			sequenceModele.setDateMaxSeq(Statiques.dateMaxSeq);
+			sequenceModele.setDateMinSeq(Statiques.dateMinSeq);
+			// SÃ©quence ascendante : 1
+			// SÃ©quence descendante : 0
+			if (Statiques.numSeq.intValue() == Constantes.numSequencesAscendante) {
+				sequenceModele.setDescription(Constantes.descriptionSequencesAscendante);
+			} else if (Statiques.numSeq.intValue() == Constantes.numSequencesDescendante) {
+				sequenceModele.setDescription(Constantes.descriptionSequencesDescendante);
+			}
+			sequenceModele.setHsMaxSeq(Statiques.hsMaxSeq);
+			sequenceModele.setHsMinSeq(Statiques.hsMinSeq);
+			sequenceModele.setLatMaxSeq(Statiques.latMaxSeq);
+			sequenceModele.setLatMinSeq(Statiques.latMinSeq);
+			sequenceModele.setLonMaxSeq(Statiques.lonMaxSeq);
+			sequenceModele.setLonMinSeq(Statiques.lonMinSeq);
+			sequenceModele.setNbMesures(Statiques.nbMesuresSeq);
+			Statiques.sequencesModeles.add(sequenceModele);
+		}
+	}
+	
+	/**
+	 *traitement de la sequence
+	 */
+	public Sequence repartirSequence(Jeu jeu, SequenceModele sequenceModele) {
+		Sequence sequence =  new Sequence();
+		String description = sequenceModele.getDescription();
+		if (description != null) {
+			Commentaire commentaireSeq = new Commentaire();
+			commentaireSeq.setCommentaireTxt(description);
+			commentaireSeq.setLangue(Constantes.langueFR);
+			sequence.setCommentaire(commentaireSeq);
+		}
+		sequence.setJeu(jeu);
+		// sequence Altitude Maximale
+		Integer sequenceAltMax = sequenceModele.getAltMaxSeq();
+		sequence.setSequenceAltf(sequenceAltMax);
+		// sequence Altitude Minimale
+		Integer sequenceAltMin = sequenceModele.getAltMinSeq();
+		sequence.setSequenceAltd(sequenceAltMin);
+		// sequence hauteur Sol Maximale
+		Integer sequenceHsMax = sequenceModele.getHsMaxSeq();
+		if (sequenceHsMax != null) {
+			sequence.setSequenceHsf(sequenceHsMax);
+		}
+
+		// sequence hauteur Sol Minimale
+		Integer sequenceHsMin = sequenceModele.getHsMinSeq();
+		if (sequenceHsMin != null) {
+			sequence.setSequenceHsd(sequenceHsMin);
+		}
+		// repartir date max
+		Date sequenceDatef = sequenceModele.getDateMaxSeq();		
+		sequence.setSequenceDatef(sequenceDatef);
+		// rÃ©partir date min
+		Date sequenceDated = sequenceModele.getDateMinSeq();		
+		sequence.setSequenceDated(sequenceDated);
+		
+		// sequence Latitude Minimale
+		Integer sequenceLatd = sequenceModele.getLatMinSeq();
+		sequence.setSequenceLatd(sequenceLatd);
+		// sequence Latitude Maximale
+		Integer sequenceLatf = sequenceModele.getLatMaxSeq();
+		sequence.setSequenceLatf(sequenceLatf);
+		// sequence Longitude Minimale
+		Integer sequenceLond = sequenceModele.getLonMinSeq();
+		sequence.setSequenceLond(sequenceLond);
+		// sequence Longitude Maximale
+		Integer sequenceLonf = sequenceModele.getLonMaxSeq();
+		sequence.setSequenceLonf(sequenceLonf);	
+		
+		return sequence;
+	}
+	
+	public int getCategorieId(String nomCat) {
+		if (nomCat.equals(Constantes.nomCatAVION)) {
+			return Constantes.numCatAVION;
+		} else if  (nomCat.equals(Constantes.nomCatSURF_FIXE)) {
+			return Constantes.numCatSURF_FIXE;
+		} else {
+			return Constantes.numCatSURF_MOBILE;
+		}
+	}
+}
+	
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/utils/Chrono.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/utils/Chrono.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/utils/Chrono.java	(revision 482)
@@ -0,0 +1,48 @@
+/**
+ * Created on 17 Jan. 2007
+  * @author 
+ */
+package integration.utils;
+import integration.lecture_ecriture.EcritureLog;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+
+/**
+ *
+ * Classe permettant de chronomÃ©trer une exÃ©cution
+ */
+
+public class Chrono {
+	Calendar m_start = new GregorianCalendar();
+	Calendar m_stop = new GregorianCalendar();
+	
+	public Chrono() {
+		
+	}
+	
+	// Lance le chronomÃ©tre
+	public void start() {
+		m_start.setTime(new Date());
+	}
+	
+	// ArrÃ©te le chronomÃ©tre
+	public void stop() {
+		m_stop.setTime(new Date());
+	}
+	
+	// Retourne le nombre de secondes sÃ©parant l'appel des mÃ©thodes start() et stop()
+	public float getChrono() {
+		long temps = m_stop.getTimeInMillis() - m_start.getTimeInMillis();
+		
+		return (float)temps/1000;
+	}
+	
+	// Affiche le nombre de secondes sÃ©parant l'appel des mÃ©thodes start() et stop()
+	public void afficheChrono(String message) {
+		if (getChrono() < 0)
+		    EcritureLog.ecrire("Vous n'avez pas arrÃ©tÃ© le chronomÃ©tre !","err");
+		else
+			EcritureLog.ecrire(message+ " **** Temps d'exÃ©cution: "+getChrono()+" secondes","out");
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/utils/CommunicationBD.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/utils/CommunicationBD.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/utils/CommunicationBD.java	(revision 482)
@@ -0,0 +1,321 @@
+/**
+ * Created on 17 Jan. 2007
+  * @author 
+ */
+
+package integration.utils;
+import java.io.Serializable;
+import java.util.List;
+import org.hibernate.*;
+import org.hibernate.criterion.*;
+import integration.hibernate.HibernateSessionFactory;
+
+/**
+ * 
+ * AccÃ©s et Ã©changes avec la base de donnÃ©es
+ */
+
+public class CommunicationBD {
+
+    private static Transaction tx = null;
+    private static Session session = null;
+    
+    /**
+     * Ouverture de la session
+     */
+    public static void open() throws Exception {
+        try {
+            session =  HibernateSessionFactory.currentSession();
+            tx = session.beginTransaction();
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw (e);
+        }
+    }
+    
+    /**
+     * Fermeture de la session
+     */   
+    public static void close() throws Exception {
+        try {
+        	tx.commit();
+            HibernateSessionFactory.closeSession();
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw (e);
+        }
+    }
+ 
+    /**
+     * RequÃ©te de sÃ©lection sur une table
+     * SELECT * FROM table;
+     * Renvoie la liste des tuples de la table
+     */
+    public static List<?> getAllList(Class<?> aClass) throws Exception {
+        List<?> results = null;
+        try {
+        	//tx = session.beginTransaction();
+            results = session.createCriteria(aClass).list();
+            //tx.commit();
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw (e);
+        }
+        return results;
+        
+    }
+    /**
+     * RequÃ©te de sÃ©lection ordonnÃ©e sur une table
+     * SELECT * FROM table ORDER BY colonne;
+     * Renvoie la liste des tuples de la table
+     */
+    public static List<?> getOrderedList(Class<?> aClass, String column)
+    throws Exception {
+        List<?> results = null;
+        try {
+        	//tx = session.beginTransaction();
+            results = session.createCriteria(aClass).addOrder(Order.asc(column)).list();
+            //tx.commit();
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw (e);
+        }
+        return results;
+    }
+
+    /**
+     * RequÃ©te de sÃ©lection HQL (Hibernate Query Language)
+     * Renvoie la liste des tuples rÃ©sultants
+     */
+    public static List<?> getList(String requete)
+    throws Exception {
+        List<?> results = null;
+        try {
+        	//tx = session.beginTransaction();
+            results = session.createQuery(requete).list();
+            //tx.commit();
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw (e);
+        }
+        return results;
+    }
+
+    public static void getSQL(String requete)
+    throws Exception {
+        try {
+        	//tx = session.beginTransaction();
+            session.createSQLQuery(requete).uniqueResult();
+            //tx.commit();
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw (e);
+        }
+    }
+    
+    /**
+     * RequÃ©te de sÃ©lection d'un objet issu d'une table Ã© partir de contraintes
+     * SELECT * FROM table WHERE nomColonne=...
+     * Renvoie le tuple recherchÃ© sous forme d'objet
+     */
+    public static Object getObjectByColonne(Class<?> c,String nomColonne,Object valeur) 
+    {
+        Object object =null;
+        try
+        {
+        	//tx = session.beginTransaction();
+            object = session.createCriteria(c)
+                .add(Restrictions.eq(nomColonne, valeur))
+                .uniqueResult();
+            //tx.commit();
+        }
+        catch(Exception e) 
+        {
+            e.printStackTrace();
+            return null;
+        }
+        return object;
+    }
+
+    /**
+     * RequÃ©te de sÃ©lection d'un objet issu d'une table Ã© partir de contraintes
+     * SELECT * FROM table WHERE nomColonne1=... AND nomColonne2=...
+     * Renvoie le tuple recherchÃ© sous forme d'objet
+     */
+    public static Object getObjectBy2Colonne(Class<?> c,String nomColonne,Object valeur,String nomColonne2,Object valeur2) 
+    {
+        Object object =null;
+        try
+        {
+        	//tx = session.beginTransaction();
+            object  = session.createCriteria(c)
+                .add(Restrictions.eq(nomColonne, valeur))
+                .add(Restrictions.eq(nomColonne2, valeur2))
+                .uniqueResult();
+            //tx.commit();
+        }
+        catch(Exception e) 
+        {
+            e.printStackTrace();
+            return null;
+        }
+        return object;
+    }
+    
+    /**
+     * RequÃ©te de sÃ©lection d'un objet issu d'une table Ã© partir de son identifiant
+     * SELECT * FROM table WHERE table_id=...
+     * Renvoie le tuple recherchÃ© sous forme d'objet
+     */
+    public static Object getObjectById(Class<?> c,Integer id) 
+    {
+        Object object =null;
+        try
+        {
+        	//tx = session.beginTransaction();
+            object  = session.get(c,id);
+            //tx.commit();
+        }
+        catch(Exception e) 
+        {
+            e.printStackTrace();
+            return null;
+        }
+        return object;
+    }
+    
+    /**
+     * Insertion ou mise Ã© jour d'un objet (<=> tuple)
+     * INSERT INTO table VALUES (...)
+     * UPDATE table SET ...
+     */
+    public static void save(Object o) throws Exception
+    {
+        try
+        {
+        	//tx = session.beginTransaction();
+        	session.saveOrUpdate(o);
+        	//tx.commit();
+        }
+        catch(Exception e) 
+        {
+            e.printStackTrace();
+            throw(e);
+        }
+    }
+    
+    /**
+     * Insertion ou mise Ã© jour d'un objet (<=> tuple)
+     * INSERT INTO table VALUES (...)
+     */
+    public static void saveOnly(Object o) throws Exception
+    {
+        try
+        {
+        	//tx = session.beginTransaction();
+        	session.save(o);
+        	//tx.commit();
+        }
+        catch(Exception e) 
+        {
+            e.printStackTrace();
+            throw(e);
+        }
+    }
+    
+    /**
+     * Suppression d'un objet (<=> tuple)
+     * DELETE FROM table WHERE (...)
+     */
+    public static void delete(Object o) throws Exception
+    {
+        try
+        {
+        	//tx = session.beginTransaction();
+            session.delete(o);
+            //tx.commit();
+        }
+        catch(Exception e) 
+        {
+            e.printStackTrace();
+            throw(e);
+        }
+    }
+
+    /**
+     * Insertion d'un objet Ã© un identifiant donnÃ©
+     * @throws Exception 
+     */
+    public static void save(Object o,Serializable id) throws Exception {
+        try
+        {
+        	//tx = session.beginTransaction();
+            id = session.save(o);
+            //tx.commit();
+        }
+        catch(Exception e) 
+        {
+            e.printStackTrace();
+            throw(e);
+        }
+    }
+    
+    /**
+     * Mise Ã© jour d'un objet Ã© un identifiant donnÃ©
+     * @throws Exception 
+     */
+    public static void update(Object o) throws Exception {
+        try
+        {
+        	//tx = session.beginTransaction();
+            session.update(o);
+            //tx.commit();
+        }
+        catch(Exception e) 
+        {
+            e.printStackTrace();
+            throw(e);
+        }
+    }
+
+    /**
+     * Nettoyage de la session
+     * @throws Exception 
+     */
+    public static void clear() throws Exception {
+        try
+        {
+        	//tx = session.beginTransaction();
+            session.clear();
+            //tx.commit();
+        }
+        catch(Exception e) 
+        {
+            e.printStackTrace();
+            throw(e);
+        }
+    }
+    
+    /**
+     * Sauvegarde de la base de donnÃ©es
+     */
+    public static void commit() throws Exception
+    {
+        try
+        {
+            tx.commit();
+        }
+        catch(Exception e) 
+        {
+            e.printStackTrace();
+            throw(e);
+        }
+    }
+    
+    /**
+     * VÃ©rifie si un objet est dÃ©jÃ© dans la session
+     */
+    public static void flush() {
+    	session.flush();
+    }
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/utils/Constantes.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/utils/Constantes.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/utils/Constantes.java	(revision 482)
@@ -0,0 +1,226 @@
+/**
+ * Created on 15 Jan. 2007 
+ *  @author
+ */
+
+package integration.utils;
+import integration.hibernate.Langue;
+
+import java.io.File;
+
+/**
+ * 
+ * Classe regroupant les attributs statiques utilisÃ©s
+ */
+
+public class Constantes {
+	// *******************************************************************************************************
+	// CatÃ©gories des jeux Ã© traiter 																		 *
+	// 1 | AVION 																							 *
+	// 2 | SURF_FIXE 																						 *
+	// 3 | SURF_MOBILE																						 *
+	// *******************************************************************************************************
+	public final static int numCatAVION = 1;
+	public final static int numCatSURF_FIXE = 2;
+	public final static int numCatSURF_MOBILE = 3;
+	public final static String nomCatAVION = "AVION";
+	public final static String nomCatSURF_FIXE = "SURF_FIXE";
+	public final static String nomCatSURF_MOBILE = "SURF_MOBILE";
+
+	/** Chemin d'accÃ©s aux donnÃ©es brutes dÃ©posÃ©es */
+	public static String cheminDonnees;
+	/** Chemin d'accÃ©s aux donnÃ©es modifiÃ©es relatif au depÃ©t : donnÃ©es insÃ©rÃ©es dans la base.*/
+	public static String cheminDonneesSortie;
+	/** Chemin des modÃ©les XML */
+	public static String cheminModeles;
+	/** Chemin des listes : fichiers .xls */
+	public static String cheminListes;
+	/** Chemin logs */
+	public static String cheminFichierSortie;
+
+	/** Noms des listes EXCEL */
+	public final static String nomListeCapteurs = "capteurs.xls";
+	public final static String nomListeUnites = "unites.xls";
+	public final static String nomListeOrganismes = "organismes.xls";
+	public final static String nomListeParametres = "parametres.xls";
+	public final static String nomListePersonnes = "personnes.xls";
+	public final static String nomListePlateformes = "plateformes.xls";
+
+	/** DÃ©limiteurs */
+	public final static String delimiteurXLS = ",";
+	public final static String delimiteur1 = " ";
+	public final static String delimiteur2 = "\\t";
+	public final static String delimiteur22 = "\t";
+	
+	/** Fichier texte contenant la trace de l'insertion du jeu */
+	public static File fichierSortie;
+
+	/** Latitude minimale autorisÃ©e */
+	public final static double latitudeMini = -90;
+	/** Latitude maximale autorisÃ©e */
+	public final static double latitudeMaxi = 90;
+	
+	/** Longitude minimale autorisÃ©e */
+	public final static double longitudeMini = -180;
+	/** Longitude maximale autorisÃ©e */
+	public final static double longitudeMaxi = 180;
+	
+	/** Altitude minimale autorisÃ©e */
+	public final static double altitudeMini = -1000;
+	/** Altitude maximale autorisÃ©e */
+	public final static double altitudeMaxi = 35000;
+
+	/** hauteur sol maximale autorisÃ©e */
+	public final static double hsMaxi = 35000;
+	/** hauteur sol  minimale autorisÃ©e */
+	public final static double hsMini = -1000;
+	
+	public final static String datePlusInf = "01/01/2500 00:01:00";
+	public final static String dateMoinsInf = "01/01/1970 00:00:01";
+
+	/** Latitude minimale autorisÃ©e */
+	public final static double latitudePlusInf = 91;
+	/** Latitude maximale autorisÃ©e */
+	public final static double latitudeMoinsInf = -91;
+	
+	/** Longitude minimale autorisÃ©e */
+	public final static double longitudePlusInf = 181;
+	/** Longitude maximale autorisÃ©e */
+	public final static double longitudeMoinsInf = -181;
+	
+	/** Altitude minimale autorisÃ©e */
+	public final static double altitudePlusInf = 35001;
+	/** Altitude maximale autorisÃ©e */
+	public final static double altitudeMoinsInf = -1001;
+
+	/** hauteur sol maximale autorisÃ©e */
+	public final static double hsPlusInf = 35001 ;
+	/** hauteur sol  minimale autorisÃ©e */
+	public final static double hsMoinsInf = -1001;
+	
+	/** nobres de secondes autorisÃ©es */
+	public final static double nbSecondesMaxi = 86400;
+	
+	/** sequences ascendantes */
+	public final static String descriptionSequencesAscendante = "SÃ©quence ascendante";
+	/** sequences descendantes */
+	public final static String descriptionSequencesDescendante = "SÃ©quence descendante";
+	/** identifiant de la sequence ascendante */
+	public final static int numSequencesAscendante = 1;
+	/** identifiant de la sequence descendante */
+	public final static int numSequencesDescendante = 0;
+	/** description du flag validitÃ© : bonne */
+	public final static String descriptionFlagValiditeBonne = "Good observation";
+	/** description du flag validitÃ© : mauvaise */
+	public final static String descriptionFlagValiditeMauvaise = "Bad observation";
+	
+	/** Flag validitÃ© */
+	/** numero du flag validitÃ© : bon = 0 */
+	public final static int numFlagValiditeBon = 0;
+	/** numero du flag validitÃ© : mauvais = 1 */
+	public final static int numFlagValiditeMauvais = 1;
+	
+	/** Formats de date */
+	public final static String formatAAAAMMJJHHMMSS = "AAAAMMJJHHMMSS";
+	public final static String formatDateAAAAMMJJHHMMSS = "yyyyMMddHHmmss";
+	public final static String formatDateAAAAMMJJHHMM = "yyyyMMddHHmm";
+	public final static String formatDateAAAAMMJJHH = "yyyyMMddHH";
+	/**Format de date standard */
+	public final static String formatJJMMAAAAHHMMSS = "JJ/MM/AAAA HH:MI:SS";
+	public final static String formatDateJJMMAAAAHHMMSS = "dd/MM/yyyy HH:mm:ss";
+	public final static String formatDateJJMMAAAAHHMM = "dd/MM/yyyy HH:mm";
+	public final static String formatDateDefault = "yyyy-MM-dd HH:mm:ss z";
+	/**Format de  date du jeu cpc 3010*/
+	/**Format jour*/
+	public final static String formatJJMMAA ="JJ/MM/AA";
+	public final static String formatDateJJMMAA = "dd/MM/yy";
+	
+	/**Format heure*/
+	public final static String formatHHMMSS ="HH:MM:SS";
+	public final static String formatDateHHMMSS = "HH:mm:ss";
+	
+	/**Format jour + heure */
+	public final static String formatJJMMAAHHMMSS = "JJ/MM/AA HH:MM:SS";
+	public final static String formatDateJJMMAAHHMMSS = "dd/MM/yy HH:mm:ss";
+	
+	/**Format mois */
+	public final static String formatMM ="MM";
+	public final static String formatDateMM = "MM";
+	
+	/**Format jours */
+	public final static String formatJJ ="JJ";
+	public final static String formatDateJJ = "dd";
+
+	/**Format annÃ©e */
+	public final static String formatAAAA ="AAAA";
+	public final static String formatDateAAAA = "yyyy";
+	
+	/**Format heures */
+	public final static String formatHH ="HH";
+	public final static String formatDateHH = "HH";
+	
+	/**Format minutes */
+	public final static String formatMI ="MI";
+	public final static String formatDateMI = "mm";
+	
+	/** Infos paramÃ©tres */
+	public final static String nomFonctionDate = "date";
+	public final static String nomParametreHeure = "heure";
+	public final static String nomParametreJour = "jour";
+	public final static String nomParametreAnnee = "annee";
+	public final static String nomParametreMinute = "minute";
+	public final static String nomParametreMois = "mois";
+	public final static String nomParametreLatitude = "latitude";
+	public final static String nomParametreLongitude = "longitude";
+	public final static String nomParametreAltitude = "altitude";
+	public final static String nomParametreGeop = "geop";
+	public final static String nomParametreHauteurSol = "height";
+	public final static String nomFonctionInsererVal= "inserer_valeur";
+	public final static String nomFonctionInsererSeq = "inserer_sequence";
+	public final static String nomFonctionInsererMes = "inserer_mesure";
+	public final static String nomFonctionInsererLoc = "inserer_Loc";
+	public final static String nomFonctionInsererDelta = "delta";
+	public final static String nomFonctionInsererFlagValidite = "flag_validite";
+	public final static String nomFonctionNone = "none";
+	
+	/** Encodage par dÃ©faut */
+	public final static String encodageDefaut = "ISO-8859-1";
+	
+	/**Langue (FranÃ©ais par dÃ©faut) */
+	public final static Langue langueFR = new Langue("fr", "FranÃ©ais");
+	public final static Langue langueEN = new Langue("en", "English");
+	
+	/** indices de rangement des personnes */
+	public final static int indiceIntegrateur = 0;
+	public final static int indiceContact = 1;
+	public final static int indicePI = 2;
+	
+    /** Domaine de la catÃ©gorie du paramÃ©tre */
+	public final static String domaineCategorieParam = "http://gcmd.gsfc.nasa.gov/Resources/valids/archives/keyword_list.html";
+	/** unitÃ©s */
+	public final static String uniteKelvin = "Ã©K";
+	public final static String uniteCelsius = "Ã©C";
+	public final static String unitePPT = "pptv";
+	public final static String unitePPB = "ppbv";
+	public final static String unitePPM = "ppmv";
+	public final static String unitekPa = "kPa";
+	public final static String unitembar = "mbar";
+	public final static String unitepm = "m-1";
+	public final static String unitepmm = "mm-1";
+	public final static String unitengm_3 = "ng.m-3";
+	public final static String uniteugm_3 = "ug.m-3";
+	/** les fonctions */
+	public final static String fonctionSubdiviser = "subdiviser";
+	
+	/** Objet inconnu */
+	public final static String unknown = "UNKNOWN";
+	
+	/** Types de plateformes */
+	public final static int typePlatFixID = 1;
+	public final static int typePlatMobID = 2;
+	public final static String typePlatFix = "FIXED";
+	public final static String typePlatMob = "MOBILE";
+	
+	/** Extensions fichiers NASA-AMES */
+	public final static String extFileNASAAMES = "na";
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/utils/DateTime.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/utils/DateTime.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/utils/DateTime.java	(revision 482)
@@ -0,0 +1,230 @@
+/**
+ * Created on 25 Jan. 2007
+ * @author 
+ */
+
+package integration.utils;
+import java.text.*;
+import java.util.*;
+
+/**
+ * 
+ * Fournit des opÃ©rations sur les dates.
+ */
+
+public class DateTime {
+    /**
+     * DÃ©finit si une string est une date.
+     * @param date String Ã© vÃ©rifier.
+     * @param format Format attendu de la date.
+     * @return Vrai si c'est une date valide.
+     */
+    public static Date isDate(String date, String format) {
+        SimpleDateFormat sd = new SimpleDateFormat(format);
+        sd.setLenient(false);
+        try {
+            Date d = sd.parse(date);
+            return d;
+        } catch (ParseException e) {
+            return null;
+        }
+    }
+    
+    /**
+     * Convertit un String en date au format donnÃ©
+     */
+    public static Date stringToDate(String sdate, String format) {
+        Date date = new Date();
+        SimpleDateFormat sdf =new SimpleDateFormat(format);
+        try {
+            date = sdf.parse(sdate);
+        }
+        catch(Exception e) {
+            return null;
+        }
+        return date;
+    }
+    
+    /**
+     * Convertit une date en String contenant la date au format donnÃ©
+     */
+    public static String dateToString(Date date, String format) {
+        SimpleDateFormat sdf = new SimpleDateFormat(format);
+        if (date == null) {
+            return null;
+        }
+        return sdf.format(date);
+    }
+    
+    /**
+     * Change le format d'une date
+     */
+    public static Date changeFormat(Date date, String format) {
+        return stringToDate(dateToString(date, format),format);
+    }
+    
+    /**
+     * Compare 2 dates au format donnÃ©
+     * @return vrai si sdate1 est plus grand que sdate2
+     */
+    public static boolean plusGrand(String sdate1,String sdate2, String format) {
+        Date date1 =  stringToDate(sdate1,format);
+        Date date2 =  stringToDate(sdate2,format);
+        return date1.after(date2);
+    }
+    
+    /**
+     * Compare 2 dates
+     * @return vrai si date1 est plus grand que date2
+     */
+    public static boolean plusGrand(Date date1,Date date2) {
+        return date1.after(date2);
+    }
+    
+    /**
+     * Renvoie la date d'aujourd'hui + 2 mois
+     */
+    public static String getMinimalDate(String format) {
+        Calendar c = Calendar.getInstance();
+        c.add(Calendar.MONTH,2);
+        return dateToString(c.getTime(),format);
+    }
+    
+    /**
+     * Convertit un date au format MM/AAAA en format JJ/MM/AAAA
+     */
+    public static String dateMoisToJour(String dateMois) {
+        String dateJour = null;
+        // On rÃ©cupÃ©re le mois et l'annÃ©e
+        int mois = Integer.parseInt(dateMois.substring(0,2));
+        int annee = Integer.parseInt(dateMois.substring(3));
+        if (mois < 12) {
+            // Pour un mois donnÃ©, on choisit comme date le 1er jour du mois suivant
+            mois++;
+        } else {
+            // Si on est en fin d'annÃ©e, on incrÃ©mente l'annÃ©e
+            mois = 1;
+            annee++;
+        }
+        // On s'arrange pour avoir un mois Ã© 2 caractÃ©res
+        String MM = String.valueOf(mois);
+        if (MM.length() != 2) {
+            MM = "0" + MM;
+        }
+        // On s'arrange pour avoir une annÃ©e Ã© 4 caractÃ©res
+        String AAAA = String.valueOf(annee);
+        while (AAAA.length() < 4) {
+            AAAA = "0" + AAAA;
+        }
+        if (AAAA.length() == 4) {
+            dateJour = "01/"+MM+"/"+AAAA;
+        } else {
+            // Cas extrÃ©me oÃ© on aurait une date Ã© 5 caractÃ©res
+            dateJour = "31/12/9999";
+        }
+        return dateJour;
+    }
+
+    /**
+     * Renvoie la date d'aujourd'hui - 6 mois
+     */
+    public static String getSixMonthsDate(String format) {
+        Calendar c = Calendar.getInstance();
+        c.add(Calendar.MONTH,-6);
+        return dateToString(c.getTime(),format);
+    }
+    
+    /**
+     * Convertit le format de date spÃ©cifiÃ© en format de date JAVA
+     */
+    public static String convertirFormat(String formatDate) {
+    	String formatDateJava = null;
+        if (formatDate.equals(Constantes.formatAAAAMMJJHHMMSS)) {
+        	formatDateJava = Constantes.formatDateAAAAMMJJHHMMSS;
+        }else if (formatDate.equals(Constantes.formatJJMMAA)) {
+        	formatDateJava = Constantes.formatDateJJMMAA;
+        }else if (formatDate.equals(Constantes.formatHHMMSS)) {
+        	formatDateJava = Constantes.formatDateHHMMSS;
+        }else if (formatDate.equals(Constantes.formatJJMMAAHHMMSS)) {
+        	formatDateJava = Constantes.formatDateJJMMAAHHMMSS;
+        }else if (formatDate.equals(Constantes.formatJJMMAAAAHHMMSS)) {
+        	formatDateJava = Constantes.formatDateJJMMAAAAHHMMSS;
+        }else if (formatDate.equals(Constantes.formatMM)) {
+        	formatDateJava = Constantes.formatDateMM;
+        } else if (formatDate.equals(Constantes.formatJJ)) {
+    	formatDateJava = Constantes.formatDateJJ;
+        }else if (formatDate.equals(Constantes.formatAAAA)) {
+        	formatDateJava = Constantes.formatDateAAAA;
+        }else if (formatDate.equals(Constantes.formatHH)) {
+        	formatDateJava = Constantes.formatDateHH;
+        }else if (formatDate.equals(Constantes.formatMI)) {
+        	formatDateJava = Constantes.formatDateMI;
+        }
+        // COMPLETER
+        return formatDateJava;
+    }
+
+    /**
+     * Convertir un nombre de secondes depuis une date donnÃ©e en date
+     */
+    public static Date secondsSinceToDate(double seconds, Date dateSince) {
+    	long nbmilsec = dateSince.getTime() + Math.round(seconds)*1000;
+    	Date date = new Date(nbmilsec);
+    	return date;
+    }
+    
+    /**
+     * Convertir un nombre d'heures depuis une date donnÃ©e en date
+     */
+    public static Date hoursSinceToDate(double hours, Date dateSince) {
+    	long nbmilsec = dateSince.getTime() + Math.round(hours*3600)*1000;
+    	Date date = new Date(nbmilsec);
+    	return date;
+    }
+    
+    /**
+     * Convertir un nombre de jours depuis une date donnÃ©e en date
+     */
+    public static Date daysSinceToDate(double days, Date dateSince) {
+    	long nbmilsec = dateSince.getTime() + Math.round(days*24*3600)*1000;
+    	Date date = new Date(nbmilsec);
+    	return date;
+    }
+    
+    /**
+     * DÃ©terminer si une annÃ©e est bissextile ou pas
+     */
+    public static boolean estBissextile(double years) {
+    	if(((years % 4 == 0) && (years % 100 != 0)) || (years % 400 ==0)) {
+    	 	return true;
+    	} else {
+    		return false;
+    	}
+    	} 
+
+    /**
+     * Convertir un nombre d'annÃ©es depuis une date donnÃ©e en date
+     */
+    public static Date yearsSinceToDate(double years, Date dateSince) {
+    	double days = 0;
+    	int yearSince = Integer.parseInt(DateTime.dateToString(dateSince, "yyyy"));
+    	int yearEnd = (int)Math.floor(yearSince+years);
+    	for (int i = yearSince; i < yearEnd; i++) {
+    		if (estBissextile(i)) {
+    			days += 366;
+    		}else {
+    			days += 365;
+    		}
+    	}
+    	double residu = years - (double)(yearEnd-yearSince);
+    	if (estBissextile(yearEnd)) {
+        	days += residu * 366.0;
+		}else {
+	    	days += residu * 365.0;
+		}
+    	long nbmilsec = dateSince.getTime() + Math.round(days*24*3600)*1000;
+    	Date date = new Date(nbmilsec);
+    	//EcritureLog.ecrire("years="+years+", days="+days+", date="+DateTime.dateToString(date, "dd/MM/yyyy HH:mm:ss"),"out");
+    	return date;
+    }
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/utils/Nombre.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/utils/Nombre.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/utils/Nombre.java	(revision 482)
@@ -0,0 +1,244 @@
+/**
+ * Created on 24 Jan. 2007
+ * @author 
+ */
+package integration.utils;
+
+import java.math.BigDecimal;
+
+/**
+ *
+ * Fournit des opÃ©rations sur les nombres.
+ */
+
+public class Nombre {
+	
+    /**
+     * VÃ©rifie qu'une donnÃ©e est un entier.
+     * @param nb Nombre Ã© vÃ©rifier.
+     * @return Vrai si la donnÃ©e est un entier.
+     */
+    public static boolean isInteger(String nb) {
+        try {
+            Integer.parseInt(nb);
+            return true;
+        } catch(NumberFormatException e) {
+            return false;
+        }
+    }
+    public static boolean isIntegerPositif(String nb) {
+        try {
+        	if (nb.endsWith(".0")) nb = nb.replaceAll("\\.0", "");
+        	int integer = Integer.parseInt(nb);
+            if(integer < 0) {
+                return false;
+            }
+            return true;
+        } catch(NumberFormatException nfe) {
+            return false;
+        }
+    }
+    
+    /**
+     * VÃ©rifie qu'une donnÃ©e est un entier long.
+     * @param nb Nombre Ã© vÃ©rifier.
+     * @return Vrai si la donnÃ©e est un entier long.
+     */
+    public static boolean isLong(String nb) {
+        try {
+            Long.parseLong(nb);
+            return true;
+        } catch(NumberFormatException e) {
+            return false;
+        }
+    }
+    
+    /**
+     * Verifie qu'une donnÃ©e est un double.
+     * @param nb Nombre Ã© vÃ©rifier.
+     * @return Vrai si la donnÃ©e est un double.
+     */
+    public static boolean isDouble(String nb) {
+        try {
+            Double.parseDouble(nb.replaceAll(",", "."));
+            return true;
+        } catch(NumberFormatException e) {
+            return false;
+        }
+    }
+
+    /**
+     * Verifie qu'un double est positif
+     * @param nb Nombre Ã© vÃ©rifier.
+     * @return Vrai si la donnÃ©e est dans l'intervalle.
+     */
+    public static boolean isDoublePositif(String nb) {
+        try {
+            double temp = new Double(nb.replaceAll(",", ".")).doubleValue();
+            if(temp < 0) {
+                return false;
+            }
+            return true;
+        } catch(NumberFormatException nfe) {
+            return false;
+        }
+    }
+    
+    /**
+     * Verifie qu'un double est dans un intervalle.
+     * @param nb Nombre Ã© vÃ©rifier.
+     * @param min Borne infÃ©rieure de l'intervalle.
+     * @param max Borne supÃ©rieure de l'intervalle.
+     * @return Vrai si la donnÃ©e est dans l'intervalle.
+     */
+    public static boolean isDoubleInInterval(String nb, double min, double max) {
+        try {
+            double temp = new Double(nb.replaceAll(",", ".")).doubleValue();
+            if(temp > max || temp < min) {
+                return false;
+            }
+            return true;
+        } catch(NumberFormatException nfe) {
+            return false;
+        }
+    }
+
+    /**
+     * Transforme un chaine en double.
+     * @param str Chaine Ã© transformer.
+     * @return Double gÃ©nÃ©rÃ©, null si ce n'est pas un double.
+     */
+    public static Double getDouble(String str) {
+        if(str.length() == 0 || str == null) {
+            return null;
+        }
+        try {
+            return new Double(str.replaceAll(",", "."));
+        } catch(NumberFormatException e) {
+            return null;
+        }
+    }
+
+    /**
+     * Transforme un chaine en double et le met en valeur absolue.
+     * @param str Chaine Ã© transformer.
+     * @return Double en valeur absolue gÃ©nÃ©rÃ©, null si ce n'est pas un double.
+     */
+    public static Double getAbsDouble(String str) {
+        if(str.length() == 0 || str == null) {
+            return null;
+        }
+        try {
+            Double db = new Double(str.replaceAll(",", "."));
+            return new Double(Math.abs(db.doubleValue()));
+        } catch(NumberFormatException e) {
+            return null;
+        }
+    }
+
+    /**
+     * Transforme un chaine en integer.
+     * @param str Chaine Ã© transformer.
+     * @return Integer gÃ©nÃ©rÃ©, null si ce n'est pas un integer.
+     */
+    public static Integer getInteger(String str) {
+        if(str.length() == 0 || str == null) {
+            return null;
+        }
+        try {
+            return new Integer(str);
+        } catch(NumberFormatException e) {
+            return null;
+        }
+    }
+    
+    /**
+     * Convertit une latitude ou longitude de Double vers Integer.
+     * @param val Double  convertir.
+     * @return Valeur convertie en Integer.
+     */
+    public static Integer latDoubleToInt(Double val) {
+        return new Integer((int)((val.doubleValue() + 0.0005) * 10000.0));
+    }
+
+    /**
+     * Convertit une latitude ou longitude de Integer vers Float.
+     * @param val Integer  convertir.
+     * @return Valeur convertie en Float.
+     */
+    public static Float latIntToFloat(Integer val) {
+        return new Float(((val.intValue() / 10000.0) - 0.0005));
+    }
+
+    /**
+     * Convertit une altitude ou une hauteur sol de Double vers Integer.
+     * @param val Double  convertir.
+     * @return Valeur convertie en Integer.
+     */
+    public static Integer altDoubleToInt(Double val) {
+        return new Integer((int)((val.doubleValue() + 0.05) * 100.0));
+    }
+
+    /**
+     * Convertit une altitude de Integer vers Float.
+     * @param val Integer  convertir.
+     * @return Valeur convertie en Float.
+     */
+    public static Float altIntToFloat(Integer val) {
+        return new Float(((val.intValue() / 100.0) - 0.05));
+    }
+    
+    /**
+     * Convertit une tempÃ©rature exprimÃ©e en degrÃ©s Kelvin en degrÃ©s Celsius.
+     * @param val Integer  convertir.
+     * @return Valeur convertie en Float.
+     */
+    public static Double kelvinToCelsius(Double kelvin) {
+        return new Double(kelvin.doubleValue() - 273.16);
+    }
+
+    /**
+     * Divise par 1000 la valeur
+     */
+    public static Double divMille(Double val) {
+    	BigDecimal bd = new BigDecimal(val.doubleValue());
+    	bd = bd.divide(new BigDecimal(1000),10,BigDecimal.ROUND_HALF_EVEN);
+    	Double d = new Double(bd.toString());
+        return d;
+    }
+    
+    /**
+     * Multiplie par multi la valeur
+     */
+    public static Double mult(Double val,int multi) {
+    	BigDecimal bd = new BigDecimal(val.doubleValue());
+    	bd = bd.multiply(new BigDecimal(multi));
+    	Double d = new Double(bd.toString());
+        return d;
+    }
+  
+    public static Double mult(Double val,double multi) {
+    	BigDecimal bd = new BigDecimal(val.doubleValue());
+    	bd = bd.multiply(new BigDecimal(multi));
+    	Double d = new Double(bd.toString());
+        return d;
+    }
+    
+    /**
+     * Convertit une altitude gÃ©opotentielle en altitude en mÃ©tres
+     */
+    public static Double geopToAltitude(Double geop) {
+        return new Double(geop.doubleValue() / 9.8);
+    }
+    public static Double getAbDouble(String str) {
+        if(str.length() == 0 || str == null) {
+            return null;
+        }
+        try {
+            Double db = new Double(str.replaceAll("--", "."));
+            return new Double(Math.abs(db.doubleValue()));
+        } catch(NumberFormatException e) {
+            return null;
+        }
+    }
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/utils/Statiques.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/utils/Statiques.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/utils/Statiques.java	(revision 482)
@@ -0,0 +1,79 @@
+/**
+ * Created on 24 Jan. 2007
+ * @author 
+ */
+
+package integration.utils;
+import integration.vues.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.Set;
+
+/** 
+ * Classe regroupant les attributs statiques utilisÃ©s
+ */
+
+public class Statiques {
+	/**dates du jeu*/
+	public static Date dateMinJeu = null;
+	public static Date dateMaxJeu = null;
+	/**public static Date jeuDateinser = null;
+	public static Date jeuDatemodif = null;*/
+	public static Integer latMinJeu = null;
+	public static Integer latMaxJeu = null;
+	public static Integer lonMinJeu = null;
+	public static Integer lonMaxJeu = null;
+	public static Integer altMinJeu = null;
+	public static Integer altMaxJeu = null;
+	public static Integer hsMinJeu = null;
+	public static Integer hsMaxJeu = null;
+	/**bilan*/
+	public static Date dateMinBilan = null;
+	public static Date dateMaxBilan = null;
+	public static Integer latMinBilan = null;
+	public static Integer latMaxBilan = null;
+	public static Integer lonMinBilan = null;
+	public static Integer lonMaxBilan = null;
+	public static Integer altMinBilan = null;
+	public static Integer altMaxBilan = null;
+	public static Integer hsMinBilan = null;
+	public static Integer hsMaxBilan = null;
+	public static double valMinBilan = 0.0;
+	public static double valMaxBilan = 0.0;
+	public static Integer nbValBilan = null;
+	
+	/**dates des sequences*/
+	public static Date dateMinSeq = null;
+	public static Date dateMaxSeq = null;
+	public static Integer latMinSeq = null;
+	public static Integer latMaxSeq = null;
+	public static Integer lonMinSeq = null;
+	public static Integer lonMaxSeq = null;
+	public static Integer altMinSeq = null;
+	public static Integer altMaxSeq = null;
+	public static Integer hsMinSeq = null;
+	public static Integer hsMaxSeq = null;
+	public static ArrayList<SequenceModele> sequencesModeles = null;
+	public static int nbMesuresSeq = 0;
+	public static Integer numSeq = null;
+	
+	public static ArrayList<PlateformeModele> plateformesModele = null;
+	
+	/**
+	 * Convertit un ensemble d'Ã©lÃ©ments de type Set en ArrayList
+	 */ 
+	public static ArrayList<?> convertSetToArrayList(Set<?> set) {
+		ArrayList<Object> arrayList = new ArrayList<Object>();
+		if (set != null) {
+			Iterator<?> it = set.iterator();
+			Object obj = null;
+			while (it.hasNext()) {
+				obj = it.next();
+				arrayList.add(obj);
+			}
+		}
+		return arrayList;
+	}
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/validation/ControleurType.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/validation/ControleurType.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/validation/ControleurType.java	(revision 482)
@@ -0,0 +1,624 @@
+/*
+ * Created on 25 Jan. 2007
+ */
+package integration.validation;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+
+import integration.utils.*;
+/**
+ * @author 
+ *
+ * Fournit les mÃ©thodes de test des donnÃ©es des fichiers fournis pour intÃ©gration dans la base.
+ */
+public class ControleurType {
+
+    /**
+     * Teste si une chaine est une date au format de date indiquÃ©.
+     * @param str Chaine Ã© tester.
+     * @return Le Message de test associÃ©.
+     */
+	@SuppressWarnings("unchecked")
+	public static Message testerDate(String str, Object obj, Object obj2) {
+        Message mes = new Message();
+        String format = (String) obj;
+        String formatDateReel = format.replaceAll("DD", "dd").replaceAll("YYYY", "yyyy").replaceAll(":MM", ":mm").replaceAll(":SS", ":ss");
+//        String formatDateReel = DateTime.convertirFormat(format);
+        Date date = DateTime.isDate(str, formatDateReel);
+        boolean dateBonne = true;
+        if(date == null) {
+            dateBonne = false;
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: une date au format "+format);
+        } else {
+        	ArrayList<Date> dates = (ArrayList<Date>) obj2;
+        	Date dateBegin = dates.get(1);
+        	Date dateEnd = dates.get(2);
+        	// On rajoute 1 jour Ã© la date de fin (ex: 23/07/2009 00:00:00 devient 24/07/2009 00:00:00)
+        	Calendar c = Calendar.getInstance();
+        	c.setTime(dateEnd);
+        	c.add(Calendar.DAY_OF_YEAR, +1);
+        	dateEnd = c.getTime();
+        	if (date.getTime() < dateBegin.getTime()) {
+        		dateBonne = false;
+        		mes.setMessage("TROUVE: '" + str +
+        				", ATTENDU: une date supÃ©rieure Ã© la date "+DateTime.dateToString(dateBegin,Constantes.formatDateJJMMAAAAHHMMSS));
+        	} else if (date.getTime() >= dateEnd.getTime()) {
+        		dateBonne = false;
+        		mes.setMessage("TROUVE: '" + str +
+        				", ATTENDU: une date infÃ©rieure Ã© la date "+DateTime.dateToString(dateEnd,Constantes.formatDateJJMMAAAAHHMMSS));
+        	}
+        }
+        mes.setValid(dateBonne);
+        return mes;
+    }
+
+    /**
+     * Teste si une chaine est une annÃ©e au format de date indiquÃ©.
+     * @param str Chaine Ã© tester.
+     * @return Le Message de test associÃ©.
+     */
+    @SuppressWarnings("unchecked")
+    public static Message testerYear(String str, Object obj, Object obj2) {
+        Message mes = new Message();
+        String format = (String) obj;
+        String formatDateReel = format.replaceAll("YYYY", "yyyy");
+        Date date = DateTime.isDate(str, formatDateReel);
+        boolean anneeBonne = true;
+        if(date == null) {
+        	anneeBonne = false;
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: une annÃ©e au format "+format);
+        } else {
+        	ArrayList<Date> dates = (ArrayList<Date>) obj2;
+        	Date dateBegin = dates.get(1);
+        	Date dateEnd = dates.get(2);
+        	Calendar c = Calendar.getInstance();
+        	c.setTime(dateEnd);
+        	int yearEnd = c.get(Calendar.YEAR);
+        	c = Calendar.getInstance();
+        	c.setTime(dateBegin);
+        	int yearBegin = c.get(Calendar.YEAR);
+        	c = Calendar.getInstance();
+        	c.setTime(date);
+        	int year = c.get(Calendar.YEAR);
+        	if (year < yearBegin) {
+        		anneeBonne = false;
+        		mes.setMessage("TROUVE: '" + str + ", ATTENDU: une annÃ©e supÃ©rieure ou Ã©gale Ã© "+yearBegin);
+        	} else if (year > yearEnd) {
+        		anneeBonne = false;
+        		mes.setMessage("TROUVE: '" + str + ", ATTENDU: une annÃ©e infÃ©rieure ou Ã©gale Ã© "+yearEnd);
+        	}
+        }
+        mes.setValid(anneeBonne);
+        return mes;
+    }
+    
+    /**
+     * Teste si une chaine est un mois au format de date indiquÃ©.
+     * @param str Chaine Ã© tester.
+     * @return Le Message de test associÃ©.
+     */
+    @SuppressWarnings("unchecked")
+    public static Message testerMonth(String str, Object obj, Object obj2) {
+        Message mes = new Message();
+        String format = (String) obj;
+        if (str.length() == 1) str = "0"+str;
+        Date date = DateTime.isDate(str, format);
+        boolean moisBon = true;
+        if(date == null) {
+        	moisBon = false;
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: un mois au format "+format);
+        } else {
+        	ArrayList<Date> dates = (ArrayList<Date>) obj2;
+        	Date dateBegin = dates.get(1);
+        	Date dateEnd = dates.get(2);
+        	Calendar c = Calendar.getInstance();
+        	c.setTime(dateEnd);
+        	int monthEnd = c.get(Calendar.MONTH);
+        	c = Calendar.getInstance();
+        	c.setTime(dateBegin);
+        	int monthBegin = c.get(Calendar.MONTH);
+        	c = Calendar.getInstance();
+        	c.setTime(date);
+        	int month = c.get(Calendar.MONTH);
+        	if (month < monthBegin) {
+        		moisBon = false;
+        		mes.setMessage("TROUVE: '" + str + ", ATTENDU: un mois supÃ©rieur ou Ã©gal Ã© "+(monthBegin+1));
+        	} else if (month > monthEnd) {
+        		moisBon = false;
+        		mes.setMessage("TROUVE: '" + str + ", ATTENDU: un mois infÃ©rieur ou Ã©gal Ã© "+(monthEnd+1));
+        	}
+        }
+        mes.setValid(moisBon);
+        return mes;
+    }
+    
+    /**
+     * Teste si une chaine est un jour au format de date indiquÃ©.
+     * @param str Chaine Ã© tester.
+     * @return Le Message de test associÃ©.
+     */
+    @SuppressWarnings("unchecked")
+    public static Message testerDay(String str, Object obj, Object obj2) {
+        Message mes = new Message();
+        String format = (String) obj;
+        String formatDateReel = format.replaceAll("DD", "dd");
+        if (str.length() == 1) str = "0"+str;
+        Date date = DateTime.isDate(str, formatDateReel);
+        boolean jourBon = true;
+        if(date == null) {
+        	jourBon = false;
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: un jour au format "+format);
+        } else {
+        	ArrayList<Date> dates = (ArrayList<Date>) obj2;
+        	Date dateBegin = dates.get(1);
+        	Date dateEnd = dates.get(2);
+        	Calendar c = Calendar.getInstance();
+        	c.setTime(dateEnd);
+        	int dayEnd = c.get(Calendar.DAY_OF_MONTH);
+        	int monthEnd = c.get(Calendar.MONTH)+1;
+        	c = Calendar.getInstance();
+        	c.setTime(dateBegin);
+        	int dayBegin = c.get(Calendar.DAY_OF_MONTH);
+        	int monthBegin = c.get(Calendar.MONTH)+1;
+        	c = Calendar.getInstance();
+        	c.setTime(date);
+        	int day = c.get(Calendar.DAY_OF_MONTH);
+        	if (monthBegin == monthEnd) {
+        		if (day < dayBegin) {
+        			jourBon = false;
+        			mes.setMessage("TROUVE: '" + str + ", ATTENDU: un jour supÃ©rieur ou Ã©gal Ã© "+dayBegin);
+        		} else if (day > dayEnd) {
+        			jourBon = false;
+        			mes.setMessage("TROUVE: '" + str + ", ATTENDU: un jour infÃ©rieur ou Ã©gal Ã© "+dayEnd);
+        		}
+        	} else {
+        		if (day < 1) {
+	        		jourBon = false;
+	        		mes.setMessage("TROUVE: '" + str + ", ATTENDU: un jour supÃ©rieur ou Ã©gal Ã© 1");
+	        	} else if (day > 31) {
+	        		jourBon = false;
+	        		mes.setMessage("TROUVE: '" + str + ", ATTENDU: un jour infÃ©rieur ou Ã©gal Ã© 31");
+	        	}
+        	}
+        }
+        mes.setValid(jourBon);
+        return mes;
+    }
+    
+    /**
+     * Teste si une chaine est une heure au format de date indiquÃ©.
+     * @param str Chaine Ã© tester.
+     * @return Le Message de test associÃ©.
+     */
+    public static Message testerHour(String str, Object obj, Object obj2) {
+        Message mes = new Message();
+        String format = (String) obj;
+        if (str.length() == 1) str = "0"+str;
+        Date date = DateTime.isDate(str, format);
+        boolean heureBonne = true;
+        if(date == null) {
+        	heureBonne = false;
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: une heure au format "+format);
+        }
+        mes.setValid(heureBonne);
+        return mes;
+    }
+    
+    /**
+     * Teste si une chaine est une minute au format de date indiquÃ©.
+     * @param str Chaine Ã© tester.
+     * @return Le Message de test associÃ©.
+     */
+    public static Message testerMinute(String str, Object obj, Object obj2) {
+        Message mes = new Message();
+        String format = (String) obj;
+        String formatDateReel = format.replaceAll("MM", "mm");
+        if (str.length() == 1) str = "0"+str;
+        Date date = DateTime.isDate(str, formatDateReel);
+        boolean minuteBonne = true;
+        if(date == null) {
+        	minuteBonne = false;
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: une minute au format "+format);
+        }
+        mes.setValid(minuteBonne);
+        return mes;
+    }
+    
+    /**
+     * Teste si une chaine est une seconde au format de date indiquÃ©.
+     * @param str Chaine Ã© tester.
+     * @return Le Message de test associÃ©.
+     */
+    public static Message testerSecond(String str, Object obj, Object obj2) {
+        Message mes = new Message();
+        String format = (String) obj;
+        String formatDateReel = format.replaceAll("SS", "ss");
+        if (str.length() == 1) str = "0"+str;
+        Date date = DateTime.isDate(str, formatDateReel);
+        boolean secondeBonne = true;
+        if(date == null) {
+        	secondeBonne = false;
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: une seconde au format "+format);
+        }
+        mes.setValid(secondeBonne);
+        return mes;
+    }
+    
+    /**
+     * Teste si une chaine est un RÃ©el positif indiquant le nombre de secondes depuis une date donnÃ©e,
+     * la date obtenue doit Ã©tre comprise entre les dates de dÃ©but et de fin fournies en paramÃ©tres
+     */
+    @SuppressWarnings("unchecked")
+    public static Message testerSecondsSince(String str, Object obj, Object obj2) {
+    	String str2 = str.replaceAll(",", ".");
+        Message mes = new Message();
+        boolean doubleBon = Nombre.isDoublePositif(str);
+
+        if(!doubleBon) {
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: un rÃ©el positif");
+        } else {
+        	ArrayList<Date> dates = (ArrayList<Date>) obj2;
+        	Date dateSince = dates.get(0);
+        	Date dateBegin = dates.get(1);
+        	Date dateEnd = dates.get(2);
+        	double val = Double.parseDouble(str2);
+        	if (dateSince != null) {
+        		Date date = DateTime.secondsSinceToDate(val, dateSince);
+        		// On rajoute 1 jour Ã© la date de fin (ex: 23/07/2009 00:00:00 devient 24/07/2009 00:00:00)
+        		Calendar c = Calendar.getInstance();
+        		c.setTime(dateEnd);
+        		c.add(Calendar.DAY_OF_YEAR, +1);
+        		dateEnd = c.getTime();
+//        		EcritureLog.ecrire("\ndateDeb="+DateTime.dateToString(dateBegin, Constantes.formatDateDefault)
+//        				+", dateFin="+DateTime.dateToString(dateEnd, Constantes.formatDateDefault)
+//        				+", dateSince="+DateTime.dateToString(dateSince, Constantes.formatDateDefault)
+//        				+", val="+val
+//        				+", date="+DateTime.dateToString(date, Constantes.formatDateDefault),"err");
+        		if (date.getTime() < dateBegin.getTime()) {
+        			doubleBon = false;
+        			mes.setMessage("TROUVE: '" + str + "' soit la date "+DateTime.dateToString(date,Constantes.formatDateJJMMAAAAHHMMSS)+
+        					", ATTENDU: un nombre de secondes supÃ©rieur Ã© la date "+DateTime.dateToString(dateBegin,Constantes.formatDateJJMMAAAAHHMMSS));
+        		} else if (date.getTime() >= dateEnd.getTime()) {
+        			doubleBon = false;
+        			mes.setMessage("TROUVE: '" + str + "' soit la date "+DateTime.dateToString(date,Constantes.formatDateJJMMAAAAHHMMSS)+
+        					", ATTENDU: un nombre de secondes infÃ©rieur Ã© la date "+DateTime.dateToString(dateEnd,Constantes.formatDateJJMMAAAAHHMMSS));
+        		}
+        	}
+        }
+        mes.setValid(doubleBon);
+        return mes;
+    }
+	
+    /**
+     * Teste si une chaine est un RÃ©el positif indiquant le nombre d'heures depuis une date donnÃ©e,
+     * la date obtenue doit Ã©tre comprise entre les dates de dÃ©but et de fin fournies en paramÃ©tres
+     */
+    @SuppressWarnings("unchecked")
+	public static Message testerHoursSince(String str, Object obj, Object obj2) {
+    	String str2 = str.replaceAll(",", ".");
+        Message mes = new Message();
+        boolean doubleBon = Nombre.isDoublePositif(str);
+
+        if(!doubleBon) {
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: un rÃ©el positif");
+        } else {
+        	ArrayList<Date> dates = (ArrayList<Date>) obj2;
+        	Date dateSince = dates.get(0);
+        	Date dateBegin = dates.get(1);
+        	Date dateEnd = dates.get(2);
+        	double val = Double.parseDouble(str2);
+        	Date date = DateTime.hoursSinceToDate(val, dateSince);
+        	// On rajoute 1 jour Ã© la date de fin (ex: 23/07/2009 00:00:00 devient 24/07/2009 00:00:00)
+        	Calendar c = Calendar.getInstance();
+        	c.setTime(dateEnd);
+        	c.add(Calendar.DAY_OF_YEAR, +1);
+        	dateEnd = c.getTime();
+        	if (date.getTime() < dateBegin.getTime()) {
+        		doubleBon = false;
+        		mes.setMessage("TROUVE: '" + str + "' soit la date "+DateTime.dateToString(date,Constantes.formatDateJJMMAAAAHHMMSS)+
+        				", ATTENDU: un nombre d'heures supÃ©rieur Ã© la date "+DateTime.dateToString(dateBegin,Constantes.formatDateJJMMAAAAHHMMSS));
+        	} else if (date.getTime() >= dateEnd.getTime()) {
+        		doubleBon = false;
+        		mes.setMessage("TROUVE: '" + str + "' soit la date "+DateTime.dateToString(date,Constantes.formatDateJJMMAAAAHHMMSS)+
+        				", ATTENDU: un nombre d'heures infÃ©rieur Ã© la date "+DateTime.dateToString(dateEnd,Constantes.formatDateJJMMAAAAHHMMSS));
+        	}
+        }
+        mes.setValid(doubleBon);
+        return mes;
+    }
+    
+    /**
+     * Teste si une chaine est un RÃ©el positif indiquant le nombre de jours depuis une date donnÃ©e,
+     * la date obtenue doit Ã©tre comprise entre les dates de dÃ©but et de fin fournies en paramÃ©tres
+     */
+    @SuppressWarnings("unchecked")
+	public static Message testerDaysSince(String str, Object obj, Object obj2) {
+    	String str2 = str.replaceAll(",", ".");
+        Message mes = new Message();
+        boolean doubleBon = Nombre.isDoublePositif(str);
+
+        if(!doubleBon) {
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: un rÃ©el positif");
+        } else {
+        	ArrayList<Date> dates = (ArrayList<Date>) obj2;
+        	Date dateSince = dates.get(0);
+        	Date dateBegin = dates.get(1);
+        	Date dateEnd = dates.get(2);
+        	double val = Double.parseDouble(str2);
+        	Date date = DateTime.daysSinceToDate(val, dateSince);
+        	// On rajoute 1 jour Ã© la date de fin (ex: 23/07/2009 00:00:00 devient 24/07/2009 00:00:00)
+        	Calendar c = Calendar.getInstance();
+        	c.setTime(dateEnd);
+        	c.add(Calendar.DAY_OF_YEAR, +1);
+        	dateEnd = c.getTime();
+        	if (date.getTime() < dateBegin.getTime()) {
+        		doubleBon = false;
+        		mes.setMessage("TROUVE: '" + str + "' soit la date "+DateTime.dateToString(date,Constantes.formatDateJJMMAAAAHHMMSS)+
+        				", ATTENDU: un nombre de jours supÃ©rieur Ã© la date "+DateTime.dateToString(dateBegin,Constantes.formatDateJJMMAAAAHHMMSS));
+        	} else if (date.getTime() >= dateEnd.getTime()) {
+        		doubleBon = false;
+        		mes.setMessage("TROUVE: '" + str + "' soit la date "+DateTime.dateToString(date,Constantes.formatDateJJMMAAAAHHMMSS)+
+        				", ATTENDU: un nombre de jours infÃ©rieur Ã© la date "+DateTime.dateToString(dateEnd,Constantes.formatDateJJMMAAAAHHMMSS));
+        	}
+        }
+        mes.setValid(doubleBon);
+        return mes;
+    }
+	
+    /**
+     * Teste si une chaine est un RÃ©el positif indiquant le nombre d'annÃ©e depuis une date donnÃ©e,
+     * la date obtenue doit Ã©tre comprise entre les dates de dÃ©but et de fin fournies en paramÃ©tres
+     */
+    @SuppressWarnings("unchecked")
+	public static Message testerYearsSince(String str, Object obj, Object obj2) {
+    	String str2 = str.replaceAll(",", ".");
+        Message mes = new Message();
+        boolean doubleBon = Nombre.isDoublePositif(str);
+
+        if(!doubleBon) {
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: un rÃ©el positif");
+        } else {
+        	ArrayList<Date> dates = (ArrayList<Date>) obj2;
+        	Date dateSince = dates.get(0);
+        	Date dateBegin = dates.get(1);
+        	Date dateEnd = dates.get(2);
+        	double val = Double.parseDouble(str2);
+        	Date date = DateTime.yearsSinceToDate(val, dateSince);
+        	// On rajoute 1 jour Ã© la date de fin (ex: 23/07/2009 00:00:00 devient 24/07/2009 00:00:00)
+        	Calendar c = Calendar.getInstance();
+        	c.setTime(dateEnd);
+        	c.add(Calendar.DAY_OF_YEAR, +1);
+        	dateEnd = c.getTime();
+        	if (date.getTime() < dateBegin.getTime()) {
+        		doubleBon = false;
+        		mes.setMessage("TROUVE: '" + str + "' soit la date "+DateTime.dateToString(date,Constantes.formatDateJJMMAAAAHHMMSS)+
+        				", ATTENDU: un nombre d'annÃ©es supÃ©rieur Ã© la date "+DateTime.dateToString(dateBegin,Constantes.formatDateJJMMAAAAHHMMSS));
+        	} else if (date.getTime() >= dateEnd.getTime()) {
+        		doubleBon = false;
+        		mes.setMessage("TROUVE: '" + str + "' soit la date "+DateTime.dateToString(date,Constantes.formatDateJJMMAAAAHHMMSS)+
+        				", ATTENDU: un nombre d'annÃ©es infÃ©rieur Ã© la date "+DateTime.dateToString(dateEnd,Constantes.formatDateJJMMAAAAHHMMSS));
+        	}
+        }
+        mes.setValid(doubleBon);
+        return mes;
+    }
+    
+    /**
+     * Teste si une chaine est valide.
+     * @param str Chaine Ã© tester.
+     * @return Le Message de test associÃ©.
+     */
+    public static Message testerString(String str, Object obj, Object obj2) {
+        Message mes = new Message();
+        mes.setValid(true);
+        return mes;
+    }
+
+    /**
+     * Teste si une chaine est un RÃ©el.
+     * @param str Chaine Ã© tester.
+     * @param nul BoolÃ©en indiquant si la chaine peut Ã©tre nulle.
+     * @return Le Message de test associÃ©.
+     */
+    public static Message testerDouble(String str, Object obj, Object obj2) {
+        Message mes = new Message();
+        boolean doubleBon = Nombre.isDouble(str);
+
+        if(!doubleBon) {
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: un rÃ©el");
+        }
+        mes.setValid(doubleBon);
+        return mes;
+    }
+
+    /**
+     * Teste si une chaine est un RÃ©el positif.
+     * @param str Chaine Ã© tester.
+     * @param nul BoolÃ©en indiquant si la chaine peut Ã©tre nulle.
+     * @return Le Message de test associÃ©.
+     */
+    public static Message testerDoublePositif(String str, Object obj, Object obj2) {
+        Message mes = new Message();
+        boolean doubleBon = Nombre.isDoublePositif(str);
+
+        if(!doubleBon) {
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: un rÃ©el positif");
+        }
+        mes.setValid(doubleBon);
+        return mes;
+    }
+    
+    /**
+     * Teste si une chaine est un Integer.
+     * @param str Chaine Ã© tester.
+     * @return Le Message de test associÃ©.
+     */
+    public static Message testerInteger(String str, Object obj, Object obj2) {
+        Message mes = new Message();
+        boolean integerBon = Nombre.isInteger(str);
+        
+        if(!integerBon) {
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: un entier");
+        }
+        mes.setValid(integerBon);
+        return mes;
+    }
+    public static Message testerIntegerPositif(String str, Object obj, Object obj2) {
+        Message mes = new Message();
+        boolean integerBon = Nombre.isIntegerPositif(str);
+        
+        if(!integerBon) {
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: un entier positif");
+        }
+        mes.setValid(integerBon);
+        return mes;
+    }
+    
+    /**
+     * Teste si une chaine est un Long.
+     * @param str Chaine Ã© tester.
+     * @param nul BoolÃ©en indiquant si la chaine peut Ã©tre nulle.
+     * @return Le Message de test associÃ©.
+     */
+    public static Message testerLong(String str, Object obj, Object obj2) {
+        Message mes = new Message();
+        boolean longBon = Nombre.isLong(str);
+
+        if(!longBon) {
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: un entier long");
+        }
+        mes.setValid(longBon);
+        return mes;
+    }
+    
+    /**
+     * Teste si une chaine est une longitude.
+     * @param str2 Chaine Ã© tester.
+     * @return Le Message de test associÃ©.
+     */
+    public static Message testerLongitude(String str2, Object obj, Object obj2) {
+        String str = str2.replaceAll(",", ".");
+        Message mes = new Message();
+        boolean longitudeBonne = true;
+
+        try {
+			double longitude = Double.parseDouble(str);
+			longitudeBonne = (longitude >= Constantes.longitudeMini && longitude <= Constantes.longitudeMaxi);
+		} catch (NumberFormatException e) {
+			longitudeBonne = false;
+		}
+
+        if(!longitudeBonne) {
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: une longitude en degrÃ©s dÃ©cimaux");
+        }
+        mes.setValid(longitudeBonne);
+        return mes;
+    }
+
+    /**
+     * Teste si une chaine est une latitude.
+     * @param str2 Chaine Ã© tester.
+     * @return Le Message de test associÃ©.
+     */
+    public static Message testerLatitude(String str2, Object obj, Object obj2) {
+        String str = str2.replaceAll(",", ".");
+        Message mes = new Message();
+        boolean latitudeBonne = true;
+
+        try {
+			double latitude = Double.parseDouble(str);
+			latitudeBonne = (latitude >= Constantes.latitudeMini && latitude <= Constantes.latitudeMaxi);
+		} catch (NumberFormatException e) {
+			latitudeBonne = false;
+		}
+
+        if(!latitudeBonne) {
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: une latitude en degrÃ©s dÃ©cimaux");
+        }
+        mes.setValid(latitudeBonne);
+        return mes;
+    }
+
+    /**
+     * Teste si une chaine est une altitude.
+     * @param str2 Chaine Ã© tester.
+     * @return Le Message de test associÃ©.
+     */
+    public static Message testerAltitude(String str2, Object obj, Object obj2) {
+        String str = str2.replaceAll(",", ".");
+        Message mes = new Message();
+        boolean altitudeBonne;
+
+        try {
+			double altitude = Double.parseDouble(str);
+			altitudeBonne = (altitude >= Constantes.altitudeMini && altitude <= Constantes.altitudeMaxi);
+		} catch (NumberFormatException e) {
+			altitudeBonne = false;
+		}
+
+        if(!altitudeBonne) {
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: une altitude");
+        }
+        mes.setValid(altitudeBonne);
+        return mes;
+    }
+
+
+    /*****************************/
+    /**
+     * Teste si une chaine est une altitude gÃ©opotentiel.
+     * @param str2 Chaine Ã© tester.
+     * @return Le Message de test associÃ©.
+     */
+    
+    public static Message testerAltitudeGeop(String str2, Object obj, Object obj2) {
+        String str = str2.replaceAll(",", ".");
+        Message mes = new Message();
+        boolean altitudeGeopBonne;
+        try {
+			double geop = Double.parseDouble(str);
+			// Si la donnÃ©e est un gÃ©opotentiel, il faut la convertir en altitude en divisant par 9.8
+			double altitude = Nombre.geopToAltitude(new Double(geop)).doubleValue();    
+			altitudeGeopBonne = (altitude >= Constantes.altitudeMini && altitude <= Constantes.altitudeMaxi);
+		} catch (NumberFormatException e) {
+			altitudeGeopBonne = false;
+		}
+
+        if(!altitudeGeopBonne) {
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: une altitude");
+        }
+        mes.setValid(altitudeGeopBonne);
+        return mes;
+    }
+    
+    /****************************/
+    /***************************/
+    /**
+     * Teste si une chaine est un pourcentage rÃ©el.
+     * @param str2 Chaine Ã© tester.
+     * @return Le Message de test associÃ©.
+     */
+    public static Message testerDoublePourcent(String str, Object obj, Object obj2) {
+        Message mes = new Message();
+        boolean doubleBon = Nombre.isDoubleInInterval(str, 0, 100);
+
+        if(!doubleBon) {
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: un pourcentage rÃ©el");
+        }
+        mes.setValid(doubleBon);
+        return mes;
+    }
+
+    public static Message testerDoubleUn(String str, Object obj, Object obj2) {
+        Message mes = new Message();
+        boolean doubleBon = Nombre.isDoubleInInterval(str, 0, 1);
+
+        if(!doubleBon) {
+            mes.setMessage("TROUVE: '" + str + "', ATTENDU: un nombre rÃ©el compris entre 0 et 1");
+        }
+        mes.setValid(doubleBon);
+        return mes;
+    }
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/validation/Message.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/validation/Message.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/validation/Message.java	(revision 482)
@@ -0,0 +1,51 @@
+/*
+ * Created on 16 Jan. 20057
+ */
+package integration.validation;
+
+/**
+ * @author
+ *
+ * Message transmis lors de la validation d'une donnÃ©e.
+ */
+public class Message {
+
+    /** Vrai si la donnÃ©e est valide. **/
+    private boolean valid;
+
+    /** Message de integration.validation, null si valid est vrai. **/
+    private String message;
+
+    /**
+     * Construit un Message.
+     */
+    public Message() {
+
+    }
+
+    /**
+     * Construit un message.
+     * @param valid Vrai si la donnÃ©e est valide.
+     * @param message Message de integration.validation, null si valid est vrai.
+     */
+    public Message(boolean valid, String message) {
+        this.valid = valid;
+        this.message = message;
+    }
+
+    public boolean isValid() {
+        return valid;
+    }
+
+    public void setValid(boolean valid) {
+        this.valid = valid;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/validation/Validation.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/validation/Validation.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/validation/Validation.java	(revision 482)
@@ -0,0 +1,278 @@
+/*
+ * Created on 26 Jan. 2007
+ */
+package integration.validation;
+import integration.lecture_ecriture.LectureModeleXML;
+import integration.lecture_ecriture.EcritureLog;
+import integration.prevalidation.PreValidation;
+import integration.utils.Constantes;
+import integration.utils.DateTime;
+import integration.vues.ParametreModele;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Date;
+
+/**
+ * @author 
+ *
+ * Classe permettant de valider un ensemble de fichier d'un jeu donnÃ©
+ */
+public class Validation {
+
+	private ArrayList<String> listeMesures;
+	private int nbParams;
+	private int nbLignesEntete;
+	private ArrayList<ParametreModele> listeParams;
+	// Le nombre d'erreurs totales trouvÃ©es pendant la validation
+	private int nbErreursTotales;
+	private int indiceNiv;
+	
+	public Validation(PreValidation preValidation) {
+		this.listeMesures = preValidation.getMesures();
+		this.nbParams = preValidation.getNbParams();
+		this.listeParams = preValidation.getInfoParams();
+		this.nbLignesEntete = preValidation.getEntete().size();
+	}
+
+	public ArrayList<ArrayList<String>> valider(LectureModeleXML lectureModeleXML, String nomFichier) {
+		// On rÃ©cupÃ©re les paramÃ©tres du modÃ©le
+//		ArrayList<ParametreModele> parametres = lectureModeleXML.getParametres();
+//		int nbParametres = parametres.size();
+		// NB: si le dÃ©limiteur est l'espace ou la tabulation,
+		// on testera 2 dÃ©limiteurs par dÃ©faut: espace ET tabulation pour Ã©viter les ambiguitÃ©s
+		String delimiteur = lectureModeleXML.getDelimiteur();
+		boolean isDelim2 = false;
+		String delimiteur2 = delimiteur, delimiteur1 = delimiteur;
+		if (delimiteur.equals(Constantes.delimiteur1) || delimiteur.equals(Constantes.delimiteur2)) {
+			delimiteur2 = Constantes.delimiteur22;
+			isDelim2 = true;
+		}
+//		String valeurAbsente = lectureModeleXML.getValeurAbsente();
+//		boolean subdiviser = Boolean.parseBoolean(lectureModeleXML.getSubdiviser());
+		String mesure, donnee, datePrec = "", date;
+		// DÃ©clarations, initialisations
+		int erreurNbParam = 0, erreurType = 0, erreurDate = 0, nbErreursFichier = 0;
+		nbErreursTotales = 0;
+		int nbMesures = listeMesures.size();
+		// On initialise la liste des tableaux de donnÃ©es des fichiers trouvÃ©s
+		ArrayList<ArrayList<String>> listeDonnees = new ArrayList<ArrayList<String>>();
+		ArrayList<String> donnees;
+		// On cherche si une subdivision est nÃ©cessaire
+//		indiceNiv = -1;
+//		int nbNiv = 0;
+//		if (subdiviser) {
+//			indiceNiv = chercherIndiceSubdivision(parametres);
+//		}
+
+		if (listeParams.get(0).getFormat() == null && listeParams.get(0).getDateSince() == null) {
+			EcritureLog.ecrire("\nErreur Ã© la ligne 9 : La date doit Ã©tre au format YYYY-MM-DD HH:MM:SS Z","err");
+			erreurType++;
+		}
+
+		int indiceDelim, numLigne;
+		// On parcourt les mesures du fichier
+		for (int numMesure=0; numMesure< nbMesures; numMesure++) {
+			mesure = listeMesures.get(numMesure).trim();
+			donnees = new ArrayList<String>();
+			numLigne = nbLignesEntete+numMesure+1;
+			indiceDelim = mesure.indexOf(delimiteur1);
+			if (isDelim2 && indiceDelim==-1) indiceDelim = mesure.indexOf(delimiteur2);
+			// Si la mesure contient au moins un dÃ©limiteur...
+			while (indiceDelim != -1) {
+				// On rÃ©cupÃ©re la 1Ã©re donnÃ©e de la mesure avant le dÃ©limiteur
+				donnee = mesure.substring(0, indiceDelim).trim();
+				donnees.add(donnee);
+				// On rÃ©cupÃ©re la mesure restante aprÃ©s le dÃ©limiteur
+				mesure = mesure.substring(indiceDelim+1).trim();
+				indiceDelim = mesure.indexOf(delimiteur1);
+				if (isDelim2 && indiceDelim==-1) indiceDelim = mesure.indexOf(delimiteur2);
+			}
+			donnee = mesure;
+			donnees.add(donnee);
+			// On compare le nombre de paramÃ©tres du modÃ©le avec le nombre de donnÃ©es de la mesure
+//			if (!subdiviser){
+			if (donnees.size() != nbParams) {
+				EcritureLog.ecrire("\nErreur : le fichier n'a pas le nombre de paramÃ©tres attendus Ã© la ligne "+numLigne+" ! Nb donnÃ©es="+donnees.size()+", nb param attendus="+nbParams,"err");
+				erreurNbParam++;
+			}
+			// On stocke les dates dans une liste
+			if (listeParams.get(0).getType().equals("Year"))
+				date = donnees.get(2)+"/"+donnees.get(1)+"/"+donnees.get(0)+" "+donnees.get(3)+":"+donnees.get(4)+":"+donnees.get(5);
+			else
+				date = donnees.get(0);
+			if (date.equals(datePrec)) {
+				if (listeParams.get(0).getType().equals("Year")) {
+					EcritureLog.ecrire("\nErreur Ã© la ligne "+numLigne+", la date '"+date+"' apparait plusieurs fois dans le fichier !","err");
+				} else {
+					double val = Double.parseDouble(date);
+					Date d = DateTime.hoursSinceToDate(val, listeParams.get(0).getDateSince());
+					EcritureLog.ecrire("\nErreur Ã© la ligne "+numLigne+", la date '"+date+"' ("+DateTime.dateToString(d, Constantes.formatDateJJMMAAAAHHMMSS)+") apparait plusieurs fois dans le fichier !","err");
+				}
+				erreurDate++;
+			}
+			datePrec = date;
+//			} else {
+				// Cas oÃ© il y a une subdivision
+//				nbNiv = Integer.parseInt(donnees.get(indiceNiv));
+//				int nbParametresSubdivises = indiceNiv + 1;
+//				nbParametresSubdivises += nbNiv * (nbParametres - nbParametresSubdivises);
+//				if (donnees.size() != nbParametresSubdivises) {
+//					EcritureLog.ecrire("\nErreur : le fichier n'a pas le nombre de paramÃ©tres attendus Ã© la mesure "+ (numMesure + 1) + " ! Nb donnÃ©es="+donnees.size()+", nb param attendus="+nbParametresSubdivises,"err");
+//					erreurNbParam++;
+//				}
+//			}
+
+			// Test du type de chaque donnee
+			erreurType = testType(donnees,numLigne);//, indiceNiv, nbNiv);
+			nbErreursTotales += erreurType;
+			nbErreursFichier += erreurType;
+			listeDonnees.add(donnees);
+			donnees = null;
+		}
+		listeMesures = null;
+		if (erreurNbParam > 0 || erreurType > 0 || erreurDate > 0) {
+			EcritureLog.ecrire("\nIl y a " + (erreurNbParam + erreurDate + nbErreursFichier)+ " erreur(s) dans le fichier "+nomFichier,"err");
+		}
+		nbErreursTotales += erreurNbParam + erreurDate;
+		return listeDonnees;
+	}
+
+	/**
+	 * VÃ©rifie si les mesures du fichier doivent Ã©tre subdivisÃ©es
+	 * Renvoie -1 s'il n'y a pas de subdivision Ã© faire
+	 * Sinon renvoie l'indice du paramÃ©tre de subdivision
+	 */
+//	private int chercherIndiceSubdivision(ArrayList<ParametreModele> parametres) {
+//		int indNiv = -1;
+//		for (int numParam=0; numParam<parametres.size(); numParam++) {
+//			if (parametres.get(numParam).getFonction().equals(Constantes.fonctionSubdiviser)){
+//				indNiv = numParam;
+//				break;
+//			}
+//		}
+//		return indNiv;
+//	}
+	
+	public int getIndiceNiv() {
+		return indiceNiv;
+	}
+
+	/**
+	 * 
+	 * @return
+	 * 
+	 */
+	/**
+	 * Teste si le type de la iÃ©me donnÃ©e de la mesure correspond bien au type
+	 * du paramÃ©tre associÃ©
+	 */
+	
+	private int testType(ArrayList<String> donnees, int numLigne) {//, int indiceNiv, int nbNiv) {
+		int erreurType = 0;
+		String donnee, valeurAbsente, type = null, format = null;
+		ParametreModele parametre;
+		Method appelTest;
+		Class<?>[] paramMethode = { String.class, Object.class , Object.class };
+		ArrayList<Date> dates = null;
+		Message message = null;
+		Object obj, obj2;
+//		int indiceParam, cptNiv = 0, cptParam = 0;
+		for (int numDonnee = 0; numDonnee < donnees.size(); numDonnee++) {
+			donnee = donnees.get(numDonnee);
+			
+			// On recherche le paramÃ©tre associÃ© Ã© la donnÃ©e
+			// Cas oÃ© il n'y a pas de subdivision
+//			if (indiceNiv == -1) {
+//				indiceParam = numDonnee;
+//			} 
+			// Cas oÃ© il y a subdivision
+//			else {
+				// Cas oÃ© la donnÃ©e est avant la donnÃ©e de subdivision
+//				if (numDonnee <= indiceNiv) {
+//					indiceParam = numDonnee;
+//					cptParam++;
+//				} 
+				// Cas oÃ© la donnÃ©e est aprÃ©s la donnÃ©e de subdivision
+//				else {
+//					cptNiv++;
+					// Cas oÃ© on arrive Ã© la derniÃ©re donnÃ©e du paramÃ©tre courant
+//					if (cptNiv > nbNiv) {
+//						cptParam++;
+//						cptNiv = 1;
+//					}
+//					indiceParam = cptParam;
+//				}
+//			}
+			if (numDonnee < nbParams) {
+				parametre = listeParams.get(numDonnee);//parametres.get(indiceParam);
+				valeurAbsente = parametre.getValAbsente();
+				type = parametre.getType();
+				dates = new ArrayList<Date>();
+				dates.add(parametre.getDateSince());
+				dates.add(parametre.getDateDeb());
+				dates.add(parametre.getDateFin());
+				format = parametre.getFormat();
+			} else {
+				valeurAbsente = donnee;
+				parametre = new ParametreModele();
+			}
+			// On teste les donnÃ©es n'Ã©tant pas Ã©gales Ã© la valeur absente
+			if (valeurAbsente == null || !donnee.equals(valeurAbsente)) {
+//				if (dates.get(0) == null)
+					obj = format;
+//				else
+					obj2 = dates;
+				Object[] argumentsMethode = {donnee,obj,obj2};
+				try {
+					// CrÃ©ation de la mÃ©thode correspondant au type trouvÃ©
+					appelTest = ControleurType.class.getMethod("tester" + type,	paramMethode);
+					try {
+						// Invocation de la mÃ©thode sur la donnÃ©e
+						message = (Message) appelTest.invoke(null, argumentsMethode);
+//					} catch (IllegalArgumentException e1) {
+//						e1.printStackTrace();
+					} catch (IllegalAccessException e1) {
+						e1.printStackTrace();
+					} catch (InvocationTargetException e1) {
+						e1.printStackTrace();
+					}
+//				} catch (SecurityException e) {
+//					e.printStackTrace();
+				} catch (NoSuchMethodException e) {
+					e.printStackTrace();
+				}
+				// On affiche les erreurs Ã©ventuelles
+				if (!message.isValid()) {
+				    EcritureLog.ecrire("\nErreur Ã© la ligne "+numLigne+" : " + message.getMessage(),"err");
+					erreurType++;
+				}
+			}
+			// Si la donnÃ©e est une valeur absente et est une latitude : ERREUR
+			else if (parametre.getNom().toLowerCase().equals(Constantes.nomParametreLatitude)) {
+				EcritureLog.ecrire("\nErreur Ã© la ligne "+numLigne+" : La latitude est une valeur absente ("+donnee+")","err");
+				erreurType++;
+			}
+			// Si la donnÃ©e est une valeur absente et est une longitude : ERREUR
+			else if (parametre.getNom().toLowerCase().equals(Constantes.nomParametreLongitude)) {
+				EcritureLog.ecrire("\nErreur Ã© la ligne "+numLigne+" : La longitude est une valeur absente ("+donnee+")","err");
+				erreurType++;
+			}
+		}
+		return erreurType;
+	}
+	
+	public int getNbErreursTotales() {
+		return nbErreursTotales;
+	}
+
+	public ArrayList<ParametreModele> getListeParams() {
+		return listeParams;
+	}
+	
+	public void vider() {
+		listeMesures = null;
+	}
+	
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/vues/MesureModele.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/vues/MesureModele.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/vues/MesureModele.java	(revision 482)
@@ -0,0 +1,205 @@
+package integration.vues;
+
+import java.util.ArrayList;
+
+public class MesureModele {
+
+	private String date = null;
+	private String formatDate = null;
+	private String minutes = null;
+	private String formatMinutes = null;
+	private String heure = null;
+	private String formatHeure = null;
+	private String mois = null;
+	private String formatMois = null;
+	private String jour = null;
+	private String formatJour = null;
+	private String annee = null;
+	private String formatAnnee = null;
+	private String latitude = null;
+	private String longitude = null;
+	private String altitude = null;
+	private String hauteurSol = null;
+	ArrayList<ValeurModele> valeursMesure = null;
+	ArrayList<ParametreModele> paramsValeur = null;
+	private String flagValidite = null;
+	private String numSequence = null;
+	ArrayList<String> geops = null;
+	ArrayList<String> alts = null;
+	
+	public ArrayList<String> getAlts() {
+		return alts;
+	}
+
+	public void setAlts(ArrayList<String> alts) {
+		this.alts = alts;
+	}
+
+	public ArrayList<String> getGeops() {
+		return geops;
+	}
+
+	public void setGeops(ArrayList<String> geops) {
+		this.geops = geops;
+	}
+
+	public String getFormatHeure() {
+		return formatHeure;
+	}
+
+	public void setFormatHeure(String formatHeure) {
+		this.formatHeure = formatHeure;
+	}
+
+	public String getHeure() {
+		return heure;
+	}
+
+	public void setHeure(String heure) {
+		this.heure = heure;
+	}
+
+	public String getAltitude() {
+		return altitude;
+	}
+
+	public void setAltitude(String altitude) {
+		this.altitude = altitude;
+	}
+
+	public String getDate() {
+		return date;
+	}
+
+	public void setDate(String date) {
+		this.date = date;
+	}
+
+	public String getFlagValidite() {
+		return flagValidite;
+	}
+
+	public void setFlagValidite(String flagValidite) {
+		this.flagValidite = flagValidite;
+	}
+
+	public String getFormatDate() {
+		return formatDate;
+	}
+
+	public void setFormatDate(String formatDate) {
+		this.formatDate = formatDate;
+	}
+
+	public String getHauteurSol() {
+		return hauteurSol;
+	}
+
+	public void setHauteurSol(String hauteurSol) {
+		this.hauteurSol = hauteurSol;
+	}
+
+	public String getLatitude() {
+		return latitude;
+	}
+
+	public void setLatitude(String latitude) {
+		this.latitude = latitude;
+	}
+
+	public String getLongitude() {
+		return longitude;
+	}
+
+	public void setLongitude(String longitude) {
+		this.longitude = longitude;
+	}
+
+	public String getNumSequence() {
+		return numSequence;
+	}
+
+	public void setNumSequence(String numSequence) {
+		this.numSequence = numSequence;
+	}
+
+	public ArrayList<ValeurModele> getValeursMesure() {
+		return valeursMesure;
+	}
+
+	public void setValeursMesure(ArrayList<ValeurModele> valeursMesure) {
+		this.valeursMesure = valeursMesure;
+	}
+
+	public String getAnnee() {
+		return annee;
+	}
+
+	public void setAnnee(String annee) {
+		this.annee = annee;
+	}
+
+	public String getFormatAnnee() {
+		return formatAnnee;
+	}
+
+	public void setFormatAnnee(String formatAnnee) {
+		this.formatAnnee = formatAnnee;
+	}
+
+	public String getFormatJour() {
+		return formatJour;
+	}
+
+	public void setFormatJour(String formatJour) {
+		this.formatJour = formatJour;
+	}
+
+	public String getFormatMois() {
+		return formatMois;
+	}
+
+	public void setFormatMois(String formatMois) {
+		this.formatMois = formatMois;
+	}
+
+	public String getJour() {
+		return jour;
+	}
+
+	public void setJour(String jour) {
+		this.jour = jour;
+	}
+
+	public String getMois() {
+		return mois;
+	}
+
+	public void setMois(String mois) {
+		this.mois = mois;
+	}
+
+	public String getFormatMinutes() {
+		return formatMinutes;
+	}
+
+	public void setFormatMinutes(String formatMinutes) {
+		this.formatMinutes = formatMinutes;
+	}
+
+	public String getMinutes() {
+		return minutes;
+	}
+
+	public void setMinutes(String minutes) {
+		this.minutes = minutes;
+	}
+
+	public ArrayList<ParametreModele> getParamsValeur() {
+		return paramsValeur;
+	}
+
+	public void setParamsValeur(ArrayList<ParametreModele> paramsValeur) {
+		this.paramsValeur = paramsValeur;
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/vues/ParametreModele.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/vues/ParametreModele.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/vues/ParametreModele.java	(revision 482)
@@ -0,0 +1,171 @@
+/*
+ * Created on 25 Jan. 2007
+ */
+package integration.vues;
+
+import java.util.Date;
+
+/**
+ * @author 
+ *
+ * ReprÃ©sente les caractÃ©ristiques d'un paramÃ©tre d'un modÃ©le de jeu de donnÃ©es.
+ */
+public class ParametreModele {
+
+	private String nom;
+	private String type;
+	private String fonction;
+	private String nomUnite;
+	private String delta;
+	private String numero;
+	private String format;
+	private String lod;
+	private String valAbsente = null;
+	private String coef = null;
+	private Date dateDeb;
+	private Date dateFin;
+	private Date dateSince;
+	private int indiceParam;
+	private int indiceCapt;
+	
+	public ParametreModele() {
+		nom = "";
+	}
+	
+	public ParametreModele(String nom, String type, String fonction,
+			String unite, String delta, String numero, String format, String lod) {
+		this.nom = nom;
+		this.type = type;
+		this.fonction = fonction;
+		this.nomUnite = unite;
+		this.delta = ((delta!=null && !delta.equals(""))?delta:null);
+		this.numero = numero;
+		this.format = format;
+		this.lod = ((lod!=null && !lod.equals(""))?lod:null);
+	}
+
+	public String getDelta() {
+		return delta;
+	}
+
+	public void setDelta(String delta) {
+		this.delta = delta;
+	}
+
+	public String getFonction() {
+		return fonction;
+	}
+
+	public void setFonction(String fonction) {
+		this.fonction = fonction;
+	}
+
+	public String getFormat() {
+		return format;
+	}
+
+	public void setFormat(String format) {
+		this.format = format;
+	}
+	
+
+	public String getNom() {
+		return nom;
+	}
+
+	public void setNom(String nom) {
+		this.nom = nom;
+	}
+
+	public String getNumero() {
+		return numero;
+	}
+
+	public void setNumero(String numero) {
+		this.numero = numero;
+	}
+
+	public String getNomUnite() {
+		return nomUnite;
+	}
+
+	public void setNomUnite(String nomUnite) {
+		this.nomUnite = nomUnite;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	public String getLod() {
+		return lod;
+	}
+
+	public void setLod(String lod) {
+		this.lod = lod;
+	}
+	
+	public String getValAbsente() {
+		return valAbsente;
+	}
+
+	public void setValAbsente(String valAbsente) {
+		this.valAbsente = valAbsente;
+	}
+
+	public Date getDateDeb() {
+		return dateDeb;
+	}
+
+	public void setDateDeb(Date dateDeb) {
+		this.dateDeb = dateDeb;
+	}
+
+	public Date getDateFin() {
+		return dateFin;
+	}
+
+	public void setDateFin(Date dateFin) {
+		this.dateFin = dateFin;
+	}
+
+	public Date getDateSince() {
+		return dateSince;
+	}
+
+	public void setDateSince(Date dateSince) {
+		this.dateSince = dateSince;
+	}
+
+	public int getIndiceParam() {
+		return indiceParam;
+	}
+
+	public void setIndiceParam(int indiceParam) {
+		this.indiceParam = indiceParam;
+	}
+
+	public int getIndiceCapt() {
+		return indiceCapt;
+	}
+
+	public void setIndiceCapt(int indiceCapt) {
+		this.indiceCapt = indiceCapt;
+	}
+
+	public String toString() {
+		return "Param="+nom+", fonction="+fonction+", unite="+nomUnite+", type="+type+", format="+format+", valAbsente="+valAbsente;
+	}
+
+	public String getCoef() {
+		return coef;
+	}
+
+	public void setCoef(String coef) {
+		this.coef = coef;
+	}
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/vues/PlateformeModele.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/vues/PlateformeModele.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/vues/PlateformeModele.java	(revision 482)
@@ -0,0 +1,105 @@
+/*
+ * Created on 25 Jan. 2007
+ */
+package integration.vues;
+
+/**
+ * @author 
+ *
+ * ReprÃ©sente les caractÃ©ristiques d'une plate-forme d'un modÃ©le de jeu de donnÃ©es.
+ */
+public class PlateformeModele {
+
+	private String nom;
+	private String type;
+	private String latMin;
+	private String latMax;
+	private String lonMin;
+	private String lonMax;
+	private String altMin;
+	private String altMax;
+	private String hsMin = null;
+	private String hsMax = null;
+
+	public String getAltMax() {
+		return altMax;
+	}
+
+	public void setAltMax(String altMax) {
+		this.altMax = altMax;
+	}
+
+	public String getAltMin() {
+		return altMin;
+	}
+
+	public void setAltMin(String altMin) {
+		this.altMin = altMin;
+	}
+
+	public String getHsMax() {
+		return hsMax;
+	}
+
+	public void setHsMax(String hsMax) {
+		this.hsMax = hsMax;
+	}
+
+	public String getHsMin() {
+		return hsMin;
+	}
+
+	public void setHsMin(String hsMin) {
+		this.hsMin = hsMin;
+	}
+
+	public String getLatMax() {
+		return latMax;
+	}
+
+	public void setLatMax(String latMax) {
+		this.latMax = latMax;
+	}
+
+	public String getLatMin() {
+		return latMin;
+	}
+
+	public void setLatMin(String latMin) {
+		this.latMin = latMin;
+	}
+
+	public String getLonMax() {
+		return lonMax;
+	}
+
+	public void setLonMax(String lonMax) {
+		this.lonMax = lonMax;
+	}
+
+	public String getLonMin() {
+		return lonMin;
+	}
+
+	public void setLonMin(String lonMin) {
+		this.lonMin = lonMin;
+	}
+
+	public String getNom() {
+		return nom;
+	}
+
+	public void setNom(String nom) {
+		this.nom = nom;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+
+
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/vues/SequenceModele.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/vues/SequenceModele.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/vues/SequenceModele.java	(revision 482)
@@ -0,0 +1,98 @@
+package integration.vues;
+
+import java.util.Date;
+
+public class SequenceModele {
+
+	private Date dateMinSeq = null;
+	private Date dateMaxSeq = null;
+	private Integer latMinSeq = null;
+	private Integer latMaxSeq = null;
+	private Integer lonMinSeq = null;
+	private Integer lonMaxSeq = null;
+	private Integer altMinSeq = null;
+	private Integer altMaxSeq = null;
+	private Integer hsMinSeq = null;
+	private Integer hsMaxSeq = null;
+	private String description = null;
+	private int nbMesures = 0;
+	
+	public String getDescription() {
+		return description;
+	}
+	public void setDescription(String description) {
+		this.description = description;
+	}
+	public int getNbMesures() {
+		return nbMesures;
+	}
+	public void setNbMesures(int nbMesures) {
+		this.nbMesures = nbMesures;
+	}
+	public Integer getAltMaxSeq() {
+		return altMaxSeq;
+	}
+	public void setAltMaxSeq(Integer altMaxSeq) {
+		this.altMaxSeq = altMaxSeq;
+	}
+	public Integer getAltMinSeq() {
+		return altMinSeq;
+	}
+	public void setAltMinSeq(Integer altMinSeq) {
+		this.altMinSeq = altMinSeq;
+	}
+	public Date getDateMaxSeq() {
+		return dateMaxSeq;
+	}
+	public void setDateMaxSeq(Date dateMaxSeq) {
+		this.dateMaxSeq = dateMaxSeq;
+	}
+	public Date getDateMinSeq() {
+		return dateMinSeq;
+	}
+	public void setDateMinSeq(Date dateMinSeq) {
+		this.dateMinSeq = dateMinSeq;
+	}
+	public Integer getHsMaxSeq() {
+		return hsMaxSeq;
+	}
+	public void setHsMaxSeq(Integer hsMaxSeq) {
+		this.hsMaxSeq = hsMaxSeq;
+	}
+	public Integer getHsMinSeq() {
+		return hsMinSeq;
+	}
+	public void setHsMinSeq(Integer hsMinSeq) {
+		this.hsMinSeq = hsMinSeq;
+	}
+	public Integer getLatMaxSeq() {
+		return latMaxSeq;
+	}
+	public void setLatMaxSeq(Integer latMaxSeq) {
+		this.latMaxSeq = latMaxSeq;
+	}
+	public Integer getLatMinSeq() {
+		return latMinSeq;
+	}
+	public void setLatMinSeq(Integer latMinSeq) {
+		this.latMinSeq = latMinSeq;
+	}
+	public Integer getLonMaxSeq() {
+		return lonMaxSeq;
+	}
+	public void setLonMaxSeq(Integer lonMaxSeq) {
+		this.lonMaxSeq = lonMaxSeq;
+	}
+	public Integer getLonMinSeq() {
+		return lonMinSeq;
+	}
+	public void setLonMinSeq(Integer lonMinSeq) {
+		this.lonMinSeq = lonMinSeq;
+	}
+	public int getNbMesures(int numSeq) {
+		
+		return numSeq;
+	}
+	
+	
+}
Index: /ether_megapoli/trunk/service/implementation/com/medias/integration/vues/ValeurModele.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/medias/integration/vues/ValeurModele.java	(revision 482)
+++ /ether_megapoli/trunk/service/implementation/com/medias/integration/vues/ValeurModele.java	(revision 482)
@@ -0,0 +1,60 @@
+package integration.vues;
+
+//import java.util.ArrayList;
+
+public class ValeurModele {
+	private String valeurVal;
+	private String valeurDelta;
+	private String numUnite;
+	private String delta;
+	private String valeurLod;
+	private String valeurFlag;
+	
+	public String getValeurFlag() {
+		return valeurFlag;
+	}
+
+	public void setValeurFlag(String valeurFlag) {
+		this.valeurFlag = valeurFlag;
+	}
+
+	public String getValeurDelta() {
+		return valeurDelta;
+	}
+
+	public void setValeurDelta(String valeurDelta) {
+		this.valeurDelta = valeurDelta;
+	}
+
+	public String getDelta() {
+		return delta;
+	}
+
+	public void setDelta(String delta) {
+		this.delta = delta;
+	}
+
+	public String getNumUnite() {
+		return numUnite;
+	}
+
+	public void setNumUnite(String numUnite) {
+		this.numUnite = numUnite;
+	}
+
+	public String getValeurVal() {
+		return valeurVal;
+	}
+
+	public void setValeurVal(String valeurVal) {
+		this.valeurVal = valeurVal;
+	}
+
+	public String getValeurLod() {
+		return valeurLod;
+	}
+
+	public void setValeurLod(String valeurLod) {
+		this.valeurLod = valeurLod;
+	}
+}
Index: /ether_megapoli/trunk/service/interface/com/ether/EtherService.java
===================================================================
--- /ether_megapoli/trunk/service/interface/com/ether/EtherService.java	(revision 481)
+++ /ether_megapoli/trunk/service/interface/com/ether/EtherService.java	(revision 482)
@@ -143,6 +143,3 @@
     Jeu getJeuById( @NotNull final Integer jeuId )
             throws ServiceException;
-
-    boolean moveFilesFromDownloadToUpload( @NotNull final Jeu jeu, @NotNull final String downloadDirectory, @NotNull final String uploadDirectory )
-            throws ServiceException;
 }
Index: /ether_megapoli/trunk/web/backoffice/dataInsertion-script.jsp
===================================================================
--- /ether_megapoli/trunk/web/backoffice/dataInsertion-script.jsp	(revision 481)
+++ /ether_megapoli/trunk/web/backoffice/dataInsertion-script.jsp	(revision 482)
@@ -15,9 +15,12 @@
         // Containers
         this.generalContainerDatasets = $( "#generalContainerDatasets" );
+        this.containerDatasetsNumber = $( "#nbResults" );
+        this.containerErrors = $( "#errors" );
         this.containerDatasets = $( "#containerDataSets" );
-        this.containerErrors = $( "#errors" );
-        this.containerDatasetsNumber = $( "#nbResults" );
-        this.containerFilesMove = $( "#containerFilesMove" );
-        this.containerResultFilesMove = $( "#resultFilesMove" );
+        this.containerResultRemove = $( "#containerResultRemove" );
+        this.containerMove = $( "#containerMove" );
+        this.containerResultMove = $( "#containerResultMove" );
+        this.containerInsert = $( "#containerInsert" );
+        this.containerResultInsert = $( "#containerResultInsert" );
 
         this.containerSorts = $( "#containerSorts" );
@@ -34,17 +37,34 @@
         this.loadingDataset.display();
 
+        var param = new Object();
+        param.id = "loadingForDatasetRemove";
+        param.parent = this.generalContainerDatasets;
+        param.className = "loading-data";
+        this.loadingRemove = new Loading( param );
+
+        var param = new Object();
+        param.id = "loadingForDatasetInsert";
+        param.parent = this.containerInsert;
+        param.className = "loading-data";
+        this.loadingInsert = new Loading( param );
+
         this.containerErrors.hide();
         this.displaySorts();
         this.managePagination();
         this.displayDatasets();
+
+        // Bind insert button
+        $( "#insert" ).bind( 'click', this, jQuery.proxy( this.onClickInsert, this ) );
     },
 
     // REQUESTS ********************************************************
-    requestRemoveRequest: function()
-    {
+    requestRemoveDataset: function()
+    {
+        this.loadingRemove.display();
         if( this.dataset )
             $.ajax( {
                 url: "backoffice?methodName=removeJeu&id=" + this.dataset.id,
-                success:jQuery.proxy( this.handleRequest, this )
+                success:jQuery.proxy( this.handleRemoveDataset, this ),
+                error: jQuery.proxy( this.showErrors, [this] )
             } );
     },
@@ -57,5 +77,5 @@
         var request = $.ajax( {
             url: "backoffice?methodName=sortJeu&" + parametersUrl,
-            success:jQuery.proxy( this.handleSortRequest, this ),
+            success:jQuery.proxy( this.handleSortDataset, this ),
             error: jQuery.proxy( this.showErrors, [this] )
         } );
@@ -67,25 +87,50 @@
             $.ajax( {
                 url: "backoffice?methodName=moveJeu&id=" + this.dataset.id,
-                success:jQuery.proxy( this.handleFilesMove, this )
+                success:jQuery.proxy( this.handleFilesMove, this ),
+                error: jQuery.proxy( this.showErrors, [this] )
             } );
     },
 
+    requestDatasetInsert: function()
+    {
+        this.loadingInsert.display();
+        if( "" != $( "#categoryNameInsert" ).val() && "" != $( "#datasetNameInsert" ).val() && "" != $( "#versionInsert" ).val() )
+            $.ajax( {
+                url: "backoffice?methodName=insertJeu&categoryName=" + $( "#categoryNameInsert" ).val() + "&datasetName=" + $( "#datasetNameInsert" ).val() + "&version=" + $( "#versionInsert" ).val() ,
+                success:jQuery.proxy( this.handleDatasetInsert, this ),
+                error: jQuery.proxy( this.showErrors, [this] )
+            } );
+    },
+
     // HANDLES ********************************************************
-    handleRequest: function()
-    {
-        this.requestSortDataset();
-    },
-
-    handleSortRequest: function( result )
+    handleRemoveDataset: function( result )
+    {
+        this.loadingRemove.hide();
+        this.containerResultRemove.html( jQuery.parseJSON( result ).success + " " + this.dataset.categoryName + "&nbsp;/&nbsp;" + this.dataset.name );
+        this.containerResultRemove.removeClass( "disable" );
+        this.containerResultRemove.show();
+        this.requestSortDataset();
+    },
+
+    handleSortDataset: function( result )
     {
         this.jSonDatasets = jQuery.parseJSON( result ).jSonDatasets;
         this.nbDatasets = jQuery.parseJSON( result ).datasetNumber;
         this.displayDatasets();
-        this.displayFilesMove();
     },
 
     handleFilesMove: function( result )
     {
-        this.containerResultFilesMove.html( "OK" );
+        this.containerResultMove.html( jQuery.parseJSON( result ).success );
+        this.containerResultMove.removeClass( "disable" );
+        this.containerResultMove.show();
+    },
+
+    handleDatasetInsert: function( result )
+    {
+        this.loadingInsert.hide();
+        this.containerResultInsert.html( jQuery.parseJSON( result ).success + " " + this.dataset.categoryName + "&nbsp;/&nbsp;" + this.dataset.name );
+        this.containerResultInsert.show();
+        this.requestSortDataset();
     },
 
@@ -115,11 +160,11 @@
         if( this.jSonDatasets && 0 < this.jSonDatasets.length )
         {
-            jQuery.each( this.jSonDatasets, jQuery.proxy( function( i, request )
+            jQuery.each( this.jSonDatasets, jQuery.proxy( function( i, dataset )
             {
-                var tr = this.displayTRForDataset( request );
+                var tr = this.displayTRForDataset( dataset );
 
                 // Buttons
                 var tdRemove = $( document.createElement( "td" ) );
-                new Button( {value:interfaceTexts["bo.remove"], parent:tdRemove, id:"button_remove", className: "small negative action_button", contextToSave: request, onClick:jQuery.proxy( this.onClickRemove, this )} );
+                new Button( {value:interfaceTexts["bo.remove"], parent:tdRemove, id:"button_remove", className: "small negative action_button", contextToSave: dataset, onClick:jQuery.proxy( this.onClickRemove, this )} );
                 tr.append( tdRemove );
 
@@ -176,40 +221,68 @@
         if( this.dataset && this.dataset.categoryName )
         {
-            this.containerFilesMove.html( "MOVE <span style='color:#FBE3E4'>" + this.downloadDirectory + "<%=File.separatorChar%>" + this.dataset.categoryName + "<%=File.separatorChar%>" + this.dataset.name + "<%=File.separatorChar%>* </span> <BR/>" +
+            this.containerMove.html( "MOVE <span style='color:#FBE3E4'>" + this.downloadDirectory + "<%=File.separatorChar%>" + this.dataset.categoryName + "<%=File.separatorChar%>" + this.dataset.name + "<%=File.separatorChar%>* </span> <BR/>" +
                     "TO &nbsp;&nbsp;&nbsp;&nbsp; <span style='color:#FBE3E4'>" + this.uploadDirectory + "<%=File.separatorChar%>" + this.dataset.categoryName + "<%=File.separatorChar%>" + this.dataset.name + "<%=File.separatorChar%>* </span>" );
 
-            new Button( {value:interfaceTexts["bo.move"], parent:this.containerFilesMove, id:"button_move", className: "small negative action_button", onClick:jQuery.proxy( this.onClickMove, this )} );
+            new Button( {value:interfaceTexts["bo.move"], parent:this.containerMove, id:"button_move", className: "small negative action_button", onClick:jQuery.proxy( this.onClickMove, this )} );
+            this.containerMove.show();
         }
     },
 
     // EVENTS ********************************************************
+    onClickSort: function()
+    {
+        this.containerPage.html( 1 );
+        this.requestSortDataset();
+    },
+
+    onClickPrevious: function()
+    {
+        decrementPage( this.containerPage, this.containerMaxPage );
+        this.requestSortDataset();
+    },
+
+    onClickNext: function()
+    {
+        incrementPage( this.containerPage, this.containerMaxPage );
+        this.requestSortDataset();
+    },
+
     onClickRemove: function( dataset )
     {
         this.dataset = dataset;
+
+        this.containerErrors.hide();
+        this.hideRemove();
+        this.hideMove();
+        this.hideInsert();
+
+        this.displayFilesMove();
+
+        $( "#categoryNameInsert" ).val( this.dataset.categoryName );
+        $( "#datasetNameInsert" ).val( this.dataset.name );
+
 //        if( window.confirm( interfaceTexts["bo.dataset.remove.confirm"] + " " + dataset.name + " ?" ) )
-        jQuery.proxy( this.requestRemoveRequest(), this );
-    },
-
-    onClickSort: function()
-    {
-        this.containerPage.html( 1 );
-        this.requestSortDataset();
-    },
-
-    onClickPrevious: function()
-    {
-        decrementPage( this.containerPage, this.containerMaxPage );
-        this.requestSortDataset();
-    },
-
-    onClickNext: function()
-    {
-        incrementPage( this.containerPage, this.containerMaxPage );
-        this.requestSortDataset();
+        this.requestRemoveDataset();
     },
 
     onClickMove: function()
     {
+        this.containerErrors.hide();
+        this.containerResultRemove.addClass( "disable" );
+        this.hideMove();
+        this.hideInsert();
         this.requestFilesMove();
+    },
+
+    onClickInsert: function()
+    {
+        this.containerErrors.hide();
+        this.containerResultMove.addClass( "disable" );
+        this.hideInsert();
+
+        if( "" != $( "#categoryNameInsert" ).val() && "" != $( "#datasetNameInsert" ).val() && "" != $( "#versionInsert" ).val() )
+            this.requestDatasetInsert();
+        else
+            this.showErrors( interfaceTexts["bo.dataset.fields"] );
     },
 
@@ -217,5 +290,5 @@
     showErrors: function( result )
     {
-        var context = this[0];
+        var context = this[0] ? this[0] : this;
         var text = this[1];
         context.containerErrors.show();
@@ -224,6 +297,8 @@
         else if( interfaceTexts[result.responseText] )
             context.containerErrors.html( interfaceTexts[result.responseText] );
+        else if( result.responseText )
+            context.containerErrors.html( result.responseText );
         else
-            context.containerErrors.html( result.responseText );
+            context.containerErrors.html( result );
     },
 
@@ -232,4 +307,21 @@
         $( "#previous" ).bind( 'click', this, jQuery.proxy( this.onClickPrevious, this ) );
         $( "#next" ).bind( 'click', this, jQuery.proxy( this.onClickNext, this ) );
+    },
+
+    hideRemove: function()
+    {
+        this.loadingRemove.hide();
+        this.containerResultRemove.hide();
+    },
+
+    hideMove: function()
+    {
+        this.containerResultMove.hide();
+    },
+
+    hideInsert: function()
+    {
+        this.loadingInsert.hide();
+        this.containerResultInsert.hide();
     }
 
Index: /ether_megapoli/trunk/web/backoffice/dataInsertion.jsp
===================================================================
--- /ether_megapoli/trunk/web/backoffice/dataInsertion.jsp	(revision 481)
+++ /ether_megapoli/trunk/web/backoffice/dataInsertion.jsp	(revision 482)
@@ -1,2 +1,3 @@
+<%@ page import="com.ether.WebException" %>
 <%@ page language="java" contentType="text/html; charset=UTF-8" %>
 <%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %>
@@ -69,4 +70,6 @@
         </div>
 
+        <div id="containerResultRemove" class="containerInfos"></div>
+
         <div style="float:left"><bean:message key="bo.total.number"/> :&nbsp;
             <div id="nbResults" style="float:right"></div>
@@ -82,5 +85,4 @@
         </div>
 
-
         <BR/>
         <HR width="50%">
@@ -89,11 +91,20 @@
         <BR/>
 
-        <div id="containerFilesMove"></div>
-        <div id="resultFilesMove"></div>
+        <div id="containerMove"></div>
+        <div id="containerResultMove" class="containerInfos"></div>
         <BR/>
         <HR width="50%">
 
         <%-- ****************** DATASETS INSERTION ****************** --%>
-        <div class="title2">3rd <bean:message key="bo.step"/>.<bean:message key="bo.dataset.remove"/> :</div>
+        <div class="title2">3rd <bean:message key="bo.step"/>.<bean:message key="bo.dataset.insert"/> :</div>
+        <bean:message key="bo.category"/> : <input id="categoryNameInsert">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+        <bean:message key="bo.name"/> : <input id="datasetNameInsert">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+        <bean:message key="bo.version"/> : <input id="versionInsert">
+
+        <div style="float:right">
+            <button id="insert" class="small positive"><bean:message key="bo.insert"/></button>
+        </div>
+        <div id="containerInsert"></div>
+        <div id="containerResultInsert" class="containerInfos"></div>
         <BR/>
 
@@ -112,4 +123,7 @@
             interfaceTexts["bo.go"] = '<bean:message key="bo.go"/>';
             interfaceTexts["bo.move"] = '<bean:message key="bo.move"/>';
+            interfaceTexts["bo.dataset.fields"] = '<bean:message key="bo.dataset.fields"/>';
+
+            interfaceTexts["<%=WebException.WebCode.DOWNLOAD_DIRECTORY_DOESNOT_EXISTS%>"] = "<bean:message key="bo.DOWNLOAD_DIRECTORY_DOESNOT_EXISTS"/>";
 
             new interfaceBODataInsertion( ${datasetNumber}, ${jSonDatasets} );
Index: /ether_megapoli/trunk/web/resources/css/backoffice.css
===================================================================
--- /ether_megapoli/trunk/web/resources/css/backoffice.css	(revision 481)
+++ /ether_megapoli/trunk/web/resources/css/backoffice.css	(revision 482)
@@ -73,5 +73,5 @@
 /** ************************ OTHER ********************** **/
 /** ***************************************************** **/
-#loadingForUser, #loadingForWaitingUser, #loadingForRequest, #loadingForDataset {
+#loadingForUser, #loadingForWaitingUser, #loadingForRequest, #loadingForDataset, #loadingForDatasetRemove {
     margin: auto;
 }
Index: /ether_megapoli/trunk/web/resources/css/ether.css
===================================================================
--- /ether_megapoli/trunk/web/resources/css/ether.css	(revision 481)
+++ /ether_megapoli/trunk/web/resources/css/ether.css	(revision 482)
@@ -116,2 +116,8 @@
     width: 16px;
 }
+
+.loading-data {
+    background-image: url(../../resources/icons/loading_datas.gif);
+    height: 15px;
+    width: 128px;
+}
Index: /ether_megapoli/trunk/web/resources/css/megapoli.css
===================================================================
--- /ether_megapoli/trunk/web/resources/css/megapoli.css	(revision 481)
+++ /ether_megapoli/trunk/web/resources/css/megapoli.css	(revision 482)
@@ -192,4 +192,10 @@
     margin: 10px;
     display: none;
+}
+
+.disable {
+    background-color: #f5f5f5;
+    border: 1px solid #565656;
+    color: #565656;
 }
 
@@ -261,10 +267,9 @@
 
 .containerSlideButton {
-    float: left;
-    /*-moz-border-radius: 4px;*/
-    /*-moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);*/
-    /*-webkit-border-radius: 4px;*/
-    /*-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);*/
-    /*box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);*/
+    float: left; /*-moz-border-radius: 4px;*/
+/*-moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);*/
+/*-webkit-border-radius: 4px;*/
+/*-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);*/
+/*box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);*/
 }
 
Index: /ether_megapoli/trunk/web/src/ApplicationResources_en.properties
===================================================================
--- /ether_megapoli/trunk/web/src/ApplicationResources_en.properties	(revision 481)
+++ /ether_megapoli/trunk/web/src/ApplicationResources_en.properties	(revision 482)
@@ -640,2 +640,8 @@
 bo.dataset.remove.confirm=Do you really want to remove the dataset
 bo.move=Move
+bo.dataset.insert=Dataset insert
+bo.version=Version
+bo.insert=Insert
+bo.dataset.fields=The fields category, dataset and version must be filled
+
+bo.DOWNLOAD_DIRECTORY_DOESNOT_EXISTS=The download directory doesn't exists ! No move available
Index: /ether_megapoli/trunk/web/src/com/ether/ControllerBackoffice.java
===================================================================
--- /ether_megapoli/trunk/web/src/com/ether/ControllerBackoffice.java	(revision 481)
+++ /ether_megapoli/trunk/web/src/com/ether/ControllerBackoffice.java	(revision 482)
@@ -21,4 +21,5 @@
 
 import javax.mail.MessagingException;
+import java.io.File;
 import java.security.DigestException;
 import java.security.NoSuchAlgorithmException;
@@ -462,6 +463,6 @@
     }
 
-    @ControllerMethod()
-    public void removeJeu( @NotNull @ParamName(ParameterConstants.PARAMETER_ID) final Integer jeuId )
+    @ControllerMethod(jsonResult = true)
+    public JSONObject removeJeu( @NotNull @ParamName(ParameterConstants.PARAMETER_ID) final Integer jeuId )
             throws WebException
     {
@@ -469,4 +470,8 @@
         {
             getEtherService().removeJeuById( jeuId );
+
+            final JSONObject result = new JSONObject();
+            result.put( "success", "Dataset removed : " );
+            return result;
         }
         catch( ServiceException e )
@@ -482,11 +487,28 @@
         try
         {
+            final JSONObject result = new JSONObject();
+
             final Jeu jeu = getEtherService().getJeuById( jeuId );
+            if( null == jeu.getCategorie() || null == jeu.getCategorie().getCategorieNom() )
+                throw new WebException( WebException.WebCode.JEU_NOT_CORRECT, "ERROR to move jeu to download directory to upload directory" + jeu );
+
             final String downloadDirectory = (String) getServletContext().getAttribute( "accessDir" );
-            final String uploadDirectory = (String) getServletContext().getAttribute( "uploadDir" );
-            final boolean success = getEtherService().moveFilesFromDownloadToUpload( jeu, downloadDirectory, uploadDirectory );
-
-            final JSONObject result = new JSONObject();
-            result.put( "success", success );
+            final String downloadFilesPath = downloadDirectory + File.separatorChar + jeu.getCategorie().getCategorieNom() + File.separatorChar + jeu.getJeuNom();
+
+            if( !( new File( downloadFilesPath ) ).exists() )
+                throw new WebException( WebException.WebCode.DOWNLOAD_DIRECTORY_DOESNOT_EXISTS, "The download directory doesn't exists ! No move available" + jeu, WebException.getExceptionThrowable() );
+
+            else
+            {
+                final String uploadDirectory = (String) getServletContext().getAttribute( "uploadDir" );
+                final String uploadFilesPath = uploadDirectory + File.separatorChar + jeu.getCategorie().getCategorieNom() + File.separatorChar + jeu.getJeuNom();
+
+                final boolean success = EtherHelper.moveFiles( downloadFilesPath, uploadFilesPath );
+
+                if( success )
+                    result.put( "success", "All files moved !" );
+                else
+                    throw new WebException( WebException.WebCode.JEU_NOT_CORRECT, "ERROR to move jeu to download directory to upload directory" + jeu );
+            }
             return result;
         }
Index: /ether_megapoli/trunk/web/src/com/ether/WebException.java
===================================================================
--- /ether_megapoli/trunk/web/src/com/ether/WebException.java	(revision 481)
+++ /ether_megapoli/trunk/web/src/com/ether/WebException.java	(revision 482)
@@ -50,5 +50,7 @@
         ERROR_NO_USER_FOUND,
         ERROR_NO_REQUEST_FOUND,
-        ERROR_NO_JEU_FOUND
+        ERROR_NO_JEU_FOUND,
+        JEU_NOT_CORRECT,
+        DOWNLOAD_DIRECTORY_DOESNOT_EXISTS
     }
 
