princetonPlainsboro.EcritureXML.java Source code

Java tutorial

Introduction

Here is the source code for princetonPlainsboro.EcritureXML.java

Source

/*
 * 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.
 */
package princetonPlainsboro;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;

/**
 *
 * @author Nathanal
 */

public class EcritureXML {

    private String nomFichier;
    private final static String classeur = "src/donnees/";

    // 'nomFichier' est le nom d'un fichier XML se trouvant dans le repertoire 'classeur' a crire :
    public EcritureXML(String nomFichier) {
        this.nomFichier = nomFichier;
    }

    public void saveDossier(DossierMedical dossier) {

        FileOutputStream out = null;
        // cr le document jDOM contnenant le dossier mdical
        Document jdomDoc = createJDOM(dossier);

        // de jDOM vers xml
        XMLOutputter xml = new XMLOutputter();
        Format format = Format.getPrettyFormat();
        format.setEncoding("UTF-8"); // pour gerer les accents
        xml.setFormat(format);

        try {
            xml.output(jdomDoc, new FileOutputStream(classeur));
        } catch (FileNotFoundException ex) {
            Logger.getLogger(EcritureXML.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(EcritureXML.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    private Document createJDOM(DossierMedical dossier) {
        Document jdomDoc = new Document();

        // racine
        Element rootElement = new Element("dossiers");
        jdomDoc.setRootElement(rootElement);

        //ajoute les fiches de soin
        for (FicheDeSoins fiche : dossier.getFiches()) {

            Element DOMfiche = new Element("ficheDeSoins");

            //Date:
            DOMfiche.addContent(convertDate(fiche.getDate()));

            //Medecin
            DOMfiche.addContent(convertMedecin(fiche.getMedecin()));

            //Patient
            DOMfiche.addContent(convertPatient(fiche.getPatient()));

            //Actes
            for (Acte acte : fiche.getActes()) {
                DOMfiche.addContent(convertActe(acte));
            }

            // ajoute la nouvelle fiche de soin au document
            rootElement.addContent(DOMfiche);

        }

        return jdomDoc;
    }

    private Element convertDate(Date date) {
        Element DOMdate = new Element("date");
        DOMdate.addContent(date.toStringXML());
        return DOMdate;
    }

    private Element convertMedecin(Medecin medecin) {
        Element DOMmedecin = new Element("medecin");

        // nom
        Element nom = new Element("nom");
        nom.addContent(medecin.getNom());
        DOMmedecin.addContent(nom);

        // prenom
        Element prenom = new Element("prenom");
        prenom.addContent(medecin.getPrenom());
        DOMmedecin.addContent(prenom);

        // specialit
        Element spe = new Element("specialite");
        spe.addContent(medecin.getSpecialite().toString());
        DOMmedecin.addContent(spe);

        // numro
        Element num = new Element("numeroTelephone");
        num.addContent(medecin.getNumTel());
        DOMmedecin.addContent(num);

        // mot de passe
        Element pass = new Element("motDePasse");
        pass.addContent(medecin.getMotDePasse());
        DOMmedecin.addContent(pass);

        return DOMmedecin;
    }

    private Element convertPatient(Patient patient) {
        Element DOMpatient = new Element("patient");

        // nom
        Element nom = new Element("nom");
        nom.addContent(patient.getNom());
        DOMpatient.addContent(nom);

        // prenom
        Element prenom = new Element("prenom");
        prenom.addContent(patient.getPrenom());
        DOMpatient.addContent(prenom);

        // numro de Secu
        Long num = patient.getNumSecu();
        // si elle est invalide, on remplace par 0.
        if (num == null)
            num = new Long(0);
        Element numSecu = new Element("numSecu");
        numSecu.addContent(num.toString());
        DOMpatient.addContent(numSecu);

        // cl de Secu
        Element cle = new Element("cle");
        cle.addContent(Integer.toString(patient.getCle()));
        DOMpatient.addContent(cle);

        // date de naissance
        Element date = new Element("date");
        date.addContent(patient.getDateDeNaissance().toStringXML());
        DOMpatient.addContent(date);

        //adresse
        Element adresse = new Element("adresse");
        adresse.addContent(patient.getAdresse());
        DOMpatient.addContent(adresse);

        return DOMpatient;
    }

    private Element convertActe(Acte acte) {
        Element DOMacte = new Element("acte");

        //code
        Element code = new Element("code");
        code.addContent(acte.getCode().toStringSansDetail());
        DOMacte.addContent(code);

        //coef
        Element coef = new Element("coef");
        coef.addContent(Integer.toString(acte.getCoef()));
        DOMacte.addContent(coef);

        return DOMacte;
    }

}