Etiquette.java
001 package fr.isae.tags;
002 
003 import java.util.ArrayList;
004 
005 /**
006  <code>Etiquette</code> est une classe representant une etiquette permettant
007  * d'indexer des marque-pages. Les etiquettes sont organisees suivant une ontologie,
008  * une etiquette peut donc avoir des etiquettes filles et une etiquette mere.
009  * Une etiquette n'ayant pas d'etiquette mere est consideree comme etant la racine
010  * de l'arbre d'ontologie.
011  *
012  <p>Created: Tue Nov  9 00:01:34 2010</p>
013  *
014  @author <a href="mailto:garion@isae.fr">Christophe Garion</a>
015  @version 1.0
016  */
017 public class Etiquette {
018 
019     private String nom;
020     private Etiquette mere;
021     private ArrayList<Etiquette> filles;
022     private ArrayList<MarquePage> mp;
023 
024     /**
025      * Creer une instance de <code>Etiquette</code>.
026      *
027      @param nom le nom de l'etiquette qui est une instance de <code>String</code>
028      @param mere l'etiquette mere de l'etiquette a construire dans l'ontologie. Si
029      *              l'etiquette est la racine de l'ontologie, cette valeur devra être
030      *              <code>null</code>.
031      */
032     public Etiquette(String nom, Etiquette mere) {
033         this.nom = nom;
034         this.mere = mere;
035         this.filles = new ArrayList<Etiquette>();
036         if (this.mere != null) {
037             this.mere.filles.add(this);
038         }
039         this.mp = new ArrayList<MarquePage>();
040     }
041 
042     /**
043      * Le nom de l'etiquette.
044      *
045      @return le nom de l'etiquette qui est une instance de <code>String</code>
046      */
047     public String getNom() {
048         return this.nom;
049     }
050 
051     /**
052      * L'etiquette mere de l'etiquette dans l'arbre d'ontologie.
053      *
054      @return l'etiquette mere qui est une instance de <code>Etiquette</code>.
055      *         Cette valeur peut être <code>null</code> si l'etiquette est la racine
056      *         de l'arbre d'ontologie
057      */
058     public Etiquette getMere() {
059         return this.mere;
060     }
061 
062     /**
063      * L'ensemble des etiquettes filles de l'etiquette dans l'arbre d'ontologie.
064      *
065      @return l'ensemble des etiquettes filles sous forme d'une instance de
066      *         <code>ArrayList&lt;Etiquette&gt;</code>
067      */
068     public ArrayList<Etiquette> getFilles() {
069         return this.filles;
070     }
071 
072     /**
073      * L'ensemble des marque-pages associes a l'etiquette.
074      *
075      @return l'ensemble des marque-pages sous forme d'une instance de
076      *         <code>ArrayList&lt;MarquePage&gt;</code>
077      */
078     public ArrayList<MarquePage> getMarquePages() {
079         return this.mp;
080     }
081 
082     /**
083      * Ajouter un marque-page a l'etiquette.
084      *
085      @param mp le marque-page a ajouter
086      */
087     public void ajouter(MarquePage mp) {
088         this.mp.add(mp);
089     }
090 
091     /**
092      * Ajouter plusieurs marque-pages a l'etiquette.
093      *
094      @param mp les marque-pages a ajouter
095      */
096     public void ajouter(MarquePage... mp) {
097         for (MarquePage m : mp) {
098             this.mp.add(m);
099         }
100     }
101 
102     /**
103      * Retirer un marque-page a l'etiquette.
104      *
105      @param mp le marque-page a retirer
106      */
107     public void retirer(MarquePage mp) {
108         this.mp.remove(mp);
109     }
110 
111     @Override public String toString() {
112         return this.nom;
113     }
114 }