From 79f85d7ceab947822973561efc3baa80305463bc Mon Sep 17 00:00:00 2001
From: Emmanuel Bruno <bruno@univ-tln.fr>
Date: Tue, 4 Nov 2014 18:05:17 +0100
Subject: [PATCH] adapte pour l'utilisation de service rest

---
 .../fr/univtln/bruno/d14/simpleihm/App.java   |  3 ---
 .../univtln/bruno/d14/simpleihm/Auteur.java   | 23 +++++++++++++++----
 .../d14/simpleihm/ControleurBibliotheque.java | 15 ++++++------
 .../d14/simpleihm/ModeleBibliotheque.java     | 14 +++++++++--
 4 files changed, 37 insertions(+), 18 deletions(-)

diff --git a/src/main/java/fr/univtln/bruno/d14/simpleihm/App.java b/src/main/java/fr/univtln/bruno/d14/simpleihm/App.java
index 9674a1a..953a665 100644
--- a/src/main/java/fr/univtln/bruno/d14/simpleihm/App.java
+++ b/src/main/java/fr/univtln/bruno/d14/simpleihm/App.java
@@ -10,8 +10,5 @@ public class App {
 
         bibliotheque.ajouterAuteur(new Auteur.AuteurBuilder().setPrenom("Jean").setNom("Martin").createAuteur());
         bibliotheque.ajouterAuteur(new Auteur.AuteurBuilder().setPrenom("Marie").setNom("Durand").createAuteur());
-
-
-
     }
 }
diff --git a/src/main/java/fr/univtln/bruno/d14/simpleihm/Auteur.java b/src/main/java/fr/univtln/bruno/d14/simpleihm/Auteur.java
index d8e086d..30c57bf 100644
--- a/src/main/java/fr/univtln/bruno/d14/simpleihm/Auteur.java
+++ b/src/main/java/fr/univtln/bruno/d14/simpleihm/Auteur.java
@@ -1,15 +1,28 @@
 package fr.univtln.bruno.d14.simpleihm;
 
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import java.io.Serializable;
+
 /**
  * Created by bruno on 03/10/14.
  */
-public class Auteur {
+//Cette annotation sert à la serialisation en XML et en JSON
+@XmlRootElement
+public class Auteur implements Serializable {
     public static int nbAuteur = 0;
-    public final int ID;
+    public int ID;
+    @XmlElement
     private String nom;
+    @XmlElement
     private String prenom;
+    @XmlElement
     private String biographie;
 
+    //Le constructeur sans paramètre est obligatoire pour la sérialisation en JSON/XML
+    public Auteur() {
+    }
+
     public static class AuteurBuilder {
         private String nom;
         private String prenom;
@@ -31,7 +44,7 @@ public class Auteur {
         }
 
         public Auteur createAuteur() {
-            return new Auteur(nom, prenom, biographie);
+            return new Auteur(nbAuteur++, nom, prenom, biographie);
         }
     }
 
@@ -39,8 +52,8 @@ public class Auteur {
         return biographie;
     }
 
-    private Auteur(String nom, String prenom, String biographie) {
-        this.ID = nbAuteur++;
+    private Auteur(int id, String nom, String prenom, String biographie) {
+        this.ID = id;
         this.nom = nom;
         this.prenom = prenom;
         this.biographie = biographie;
diff --git a/src/main/java/fr/univtln/bruno/d14/simpleihm/ControleurBibliotheque.java b/src/main/java/fr/univtln/bruno/d14/simpleihm/ControleurBibliotheque.java
index 59386f1..43dd6ef 100644
--- a/src/main/java/fr/univtln/bruno/d14/simpleihm/ControleurBibliotheque.java
+++ b/src/main/java/fr/univtln/bruno/d14/simpleihm/ControleurBibliotheque.java
@@ -54,18 +54,17 @@ public class ControleurBibliotheque {
 
     public void ajouterAuteur() {
         try {
-            modeleBibliotheque.ajouterAuteur(new Auteur.AuteurBuilder()
-                    .setPrenom(prenomNouvelAuteurModel.getText(0, prenomNouvelAuteurModel.getLength()))
-                    .setNom(nomNouvelAuteurModel.getText(0, nomNouvelAuteurModel.getLength()))
-                    .createAuteur());
+            modeleBibliotheque.ajouterAuteur(
+                    prenomNouvelAuteurModel.getText(0, prenomNouvelAuteurModel.getLength()),
+                    nomNouvelAuteurModel.getText(0, nomNouvelAuteurModel.getLength()));
         } catch (BadLocationException e) {
             e.printStackTrace();
         }
         clearAuteur();
     }
 
-    public void ajouterAuteur(Auteur auteur) {
-        modeleBibliotheque.ajouterAuteur(auteur);
+    public void supprimerAuteur(final int ID) {
+        modeleBibliotheque.supprimerAuteur(ID);
     }
 
     public void supprimerAuteur(Auteur auteur) {
@@ -74,8 +73,8 @@ public class ControleurBibliotheque {
 
     public void clearAuteur() {
         try {
-            nomNouvelAuteurModel.remove(0,nomNouvelAuteurModel.getLength());
-            prenomNouvelAuteurModel.remove(0,prenomNouvelAuteurModel.getLength());
+            nomNouvelAuteurModel.remove(0, nomNouvelAuteurModel.getLength());
+            prenomNouvelAuteurModel.remove(0, prenomNouvelAuteurModel.getLength());
         } catch (BadLocationException e) {
             e.printStackTrace();
         }
diff --git a/src/main/java/fr/univtln/bruno/d14/simpleihm/ModeleBibliotheque.java b/src/main/java/fr/univtln/bruno/d14/simpleihm/ModeleBibliotheque.java
index d2a9d0f..55d391b 100644
--- a/src/main/java/fr/univtln/bruno/d14/simpleihm/ModeleBibliotheque.java
+++ b/src/main/java/fr/univtln/bruno/d14/simpleihm/ModeleBibliotheque.java
@@ -1,6 +1,8 @@
 package fr.univtln.bruno.d14.simpleihm;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Observable;
 
 /**
  * Created by bruno on 03/10/14.
@@ -11,11 +13,15 @@ public class ModeleBibliotheque extends Observable {
     public enum ModeleBibliothequeEvent {AUTEUR, DOCUMENT, MATERIEL}
 
     public Auteur getAuteur(final int ID) {
-        for (Auteur auteur:auteurs)
+        for (Auteur auteur : auteurs)
             if (auteur.ID == ID) return auteur;
         return null;
     }
 
+    public void ajouterAuteur(String prenom, String nom) {
+        ajouterAuteur(new Auteur.AuteurBuilder().setPrenom(prenom).setNom(nom).createAuteur());
+    }
+
     public void ajouterAuteur(Auteur auteur) {
         auteurs.add(auteur);
         //On previent les observateurs du changement
@@ -23,6 +29,10 @@ public class ModeleBibliotheque extends Observable {
         notifyObservers(ModeleBibliothequeEvent.AUTEUR);
     }
 
+    public void supprimerAuteur(final int ID) {
+        supprimerAuteur(getAuteur(ID));
+    }
+
     public void supprimerAuteur(Auteur auteur) {
         auteurs.remove(auteur);
         //On previent les observateurs du changement
-- 
GitLab