exo4: add a generic Node class and make use of it.
[Project_POO.git] / exo4 / Main.java
index 4075cbc4ed5997f2f9c18bf6b6ec1b59a5fba719..479313d5f4e15df27b09b8ddb477d46e545f4e3a 100644 (file)
@@ -1,3 +1,8 @@
+import java.util.LinkedList;
+import java.lang.annotation.Annotation;
+import java.util.Date;
+import java.text.SimpleDateFormat;
+import java.text.ParseException;
 
 class Main {
 
@@ -6,6 +11,37 @@ class Main {
      * @param String[] args main() function arguments array
      */
     public static void main(String[] args) {
+        //FIXME: one can create a smart way of building this list
+        LinkedList<Class<?>> packageClasses = new LinkedList<Class<?>>();
+        packageClasses.add(Cercle.class);
+        packageClasses.add(Entiers.class);
+        packageClasses.add(Forme.class);
+        packageClasses.add(Image.class);
+        packageClasses.add(Node.class);
+        packageClasses.add(Liste.class);
+        packageClasses.add(Piletransformations.class);
+        packageClasses.add(Point.class);
+        packageClasses.add(Segment.class);
+        packageClasses.add(Structure.class);
 
+        System.out.println("Class list created after 2009:");
+        for (Class<?> cl : packageClasses) {
+            ClassPreamble classPreamble = cl.getAnnotation(ClassPreamble.class);
+            if (classPreamble == null) {
+                System.out.println("No annotation for " + cl.getName());
+                continue;
+            }
+            try {
+                SimpleDateFormat sdf =  new SimpleDateFormat("dd/M/yyyy");
+                Date date = sdf.parse(classPreamble.date());
+                Integer classYear = date.getYear() + 1900;
+                if (classYear >= 2009) {
+                    System.out.println("  " + cl.getName() + " created year " + classYear + ".");
+                }
+            }
+            catch (ParseException e) {
+                e.printStackTrace();
+            }
+        }
     }
 }