DataGenerator.java
001 package fr.isae.tags;
002 
003 import java.util.ArrayList;
004 import java.util.Date;
005 
006 /**
007  <code>DataGenerator</code> is a class generating a tree of tags for
008  * unit tests. The tags tree is the one presented in the exercise.
009  *
010  <p>Created: Tue Nov  9 08:54:22 2010</p>
011  *
012  @author <a href="mailto:garion@isae.fr">Christophe Garion</a>
013  @version 1.0
014  */
015 public class DataGenerator {
016 
017     private static ArrayList<MarquePage> mp;
018 
019     /**
020      <code>generateTags</code> generates a vector of bookmarks in the
021      * following order:
022      *
023      <ul>
024      <li>Haskell</li>
025      <li>Eiffel</li>
026      <li>Simula</li>
027      <li>Java @ Oracle</li>
028      <li>JUnit</li>
029      <li>Java API javadoc</li>
030      <li>C++ FAQ Lite</li>
031      <li>Thinking in C++</li>
032      </ul>
033      *
034      * The vector is cached into a private attribute in order to be able
035      * to call this method several times for test comparisons.
036      *
037      @return <code>ArrayList&lt;MarquePage&gt;</code> instance
038      */
039     public static ArrayList<MarquePage> generateMarquePages() {
040         if (mp != null) {
041             return mp;
042         }
043 
044         mp = new ArrayList<MarquePage>();
045 
046         mp.add(new MarquePage("Haskell",
047                                    "http://www.haskell.org/",
048                                    new Date()));
049         mp.add(new MarquePage("Eiffel",
050                                    "http://www.eiffel.com/",
051                                    new Date()));
052         mp.add(new MarquePage("Simula",
053                                    "http://en.wikipedia.org/wiki/Simula",
054                                    new Date()));
055         mp.add(new MarquePage("Java @ Oracle",
056                                    "http://www.oracle.com/us/technologies/java/index.html",
057                                    new Date()));
058         mp.add(new MarquePage("Junit",
059                                    "http://www.junit.org",
060                                    new Date()));
061         mp.add(new MarquePage("Java API javadoc",
062                                    "http://java.sun.com/reference/api/",
063                                    new Date()));
064         mp.add(new MarquePage("C++ FAQ Lite",
065                                    "http://www.parashift.com/c++-faq-lite/",
066                                    new Date()));
067         mp.add(new MarquePage("Thinking in C++",
068                                    "http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html",
069                                    new Date()));
070 
071         return mp;
072     }
073 
074     /**
075      <code>generateEtiquettes</code> generates a vector of tags corresponding
076      * to the exercise example. The order of tags in the vector is obtained
077      * from the example by using breadth-first method.<br/>
078      *
079      * The bookmarks associated to tags are the following:
080      <ul>
081      <li>"langages" tag -> Haskell</li>
082      <li>"objet" tag -> Eiffel, Simula</li>
083      <li>"Java" tag -> Java @ Oracle, JUnit, Java API javadoc</li>
084      <li>"C++" tag -> C++ FAQ Lite, Thinking in C++</li>
085      </ul>
086      *
087      @return <code>ArrayList&lt;Etiquette&gt;</code> instance with the tags
088      *         corresponding to the example
089      */
090     public static ArrayList<Etiquette> generateEtiquettes() {
091         ArrayList<Etiquette> result = new ArrayList<Etiquette>();
092 
093         result.add(new Etiquette("racine"null));
094         result.add(new Etiquette("vacances", result.get(0)));
095         result.add(new Etiquette("langages", result.get(0)));
096         result.add(new Etiquette("objet", result.get(2)));
097         result.add(new Etiquette("procedural", result.get(2)));
098         result.add(new Etiquette("Java", result.get(3)));
099         result.add(new Etiquette("C++", result.get(3)));
100 
101         ArrayList<MarquePage> mpAux = generateMarquePages();
102 
103         result.get(2).ajouter(mpAux.get(0));
104         result.get(3).ajouter(mpAux.get(1));
105         result.get(3).ajouter(mpAux.get(2));
106         result.get(5).ajouter(mpAux.get(3));
107         result.get(5).ajouter(mpAux.get(4));
108         result.get(5).ajouter(mpAux.get(5));
109         result.get(6).ajouter(mpAux.get(6));
110         result.get(6).ajouter(mpAux.get(7));
111 
112         return result;
113     }
114 }