r3623 - in branches/4.1/src: main/java/fr/ifremer/isisfish/equation main/java/fr/ifremer/isisfish/util test/java/fr/ifremer/isisfish/util
Author: echatellier Date: 2012-03-02 10:51:52 +0100 (Fri, 02 Mar 2012) New Revision: 3623 Url: http://forge.codelutin.com/repositories/revision/isis-fish/3623 Log: #841 : Utilisation de paranamer au lieu de l'annotation @Args Juste des tests (ca ne fonctionne pas avec paranamer) Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/equation/ImmigrationEquation.java branches/4.1/src/main/java/fr/ifremer/isisfish/util/ArgTypes.java branches/4.1/src/main/java/fr/ifremer/isisfish/util/Args.java branches/4.1/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java branches/4.1/src/main/java/fr/ifremer/isisfish/util/EvaluatorHelper.java branches/4.1/src/test/java/fr/ifremer/isisfish/util/CompileHelperTest.java branches/4.1/src/test/java/fr/ifremer/isisfish/util/EvaluateHelperTest.java Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/equation/ImmigrationEquation.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/equation/ImmigrationEquation.java 2012-02-29 14:07:39 UTC (rev 3622) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/equation/ImmigrationEquation.java 2012-03-02 09:51:52 UTC (rev 3623) @@ -58,7 +58,7 @@ * d'arrivé pour le groupe passé en argument * @throws Exception */ - @Args({"context", "N", "pop", "group", "arrivalZone"}) + @Args({"context", "N", "pop", "group", "arrivalZone"}) public double compute(SimulationContext context, MatrixND N, Population pop, PopulationGroup group, Zone arrivalZone) throws Exception; Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/util/ArgTypes.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/util/ArgTypes.java 2012-02-29 14:07:39 UTC (rev 3622) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/util/ArgTypes.java 2012-03-02 09:51:52 UTC (rev 3623) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2006 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric + * Copyright (C) 2006 - 2012 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -34,6 +34,8 @@ * Annotation utilisée pour specifier le type des parametres. * * Pour etre plus explicit que "List" en renseignant "List<Zone>" par exemple. + * + * Doit pouvoir être remplacé par l'introspection java sans problème. * * Created: 4 juil. 2006 12:40:46 * @@ -48,5 +50,3 @@ public @interface ArgTypes { String[] value(); } - - Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/util/Args.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/util/Args.java 2012-02-29 14:07:39 UTC (rev 3622) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/util/Args.java 2012-03-02 09:51:52 UTC (rev 3623) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2006 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric + * Copyright (C) 2006 - 2012 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -33,6 +33,8 @@ /** * Annotation pour specifier le nom des arguments car il est impossible * de les avoir par introspection. + * Même via paranamer c'est impossible car sur les interfaces les noms + * ne sont pas présent dans le bytecode. * * Created: 4 juil. 2006 12:40:46 * @@ -47,5 +49,3 @@ public @interface Args { String[] value(); } - - Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java 2012-02-29 14:07:39 UTC (rev 3622) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java 2012-03-02 09:51:52 UTC (rev 3623) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2006 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric + * Copyright (C) 2006 - 2012 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -32,6 +32,7 @@ import java.lang.reflect.Method; import java.net.URL; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Enumeration; @@ -335,7 +336,6 @@ Args args = interfaceMethod.getAnnotation(Args.class); String[] names = args.value(); - String[] stringTypes = null; ArgTypes argTypes = interfaceMethod.getAnnotation(ArgTypes.class); if (argTypes != null) { @@ -343,6 +343,7 @@ } else { stringTypes = new String[names.length]; Class<?>[] types = interfaceMethod.getParameterTypes(); + System.out.println(Arrays.toString(types)); for (int i = 0; i < types.length; i++) { stringTypes[i] = types[i].getName(); } Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/util/EvaluatorHelper.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/util/EvaluatorHelper.java 2012-02-29 14:07:39 UTC (rev 3622) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/util/EvaluatorHelper.java 2012-03-02 09:51:52 UTC (rev 3623) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2006 - 2010 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin + * Copyright (C) 2006 - 2012 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -40,8 +40,8 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.util.FileUtil; +import fr.ifremer.isisfish.IsisFish; import fr.ifremer.isisfish.IsisFishRuntimeException; -import fr.ifremer.isisfish.IsisFish; /** @@ -232,7 +232,7 @@ Args args = interfaceMethod.getAnnotation(Args.class); String [] names = args.value(); - + String [] stringTypes; ArgTypes argTypes = interfaceMethod.getAnnotation(ArgTypes.class); if (argTypes != null) { Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/util/CompileHelperTest.java =================================================================== --- branches/4.1/src/test/java/fr/ifremer/isisfish/util/CompileHelperTest.java 2012-02-29 14:07:39 UTC (rev 3622) +++ branches/4.1/src/test/java/fr/ifremer/isisfish/util/CompileHelperTest.java 2012-03-02 09:51:52 UTC (rev 3623) @@ -27,6 +27,7 @@ import java.io.File; import java.io.IOException; +import java.lang.reflect.Method; import java.net.URL; import java.net.URLClassLoader; import java.util.ArrayList; @@ -41,6 +42,7 @@ import org.junit.Test; import fr.ifremer.isisfish.AbstractIsisFishTest; +import fr.ifremer.isisfish.equation.PopulationReproductionEquation; /** * CompileHelperTest. @@ -238,4 +240,18 @@ nonUnicodeFile.delete(); }*/ + + /** + * Test que le contenu du fichier java correspondant à l'equation est + * corectement généré. + * Notemment suite à l'utilsation de paranamer et aux retrait des + * annotations. + */ + @Test + public void testExtractDoc() { + String content = CompileHelper.extractDoc("PopulationReproduction", "Test", PopulationReproductionEquation.class); + + Assert.assertTrue(content.contains("N : org.nuiton.math.matrix.MatrixND")); + Assert.assertTrue(content.contains("zones : java.util.List<Zone>")); + } } Modified: branches/4.1/src/test/java/fr/ifremer/isisfish/util/EvaluateHelperTest.java =================================================================== --- branches/4.1/src/test/java/fr/ifremer/isisfish/util/EvaluateHelperTest.java 2012-02-29 14:07:39 UTC (rev 3622) +++ branches/4.1/src/test/java/fr/ifremer/isisfish/util/EvaluateHelperTest.java 2012-03-02 09:51:52 UTC (rev 3623) @@ -25,6 +25,7 @@ package fr.ifremer.isisfish.util; +import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; @@ -35,6 +36,7 @@ import fr.ifremer.isisfish.equation.EmigrationEquation; import fr.ifremer.isisfish.equation.PopulationGrowth; import fr.ifremer.isisfish.equation.PopulationGrowthReverse; +import fr.ifremer.isisfish.equation.PopulationReproductionEquation; /** * Test class for {@link EvaluatorHelper}. @@ -153,4 +155,21 @@ Assert.assertNotNull(result); Assert.assertEquals("1.0", result.toString()); } + + /** + * Test que le contenu du fichier java correspondant à l'equation est + * corectement généré. + * Notemment suite à l'utilsation de paranamer et aux retrait des + * annotations. + */ + @Test + public void testGenerateContent() { + Class clazz = PopulationReproductionEquation.class; + Method method = clazz.getDeclaredMethods()[0]; + String content = EvaluatorHelper.generateContent("fr.ifremer.isisfish.equation", + "Test", method, "return 42.0;"); + + Assert.assertTrue(content.contains("fr.ifremer.isisfish.simulator.SimulationContext context")); + Assert.assertTrue(content.contains("java.util.List<PopulationGroup> groups")); + } }
participants (1)
-
echatellier@users.forge.codelutin.com