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