exo4: add a generic Node class and make use of it.
[Project_POO.git] / exo4 / Main.java
1 import java.util.LinkedList;
2 import java.lang.annotation.Annotation;
3 import java.util.Date;
4 import java.text.SimpleDateFormat;
5 import java.text.ParseException;
6
7 class Main {
8
9 /**
10 * The main() function
11 * @param String[] args main() function arguments array
12 */
13 public static void main(String[] args) {
14 //FIXME: one can create a smart way of building this list
15 LinkedList<Class<?>> packageClasses = new LinkedList<Class<?>>();
16 packageClasses.add(Cercle.class);
17 packageClasses.add(Entiers.class);
18 packageClasses.add(Forme.class);
19 packageClasses.add(Image.class);
20 packageClasses.add(Node.class);
21 packageClasses.add(Liste.class);
22 packageClasses.add(Piletransformations.class);
23 packageClasses.add(Point.class);
24 packageClasses.add(Segment.class);
25 packageClasses.add(Structure.class);
26
27 System.out.println("Class list created after 2009:");
28 for (Class<?> cl : packageClasses) {
29 ClassPreamble classPreamble = cl.getAnnotation(ClassPreamble.class);
30 if (classPreamble == null) {
31 System.out.println("No annotation for " + cl.getName());
32 continue;
33 }
34 try {
35 SimpleDateFormat sdf = new SimpleDateFormat("dd/M/yyyy");
36 Date date = sdf.parse(classPreamble.date());
37 Integer classYear = date.getYear() + 1900;
38 if (classYear >= 2009) {
39 System.out.println(" " + cl.getName() + " created year " + classYear + ".");
40 }
41 }
42 catch (ParseException e) {
43 e.printStackTrace();
44 }
45 }
46 }
47 }