exo4: add a basic main loop for annotation iteration.
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Thu, 5 Apr 2018 12:09:02 +0000 (14:09 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Thu, 5 Apr 2018 12:09:02 +0000 (14:09 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
16 files changed:
exo4/Affichable.java [moved from exo4/TP2/Affichable.java with 100% similarity]
exo4/Cercle.java [moved from exo4/TP2/Cercle.java with 100% similarity]
exo4/ClassPreamble.java [moved from exo4/TP2/ClassPreamble.java with 100% similarity]
exo4/Compactable.java [moved from exo4/TP2/Compactable.java with 100% similarity]
exo4/Entiers.java [moved from exo4/TP2/Entiers.java with 99% similarity]
exo4/Forme.java [moved from exo4/TP2/Forme.java with 100% similarity]
exo4/Image.java [moved from exo4/TP2/Image.java with 100% similarity]
exo4/Liste.java [moved from exo4/TP2/Liste.java with 100% similarity]
exo4/Main.java
exo4/Main.java.bak0 [moved from exo4/TP2/Main.java with 100% similarity]
exo4/Makefile
exo4/Piletransformations.java [moved from exo4/TP2/Piletransformations.java with 100% similarity]
exo4/Point.java [moved from exo4/TP2/Point.java with 100% similarity]
exo4/Segment.java [moved from exo4/TP2/Segment.java with 100% similarity]
exo4/Structure.java [moved from exo4/TP2/Structure.java with 100% similarity]
exo4/TP2/Makefile [deleted file]

similarity index 100%
rename from exo4/TP2/Cercle.java
rename to exo4/Cercle.java
similarity index 99%
rename from exo4/TP2/Entiers.java
rename to exo4/Entiers.java
index 83d983f8429e87604f1bfcbc9be39d986ea7f8fd..b11f364ac9016a23dd947448f9e459dd6e753d06 100644 (file)
@@ -116,5 +116,4 @@ class Entiers extends Structure {
             current_size = 0;
         }
     }
-
 }
similarity index 100%
rename from exo4/TP2/Forme.java
rename to exo4/Forme.java
similarity index 100%
rename from exo4/TP2/Image.java
rename to exo4/Image.java
similarity index 100%
rename from exo4/TP2/Liste.java
rename to exo4/Liste.java
index 4075cbc4ed5997f2f9c18bf6b6ec1b59a5fba719..d45409374e5890373258777463b65981b5ea53d8 100644 (file)
@@ -1,3 +1,6 @@
+import java.util.LinkedList;
+import java.lang.reflect.Method;
+import java.lang.annotation.Annotation;
 
 class Main {
 
@@ -6,6 +9,24 @@ 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(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);
 
+        for (Class<?> cl : packageClasses) {
+            ClassPreamble classPreamble = cl.getAnnotation(ClassPreamble.class);
+            if (classPreamble == null)
+                System.out.println("No annotation for " + cl.getName());
+                continue;
+
+            System.out.println("Annotation date = " + classPreamble.date());
+        }
     }
 }
similarity index 100%
rename from exo4/TP2/Main.java
rename to exo4/Main.java.bak0
index b6e4a343dad9d00ba92b69f64df514da632242fc..7b626341075e9214b70c8e806a97a5d3430fcbe5 100644 (file)
@@ -46,6 +46,7 @@ JVM = java
 # NAME = Camilo        Juan
 
 CLASSES = \
+               ClassPreamble.java \
                Main.java
 
 #
similarity index 100%
rename from exo4/TP2/Point.java
rename to exo4/Point.java
similarity index 100%
rename from exo4/TP2/Segment.java
rename to exo4/Segment.java
similarity index 100%
rename from exo4/TP2/Structure.java
rename to exo4/Structure.java
diff --git a/exo4/TP2/Makefile b/exo4/TP2/Makefile
deleted file mode 100644 (file)
index 849e82a..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-# define compiler and compiler flag variables
-# define a variable for compiler flags (JFLAGS)
-# define a variable for the compiler (JC)
-# define a variable for the Java Virtual Machine (JVM)
-
-JFLAGS = -g
-JC = javac
-JVM = java
-
-#
-# Clear any default targets for building .class files from .java files; we
-# will provide our own target entry to do this in this makefile.
-# make has a set of default targets for different suffixes (like .c.o)
-# Currently, clearing the default for .java.class is not necessary since
-# make does not have a definition for this target, but later versions of
-# make may, so it doesn't hurt to make sure that we clear any default
-# definitions for these
-#
-
-.SUFFIXES: .java .class
-
-
-#
-# Here is our target entry for creating .class files from .java files
-# This is a target entry that uses the suffix rule syntax:
-#      DSTS:
-#              rule
-# DSTS (Dependency Suffix     Target Suffix)
-# 'TS' is the suffix of the target file, 'DS' is the suffix of the dependency
-#  file, and 'rule'  is the rule for building a target
-# '$*' is a built-in macro that gets the basename of the current target
-# Remember that there must be a < tab > before the command line ('rule')
-#
-
-.java.class:
-       $(JC) $(JFLAGS) $*.java
-
-
-#
-# CLASSES is a macro consisting of N words (one for each java source file)
-# When a single line is too long, use \<return> to split lines that then will be
-# considered as a single line. For example:
-# NAME = Camilo \
-         Juan
-# is understood as
-# NAME = Camilo        Juan
-
-CLASSES = \
-               ClassPreamble.java \
-               Compactable.java \
-               Affichable.java \
-               Structure.java \
-               Point.java \
-               Forme.java \
-               Image.java \
-               Segment.java \
-               Cercle.java \
-               Entiers.java \
-               Liste.java \
-               Piletransformations.java \
-               Main.java
-
-#
-# MAIN is a variable with the name of the file containing the main method
-#
-
-MAIN = Main
-
-#
-# the default make target entry
-# for this example it is the target classes
-
-default: classes
-
-
-# Next line is a target dependency line
-# This target entry uses Suffix Replacement within a macro:
-# $(macroname:string1=string2)
-# In the words in the macro named 'macroname' replace 'string1' with 'string2'
-# Below we are replacing the suffix .java of all words in the macro CLASSES
-# with the .class suffix
-#
-
-classes: $(CLASSES:.java=.class)
-
-
-# Next two lines contain a target for running the program
-# Remember the tab in the second line.
-# $(JMV) y $(MAIN) are replaced by their values
-
-run: $(MAIN).class
-       $(JVM) $(MAIN)
-
-# this line is to remove all unneeded files from
-# the directory when we are finished executing(saves space)
-# and "cleans up" the directory of unneeded .class files
-# RM is a predefined macro in make (RM = rm -f)
-#
-
-clean:
-       $(RM) *.class