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<Etiquette></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<MarquePage></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 }
|