Observable.java
01 package fr.isae.observer;
02 
03 import java.util.ArrayList;
04 
05 /**
06  <code>Observable</code> est une classe representant un type
07  * d'objets pouvant prevenir d'autres objets d'une mise a jour de
08  * son etat.
09  *
10  @author <a href="mailto:garion@isae.fr">Christophe Garion</a>
11  @version 1.0
12  */
13 public class Observable {
14 
15     private ArrayList<Observateur> obs;
16 
17     /**
18      * Creer un nouvel observable avec une liste d'observateurs vide.
19      */
20     public Observable() {
21         this.obs = new ArrayList<Observateur>();
22     }
23 
24     /**
25      <code>inscrire</code> permet d'ajouter un observateur a la
26      *  liste des observateurs de l'objet.
27      *
28      @param o un <code>Observateur</code> a ajouter
29      */
30     public void inscrire(Observateur o) {
31         this.obs.add(o);
32     }
33 
34     /**
35      <code>annuler</code> permet de retirer un observateur de la
36      * liste des observateurs de l'objet.
37      *
38      @param o un <code>Observateur</code> a retirer
39      */
40     public void annuler(Observateur o) {
41         this.obs.remove(o);
42     }
43 
44     /**
45      <code>avertir</code> permet d'avertir tous les observateurs
46      *  de l'objet d'une mise a jour.
47      *
48      */
49     protected void avertir() {
50         for (Observateur o : this.obs) {
51             o.miseAJour();
52         }
53     }
54 }