gestetu05.GestionnaireUtilisateur.java Source code

Java tutorial

Introduction

Here is the source code for gestetu05.GestionnaireUtilisateur.java

Source

package gestetu05;

import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.File;
import java.io.BufferedWriter;
import java.io.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.jdom2.Attribute;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import static org.jdom2.filter.Filters.document;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author ALEX-MOMO
 */

/////////////////////////////////////////////////////////////////////////////////////////////////////
public class GestionnaireUtilisateur {
    //CONSTRUCTEUR
    public GestionnaireUtilisateur() {
        System.out.println("Cration d'une instance GestionnaireUtilisateur !");
    }

    // Notre lment racine est repertoir dans le fichier XML
    Element racine = new Element("repertoire");
    Document document = new Document(racine);
    // Cration de la liste de STRING pour rcuprer les informations du fichier xml
    List<String> ListeXML = new ArrayList<>();
    int resultatRecherche;

    synchronized void enregistreXML(String fichier) {
        try {
            //On utilise ici un affichage classique avec getPrettyFormat()
            XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
            //Remarquez qu'il suffit simplement de crer une instance de FileOutputStream
            //avec en argument le nom du fichier pour effectuer la srialisation.
            sortie.output(document, new FileOutputStream(fichier));
        } catch (java.io.IOException e) {
        }
    }

    synchronized void EcrireFichierXML(List<String> Liste) {
        int i = 0;
        int e = Liste.size();
        System.out.println(e);
        System.out.println(Liste);
        racine.removeChildren("utilisateur");
        while (i < e) {
            Element utilisateur = new Element("utilisateur");
            Attribute numUtilisateur = new Attribute("NumroUtilisateur", String.valueOf(i / 3));
            utilisateur.setAttribute(numUtilisateur);
            Element nom = new Element("nom");
            nom.setText(Liste.get(i));
            utilisateur.addContent(nom);
            Element mot_de_passe = new Element("MotDePasse");
            mot_de_passe.setText(Liste.get(i + 1));
            utilisateur.addContent(mot_de_passe);
            Element prof = new Element("Profession");
            prof.setText(Liste.get(i + 2));
            utilisateur.addContent(prof);
            racine.addContent(utilisateur);
            i = i + 3;
        }
        ;

    }

    void ChercherInformation(String NomFichier, String nom, String mdp) {

        //On cre une instance de SAXBuilder
        SAXBuilder sxb = new SAXBuilder();
        try {
            //On cre un nouveau document JDOM avec en argument le fichier XML
            //Le parsing est termin ;)
            document = sxb.build(new File(NomFichier));
        } catch (JDOMException | IOException e) {
        }

        //On initialise un nouvel lment racine avec l'lment racine du document.
        racine = document.getRootElement();
        //On cre une List contenant tous les noeuds "utilisateur" de l'Element racine
        List listUtilisateurs = racine.getChildren("utilisateur");
        //On cre un Iterator sur notre liste
        Iterator i = listUtilisateurs.iterator();

        while (i.hasNext()) {
            //On recre l'Element courant  chaque tour de boucle afin de
            //pouvoir utiliser les mthodes propres aux Element comme :
            //slectionner un nud fils, modifier du texte, etc...
            Element courant = (Element) i.next();
            //On affiche le nom de llment courant

            System.out.println(courant.getChild("nom").getText());
            System.out.println(courant.getChild("MotDePasse").getText());
            System.out.println("nom2" + nom);
            System.out.println("mdp2" + mdp);
            if (courant.getChild("nom").getText().equals(nom)
                    && courant.getChild("MotDePasse").getText().equals(mdp)) {
                resultatRecherche = 1;
                System.out.println("good");
                break;
            } else {
                resultatRecherche = 0;
            }

        }
        System.out.println("_-_" + resultatRecherche);
    }

