a83fab4e457f8454e0a91041b05bfb142c24b42e
[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(Liste.class);
21 packageClasses.add(Piletransformations.class);
22 packageClasses.add(Point.class);
23 packageClasses.add(Segment.class);
24 packageClasses.add(Structure.class);
25
26 System.out.println("Class list created after 2009:");
27 for (Class<?> cl : packageClasses) {
28 ClassPreamble classPreamble = cl.getAnnotation(ClassPreamble.class);
29 if (classPreamble == null) {
30 System.out.println("No annotation for " + cl.getName());
31 continue;
32 }
33 try {
34 SimpleDateFormat sdf = new SimpleDateFormat("dd/M/yyyy");
35 Date date = sdf.parse(classPreamble.date());
36 Integer classYear = date.getYear() + 1900;
37 if (classYear >= 2009) {
38 System.out.println(" " + cl.getName() + " created year " + classYear + ".");
39 }
40 }
41 catch (ParseException e) {
42 e.printStackTrace();
43 }
44 }
45 }
46 }