mBaseDonnees.commit () ;
  public void endDocument () throws SAXException  {    OQLQuery lRequete ; // Requte  raliser sur la base    QueryResults lResultat ; // Rsultat de la requte sur la base    // Insertion dans la base de donne    try    {      mBaseDonnees.begin () ;      // Processus      MProcessus lProcessus = (MProcessus) mObjet.get (OBJET_PROCESSUS) ;      if (lProcessus != null)      {        mBaseDonnees.create (lProcessus) ;      }      mBaseDonnees.commit () ;      // Composant      for (int i = 1 ; i <= nbComposant ; i++)      {        MComposant lComposant = (MComposant) mObjet.get (OBJET_COMPOSANT + i) ;        if (lComposant != null)        {          mBaseDonnees.begin () ;          mObjet.put (OBJET_COMPOSANT + i, lComposant) ;          mBaseDonnees.create (lComposant) ;          mBaseDonnees.commit () ;        }      }      // Definition de travail      for (int i = 1 ; i <= nbDefinitionTravail ; i++)      {        MDefinitionTravail lDefinitionTravail = (MDefinitionTravail) mObjet          .get (OBJET_DEFINITIONTRAVAIL + i) ;        if (lDefinitionTravail != null)        {          mBaseDonnees.begin () ;          mObjet.put (OBJET_DEFINITIONTRAVAIL + i, lDefinitionTravail) ;          mBaseDonnees.create (lDefinitionTravail) ;          mBaseDonnees.commit () ;        }      }      // Role      for (int i = 1 ; i <= nbRole ; i++)      {        MRole lRole = (MRole) mObjet.get (OBJET_ROLE + i) ;        if (lRole != null)        {          mBaseDonnees.begin () ;          mObjet.put (OBJET_ROLE + i, lRole) ;          mBaseDonnees.create (lRole) ;          mBaseDonnees.commit () ;        }      }      // Activite      for (int i = 1 ; i <= nbActivite ; i++)      {        MActivite lActivite = (MActivite) mObjet.get (OBJET_ACTIVITE + i) ;        if (lActivite != null)        {          mBaseDonnees.begin () ;          mObjet.put (OBJET_ACTIVITE + i, lActivite) ;          mBaseDonnees.create (lActivite) ;          mBaseDonnees.commit () ;        }      }      // Produit      for (int i = 1 ; i <= nbProduit ; i++)      {        MProduit lProduit = (MProduit) mObjet.get (OBJET_PRODUIT + i) ;        if (lProduit != null)        {          mBaseDonnees.begin () ;          mObjet.put (OBJET_PRODUIT + i, lProduit) ;          mBaseDonnees.create (lProduit) ;          mBaseDonnees.commit () ;        }      }      // Liens pour la table r01_act_prd_entree      for (int i = 1 ; i <= nbActivite ; i++)      {        String cle = OBJET_ACTIVITE + i + OBJET_PRODUIT + OBJET_ENTREE ;        ArrayList listProduit = (ArrayList) mLienObjet.get (cle) ;        if (listProduit != null)        {          for (int j = 1 ; j <= nbProduit ; j++)          {            if (listProduit.contains (mIdObjet.get (OBJET_PRODUIT + j)))            {              mBaseDonnees.begin () ;              MProduit lProduit = (MProduit) mObjet.get (OBJET_PRODUIT + j) ;              lRequete = mBaseDonnees                .getOQLQuery ("select PRODUIT from owep.modele.processus.MProduit PRODUIT where mId = $1") ;              lRequete.bind (lProduit.getId ()) ;              lResultat = lRequete.execute () ;              lProduit = (MProduit) lResultat.next () ;              MActivite lActivite = (MActivite) mObjet.get (OBJET_ACTIVITE + i) ;              lRequete = mBaseDonnees                .getOQLQuery ("select ACTIVITE from owep.modele.processus.MActivite ACTIVITE where mId = $1") ;              lRequete.bind (lActivite.getId ()) ;              lResultat = lRequete.execute () ;              lActivite = (MActivite) lResultat.next () ;              lProduit.addActiviteSortie (lActivite) ;              mBaseDonnees.commit () ;            }          }        }      }      // Liens pour la table r02_act_prd_sortie      for (int i = 1 ; i <= nbActivite ; i++)      {        String cle = OBJET_ACTIVITE + i + OBJET_PRODUIT + OBJET_SORTIE ;        ArrayList listProduit = (ArrayList) mLienObjet.get (cle) ;        if (listProduit != null)        {          for (int j = 1 ; j <= nbProduit ; j++)          {            if (listProduit.contains (mIdObjet.get (OBJET_PRODUIT + j)))            {              mBaseDonnees.begin () ;              MProduit lProduit = (MProduit) mObjet.get (OBJET_PRODUIT + j) ;              lRequete = mBaseDonnees                .getOQLQuery ("select PRODUIT from owep.modele.processus.MProduit PRODUIT where mId = $1") ;              lRequete.bind (lProduit.getId ()) ;              lResultat = lRequete.execute () ;              lProduit = (MProduit) lResultat.next () ;              MActivite lActivite = (MActivite) mObjet.get (OBJET_ACTIVITE + i) ;              lRequete = mBaseDonnees                .getOQLQuery ("select ACTIVITE from owep.modele.processus.MActivite ACTIVITE where mId = $1") ;              lRequete.bind (lActivite.getId ()) ;              lResultat = lRequete.execute () ;              lActivite = (MActivite) lResultat.next () ;              lProduit.addActiviteEntree (lActivite) ;              mBaseDonnees.commit () ;            }          }        }      }      // Liens pour la table r03_act_rol      for (int i = 1 ; i <= nbRole ; i++)      {        String cle = OBJET_ROLE + i + OBJET_ACTIVITE ;        ArrayList listProduit = (ArrayList) mLienObjet.get (cle) ;        if (listProduit != null)        {          for (int j = 1 ; j <= nbActivite ; j++)          {            if (listProduit.contains (mIdObjet.get (OBJET_ACTIVITE + j)))            {              mBaseDonnees.begin () ;              MActivite lActivite = (MActivite) mObjet.get (OBJET_ACTIVITE + j) ;              lRequete = mBaseDonnees                .getOQLQuery ("select ACTIVITE from owep.modele.processus.MActivite ACTIVITE where mId = $1") ;              lRequete.bind (lActivite.getId ()) ;              lResultat = lRequete.execute () ;              lActivite = (MActivite) lResultat.next () ;              MRole lRole = (MRole) mObjet.get (OBJET_ROLE + i) ;              lRequete = mBaseDonnees                .getOQLQuery ("select ROLE from owep.modele.processus.MRole ROLE where mId = $1") ;              lRequete.bind (lRole.getId ()) ;              lResultat = lRequete.execute () ;              lRole = (MRole) lResultat.next () ;              lActivite.addRole (lRole) ;              mBaseDonnees.commit () ;            }          }        }      }    }    catch (PersistenceException e)    {      e.printStackTrace () ;      throw new SAXException () ;    }    finally    {      try      {        mBaseDonnees.close () ;      }      catch (PersistenceException e1)      {        e1.printStackTrace () ;        throw new SAXException () ;      }    }  }