Index: maven-commandline-plugin/src/java/org/codelutin/option/generate/java/AbstractOptionActionJavaGenerator.java diff -u maven-commandline-plugin/src/java/org/codelutin/option/generate/java/AbstractOptionActionJavaGenerator.java:1.3 maven-commandline-plugin/src/java/org/codelutin/option/generate/java/AbstractOptionActionJavaGenerator.java:1.4 --- maven-commandline-plugin/src/java/org/codelutin/option/generate/java/AbstractOptionActionJavaGenerator.java:1.3 Wed Mar 19 20:21:42 2008 +++ maven-commandline-plugin/src/java/org/codelutin/option/generate/java/AbstractOptionActionJavaGenerator.java Sat Mar 22 01:36:21 2008 @@ -20,8 +20,8 @@ package org.codelutin.option.generate.java; import org.codelutin.option.Option; +import org.codelutin.option.generate.JavaGeneratorContext; -import java.io.File; import java.io.IOException; import java.lang.reflect.Modifier; import static java.lang.reflect.Modifier.ABSTRACT; @@ -32,13 +32,13 @@ /** * Generateur d'implantation de clef d'Option. *

- * Utiliser la méthode {@link #doGenerate(java.io.File,long, String, String, String, String, String, String, String)} + * Utiliser la méthode {@link #doGenerate(JavaGeneratorContext)} * pour générer une nouvelle action. * * @author tony */ public class AbstractOptionActionJavaGenerator extends AbstractJavaGenerator { - public static void doGenerate(File out, + /* public static void doGenerate(File out, long timestamp, String i18nPrefix, String parserPack, @@ -52,6 +52,15 @@ AbstractOptionActionJavaGenerator gen; gen = new AbstractOptionActionJavaGenerator(out, timestamp, i18nPrefix, parserPack, contextPack, simpleNameWithType, superClassWithType, parserSimpleName, contextSimpleName); gen.generate(); + }*/ + + public static void doGenerate(JavaGeneratorContext context) throws IOException { + + String superClassWithType = context.getActionSuperClass() + "'; + String simpleNameWithType = context.getActionSimpleName() + getClassType(); + AbstractOptionActionJavaGenerator gen; + gen = new AbstractOptionActionJavaGenerator(context, context.getPackageName(), simpleNameWithType, superClassWithType); + gen.generate(); } public static String getClassType() { @@ -60,11 +69,7 @@ private static final MessageFormat CLASS_JAVADOC_MESSAGE = new MessageFormat("Implantation de base des actions sp\u00E9cifiques au parseur {0}.\n\n@author {1}\n@see {2}\n@see {3}\n@see {4}"); - protected String parserSimpleName; - protected String contextSimpleName; - protected String contextPack; - - protected AbstractOptionActionJavaGenerator(File out, + /*protected AbstractOptionActionJavaGenerator(File out, long timestamp, String i18nPrefix, String pack, @@ -74,17 +79,21 @@ String parserSimpleName, String contextSimpleName) { super(out, timestamp, i18nPrefix, ABSTRACT | PUBLIC, pack, simpleName, superClass); - this.parserSimpleName = parserSimpleName; - this.contextSimpleName = contextSimpleName; - this.contextPack = contextPack; + } */ + + protected AbstractOptionActionJavaGenerator(JavaGeneratorContext context, + String pack, + String simpleName, + String superClass) { + super(context, ABSTRACT | PUBLIC, pack, simpleName, superClass); } protected void addContent() { // add a proptected constructor (this is an abstract class) registerImport(normalImports, Option.class); - registerImport(normalImports, pack, parserSimpleName); - registerImport(normalImports, contextPack, contextSimpleName); + registerImport(normalImports, pack, getContext().getParserSimpleName()); + registerImport(normalImports, getContext().getContextPackageName(), getContext().getContextSimpleName()); builder.append('\n'); // optionAction is now with default constructor @@ -96,7 +105,7 @@ @Override protected String generateClassJavadoc() { StringBuffer sb = new StringBuffer(); - CLASS_JAVADOC_MESSAGE.format(new Object[]{parserSimpleName, userName, superClassWithNoType, parserSimpleName, contextSimpleName}, sb, new FieldPosition(0)); + CLASS_JAVADOC_MESSAGE.format(new Object[]{getContext().getParserSimpleName(), userName, superClassWithNoType, getContext().getParserSimpleName(), getContext().getContextSimpleName()}, sb, new FieldPosition(0)); return sb.toString(); } Index: maven-commandline-plugin/src/java/org/codelutin/option/generate/java/AbstractJavaGenerator.java diff -u maven-commandline-plugin/src/java/org/codelutin/option/generate/java/AbstractJavaGenerator.java:1.9 maven-commandline-plugin/src/java/org/codelutin/option/generate/java/AbstractJavaGenerator.java:1.10 --- maven-commandline-plugin/src/java/org/codelutin/option/generate/java/AbstractJavaGenerator.java:1.9 Wed Mar 19 20:21:42 2008 +++ maven-commandline-plugin/src/java/org/codelutin/option/generate/java/AbstractJavaGenerator.java Sat Mar 22 01:36:21 2008 @@ -23,6 +23,7 @@ import org.apache.commons.logging.LogFactory; import org.codelutin.util.FileUtil; import org.codelutin.util.StringUtil; +import org.codelutin.option.generate.JavaGeneratorContext; import java.io.File; import java.io.IOException; @@ -120,6 +121,8 @@ /** internal builder of class */ protected StringBuilder headerBuilder; + private JavaGeneratorContext context; + protected AbstractJavaGenerator(File out, long timestamp, String i18nPrefix, int modifiers, String pack, String simpleName, String superClass, String... interfaceClass) { this.out = out; this.timestamp = timestamp; @@ -134,11 +137,30 @@ this.userName = System.getProperty("user.name", getClass().getSimpleName()); } + protected AbstractJavaGenerator(JavaGeneratorContext context,int modifiers, String pack, String simpleName, String superClass, String... interfaceClass) { + this.context = context; + this.out = context.getOut(); + this.timestamp = context.getTimestamp(); + this.i18nPrefix = context.getI18nPrefix(); + this.pack = pack; + this.simpleName = simpleName; + this.simpleNameWithNoType = getNameWithNoType(simpleName); + this.superClass = superClass; + this.superClassWithNoType = getNameWithNoType(superClass); + this.interfaceClass = interfaceClass; + this.modifiers = modifiers; + this.userName = System.getProperty("user.name", getClass().getSimpleName()); + } + protected String getNameWithNoType(String simpleName) { int pos = simpleName.indexOf('<'); return pos == -1 ? simpleName : simpleName.substring(0, pos); } + public JavaGeneratorContext getContext() { + return context; + } + protected void generate() throws IOException { builder = new StringBuilder(); headerBuilder = new StringBuilder(); Index: maven-commandline-plugin/src/java/org/codelutin/option/generate/java/DefaultOptionActionJavaGenerator.java diff -u maven-commandline-plugin/src/java/org/codelutin/option/generate/java/DefaultOptionActionJavaGenerator.java:1.6 maven-commandline-plugin/src/java/org/codelutin/option/generate/java/DefaultOptionActionJavaGenerator.java:1.7 --- maven-commandline-plugin/src/java/org/codelutin/option/generate/java/DefaultOptionActionJavaGenerator.java:1.6 Wed Mar 19 20:21:42 2008 +++ maven-commandline-plugin/src/java/org/codelutin/option/generate/java/DefaultOptionActionJavaGenerator.java Sat Mar 22 01:36:21 2008 @@ -10,12 +10,11 @@ public class DefaultOptionActionJavaGenerator extends OptionActionJavaGenerator { - protected DefaultOptionActionJavaGenerator(File out, long timestamp, String i18nPrefix, OptionContext context, String pack, String simpleName, String superClass, String optionPack, String optionClass, String parserPack, String parserClass, String contextClass, DefaultOptionAction option) { + public DefaultOptionActionJavaGenerator(File out, long timestamp, String i18nPrefix, OptionContext context, String pack, String simpleName, String superClass, String optionPack, String optionClass, String parserPack, String parserClass, String contextClass, DefaultOptionAction option) { super(out, timestamp, i18nPrefix, context, pack, simpleName, superClass, optionPack, optionClass, parserPack, parserClass, contextClass, option); } - @Override protected void addFields() {