    void ModicationXML(String NomFichier, String NomU, String MdpU) {
        List<String> ListeUtilisateur = new ArrayList<>();
        //On cre une instance de SAXBuilder
        SAXBuilder sxb = new SAXBuilder();
        try {
            //On cre un nouveau document JDOM avec en argument le fichier XML
            //Le parsing est termin ;)
            document = sxb.build(new File(NomFichier));
        } catch (JDOMException | IOException e) {
        }

        //On initialise un nouvel lment racine avec l'lment racine du document.
        racine = document.getRootElement();
        //On cre une List contenant tous les noeuds "utilisateur" de l'Element racine
        List listUtilisateurs = racine.getChildren("utilisateur");
        //On cre un Iterator sur notre liste
        Iterator i = listUtilisateurs.iterator();

        while (i.hasNext()) {
            //On recre l'Element courant  chaque tour de boucle afin de
            //pouvoir utiliser les mthodes propres aux Element comme :
            //slectionner un nud fils, modifier du texte, etc...
            Element courant = (Element) i.next();
            String U;
            String M;
            U = courant.getChild("nom").getText();
            M = courant.getChild("MotDePasse").getText();
            //On affiche le nom de llment courant
            if (M.equals(MdpU) && U.equals(NomU)) {

                System.out.println("Utilisateur trouv");

            } else {
                ListeUtilisateur.add(courant.getChild("nom").getText());
                ListeUtilisateur.add(courant.getChild("MotDePasse").getText());
                ListeUtilisateur.add(courant.getChild("Profession").getText());
            }

        }
        System.out.println("Liste modifie:" + ListeUtilisateur);
        EcrireFichierXML(ListeUtilisateur);
        enregistreXML("Exercice.xml");
    }

    List<String> LireXML(String NomFichier) {
        List<String> ListeUtilisateur = new ArrayList<>();
        //On cre une instance de SAXBuilder
        SAXBuilder sxb = new SAXBuilder();
        try {
            //On cre un nouveau document JDOM avec en argument le fichier XML
            //Le parsing est termin ;)
            document = sxb.build(new File(NomFichier));
        } catch (JDOMException | IOException e) {
        }

        //On initialise un nouvel lment racine avec l'lment racine du document.
        racine = document.getRootElement();
        //On cre une List contenant tous les noeuds "utilisateur" de l'Element racine
        List listUtilisateurs = racine.getChildren("utilisateur");
        //On cre un Iterator sur notre liste
        Iterator i = listUtilisateurs.iterator();

        while (i.hasNext()) {
            //On recre l'Element courant  chaque tour de boucle afin de
            //pouvoir utiliser les mthodes propres aux Element comme :
            //slectionner un nud fils, modifier du texte, etc...
            Element courant = (Element) i.next();
            //On affiche le nom de llment courant
            ListeUtilisateur.add(courant.getChild("nom").getText());
            ListeUtilisateur.add(courant.getChild("MotDePasse").getText());
            ListeUtilisateur.add(courant.getChild("Profession").getText());

        }
        System.out.println(ListeUtilisateur);
        return ListeUtilisateur;
    }

    int AjouterUtilisateur(List<String> AjoutUtilisateur, String NomFichier) {
        List<String> ListeUtilisateur = new ArrayList<>();
        ListeUtilisateur = LireXML(NomFichier);
        int resultatAjout = 0;

        //On cre une instance de SAXBuilder
        SAXBuilder sxb = new SAXBuilder();
        try {
            //On cre un nouveau document JDOM avec en argument le fichier XML
            //Le parsing est termin ;)
            document = sxb.build(new File(NomFichier));
        } catch (JDOMException | IOException e) {
        }

        //On initialise un nouvel lment racine avec l'lment racine du document.
        racine = document.getRootElement();
        //On cre une List contenant tous les noeuds "utilisateur" de l'Element racine
        List listUtilisateurs = racine.getChildren("utilisateur");
        //On cre un Iterator sur notre liste
        Iterator i = listUtilisateurs.iterator();

        while (i.hasNext()) {
            //On recre l'Element courant  chaque tour de boucle afin de
            //pouvoir utiliser les mthodes propres aux Element comme :
            //slectionner un nud fils, modifier du texte, etc...
            Element courant = (Element) i.next();
            //On affiche le nom de llment courant
            if (courant.getChild("nom").getText().equals(AjoutUtilisateur.get(0))) {
                resultatAjout = 0;
                System.out.println("Utlisateur dj prsent");
                break;
            } else {
                resultatAjout = 1;
            }
        }

        if (resultatAjout == 1) {

            ListeUtilisateur.add(AjoutUtilisateur.get(0));
            ListeUtilisateur.add(AjoutUtilisateur.get(1));
            ListeUtilisateur.add(AjoutUtilisateur.get(2));
            System.out.println(ListeUtilisateur);
            EcrireFichierXML(ListeUtilisateur);
            enregistreXML("Exercice.xml");
        }
        return resultatAjout;
    }
}