+import java.util.LinkedList;
+import java.lang.annotation.Annotation;
+import java.util.Date;
+import java.text.SimpleDateFormat;
+import java.text.ParseException;
class Main {
- private static void main1() {
- Point p1 = new Point(1, 2);
- Point p2 = new Point(2, 7);
- Segment segment = new Segment(p1, p2);
- Point p3 = new Point(4, 5);
- Cercle cercle = new Cercle(p3, 5.2);
- Point p4 = new Point(2, 3);
- Piletransformations trans = new Piletransformations(10);
-
- boolean rt = trans.empiler(p4);
- if (!rt) {
- System.out.println("Echec empilation");
- }
-
- segment.dessiner(trans);
- cercle.dessiner(trans);
-
- Point p5 = new Point(3, 5);
- segment.deplacer(p5);
- cercle.deplacer(p5);
-
- Image image = new Image();
- image.ajouter(segment);
- image.ajouter(cercle);
- image.dessiner(trans);
- image.deplacer(p5);
- image.dessiner(trans);
-
- trans.depiler();
- }
-
- private static void main2() {
- Point p1 = new Point(1, 2);
- Point p2 = new Point(2, 7);
- Segment segment1 = new Segment(p1, p2);
- Point p3 = new Point(1, 5);
- Point p4 = new Point(3, 1);
- Segment segment2 = new Segment(p3, p4);
- Point p5 = new Point(4, 5);
- Cercle cercle1 = new Cercle(p5, 5.2);
- Point p6 = new Point(5, 4);
- Cercle cercle2 = new Cercle(p6, 4.3);
- Point point1 = new Point(8, -1.5);
- Image image1 = new Image();
- Image image2 = new Image();
- Image image3 = new Image();
- Piletransformations transformations = new Piletransformations(10);
-
- transformations.empiler(point1);
- image1.ajouter(segment1);
- image1.ajouter(cercle1);
- image2.ajouter(segment2);
- image2.ajouter(cercle2);
- image1.dessiner(transformations);
- image2.dessiner(transformations);
- Point point2 = new Point(0.5, 2.5);
- image1.deplacer(point2);
- image3.ajouter(image1);
- image3.ajouter(image2);
- image3.dessiner(transformations);
- transformations.depiler();
- }
-
- public static void main3() {
-
- Affichable[] affichable = new Affichable[10];
-
- Point p1 = new Point(1, 2);
- Point p2 = new Point(2, 7);
- Point p3 = new Point(1, 5);
-
- Entiers entiers = new Entiers(5);
- entiers.inserer(3);
- entiers.inserer(1);
- entiers.inserer(5);
-
- Liste liste = new Liste();
- liste.inserer(3);
- liste.inserer(1);
- liste.inserer(5);
-
- for (int i = 0; i < 10; i++) {
- affichable[i] = entiers;
- affichable[i].afficher();
-
- affichable[i] = liste;
- affichable[i].afficher();
-
- affichable[i] = new Segment(p1, p2);
- affichable[i].afficher();
-
- affichable[i] = new Cercle(p3, 5.5);
- affichable[i].afficher();
- }
-
- }
-
- public static void main4() {
-
- Compactable[] compactable = new Compactable[10];
-
- Point p1 = new Point(1, 2);
- Point p2 = new Point(2, 7);
- Point p3 = new Point(1, 5);
- Point p4 = new Point(3, 1);
-
- Segment segment1 = new Segment(p1, p2);
- Segment segment2 = new Segment(p3, p4);
- Cercle cercle = new Cercle(p3, 5.5);
- Image image = new Image();
- image.ajouter(segment1);
- image.ajouter(segment2);
- image.ajouter(cercle);
-
- Entiers entiers = new Entiers(5);
- entiers.inserer(3);
- entiers.inserer(1);
- entiers.inserer(4);
-
- Liste liste = new Liste();
- liste.inserer(3);
- liste.inserer(1);
- liste.inserer(5);
- liste.inserer(4);
-
- compactable[0] = entiers;
- entiers.afficher();
- compactable[0].compacter(1);
- entiers.afficher();
-
- compactable[1] = liste;
- liste.afficher();
- compactable[1].compacter(1);
- liste.afficher();
-
- compactable[2] = image;
- image.afficher();
- compactable[2].compacter(1);
- image.afficher();
- }
-
+ /**
+ * The main() function
+ * @param String[] args main() function arguments array
+ */
public static void main(String[] args) {
-
- main4();
-
+ //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(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();
+ }
+ }
}
-
}