r663 - in branches/1.1.0-Javabuilder: eugene/src/main/java/org/nuiton/eugene maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin
Author: fdesbois Date: 2009-10-28 11:33:37 +0100 (Wed, 28 Oct 2009) New Revision: 663 Modified: branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/Generator.java branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/ModelReader.java branches/1.1.0-Javabuilder/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/EugenePlugin.java Log: Add better generic gestion in plugin (to avoid warnings) Modified: branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/Generator.java =================================================================== --- branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/Generator.java 2009-10-27 17:18:21 UTC (rev 662) +++ branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/Generator.java 2009-10-28 10:33:37 UTC (rev 663) @@ -35,6 +35,8 @@ * * Created: 5 août 2004 * + * @param <M> Model associated to the generator + * * @author Cedric Pineau <pineau@codelutin.com> * @version $Revision$ * @@ -63,16 +65,16 @@ protected long lastModifiedSource = 0; - protected Generator parent = null; + protected Generator<M> parent = null; public Generator() { } - public Generator(Generator parent) { + public Generator(Generator<M> parent) { setParent(parent); } - public void setParent(Generator parent) { + public void setParent(Generator<M> parent) { this.parent = parent; setEncoding(parent.getEncoding()); } Modified: branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/ModelReader.java =================================================================== --- branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/ModelReader.java 2009-10-27 17:18:21 UTC (rev 662) +++ branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/ModelReader.java 2009-10-28 10:33:37 UTC (rev 663) @@ -11,6 +11,7 @@ * * Created: 26 oct. 2009 * + * @param <M> Model to create from reading input files * @author fdesbois * @version $Revision$ * Modified: branches/1.1.0-Javabuilder/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/EugenePlugin.java =================================================================== --- branches/1.1.0-Javabuilder/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/EugenePlugin.java 2009-10-27 17:18:21 UTC (rev 662) +++ branches/1.1.0-Javabuilder/maven-eugene-plugin/src/main/java/org/nuiton/eugene/plugin/EugenePlugin.java 2009-10-28 10:33:37 UTC (rev 663) @@ -167,14 +167,20 @@ getLog().info("will treate model file : " + m); } } + ModelReader<?> modelReader = getReader(); + generate(modelFiles, modelReader); - ModelReader modelReader = getReader(); + fixCompileSourceRoots(); + } + + protected <M extends Model> void generate(File[] modelFiles, ModelReader<M> modelReader) throws MojoFailureException, MojoExecutionException { + if (modelReader == null) { // can skip getLog().warn("no reader to use"); return; } - Model model = modelReader.read(modelFiles); + M model = modelReader.read(modelFiles); List<String> packages = getPackagesToGenerate(); @@ -184,9 +190,9 @@ getLog().info(" generating only for packages " + packages); } - List<Generator> generators = getGenerators(packages, modelReader); + List<Generator<M>> generators = getGenerators(packages, modelReader); - for (Generator generator : generators) { + for (Generator<M> generator : generators) { getLog().info("Apply " + generator.getClass().getSimpleName() + " generator"); //TC-20090829 fix when loading more than one model together... @@ -199,8 +205,6 @@ // generator.generate(modelFile, destDirGen); // } } - - fixCompileSourceRoots(); } @Override @@ -282,11 +286,11 @@ // return modelFiles.toArray(new File[modelFiles.size()]); // } - protected ModelReader getReader() throws MojoFailureException, MojoExecutionException { - ModelReader modelReader = null; + protected ModelReader<?> getReader() throws MojoFailureException, MojoExecutionException { + ModelReader<?> modelReader = null; try { ClassLoader fixedClassLoader = fixClassLoader(); - modelReader = (ModelReader) Class.forName(reader, + modelReader = (ModelReader<?>) Class.forName(reader, true, fixedClassLoader).newInstance(); } catch (InstantiationException eee) { throw new MojoFailureException("Can't instantiate reader : " + reader, eee); @@ -298,19 +302,21 @@ return modelReader; } - protected List<Generator> getGenerators(List<String> generatedPackagesAsList, ModelReader modelReader) + @SuppressWarnings("unchecked") + protected <M extends Model> List<Generator<M>> + getGenerators(List<String> generatedPackagesAsList, ModelReader<M> modelReader) throws MojoFailureException, MojoExecutionException { // init generators Properties generatorProperties = new Properties(); generatorProperties.setProperty("defaultPackage", defaultPackage); - List<Generator> generators = new ArrayList<Generator>(); + List<Generator<M>> generators = new ArrayList<Generator<M>>(); String[] templatesNames = templates.split(","); ClassLoader fixedClassLoader = fixClassLoader(); for (String templateName : templatesNames) { // remove trailing spaces templateName = templateName.trim(); try { - Generator generator = (Generator) Class.forName(templateName, + Generator<M> generator = (Generator<M>) Class.forName(templateName, true, fixedClassLoader).newInstance(); // configuration generator.setExcludeTemplates(Arrays.asList(excludeTemplates));
participants (1)
-
fdesbois@users.nuiton.org