Index: maven-commandline-plugin/src/java/org/codelutin/option/generate/java/OptionJavaGenerator.java diff -u maven-commandline-plugin/src/java/org/codelutin/option/generate/java/OptionJavaGenerator.java:1.2 maven-commandline-plugin/src/java/org/codelutin/option/generate/java/OptionJavaGenerator.java:1.3 --- maven-commandline-plugin/src/java/org/codelutin/option/generate/java/OptionJavaGenerator.java:1.2 Thu Jan 3 05:49:48 2008 +++ maven-commandline-plugin/src/java/org/codelutin/option/generate/java/OptionJavaGenerator.java Sat Mar 22 06:07:59 2008 @@ -27,9 +27,9 @@ import org.codelutin.option.def.DefinitionParserContexts.ArgumentContext; import org.codelutin.option.def.DefinitionParserContexts.GroupContext; import org.codelutin.option.def.DefinitionParserContexts.OptionContext; +import org.codelutin.option.generate.JavaGeneratorContext; import org.codelutin.util.CardinalityHelper; -import java.io.File; import java.io.IOException; import static java.lang.reflect.Modifier.PUBLIC; import java.text.FieldPosition; @@ -38,7 +38,7 @@ /** * Generateur d'implantation d'Option. *

- * Utiliser la méthode {@link #doGenerate(File,long, String, OptionContext , String, String, String)} + * Utiliser la méthode {@link #doGenerate(JavaGeneratorContext , OptionContext , String)} * pour générer une nouvelle action. * * @author tony @@ -49,15 +49,11 @@ System.setProperty("org.apache.commons.logging.LogFactory", LutinLogFactory.class.getName()); } - public static void doGenerate(File out, - long timestamp, - String i18nPrefix, + public static void doGenerate(JavaGeneratorContext _context, OptionContext context, - String pack, - String simpleName, - String superClass) throws IOException { + String simpleName) throws IOException { OptionJavaGenerator gen; - gen = new OptionJavaGenerator(out, timestamp, i18nPrefix, context, pack, simpleName, superClass); + gen = new OptionJavaGenerator(_context, context, _context.getOptionPackageName(), simpleName, _context.getOptionSuperClass()); gen.generate(); } @@ -65,14 +61,12 @@ protected OptionContext context; - protected OptionJavaGenerator(File out, - long timestamp, - String i18nPrefix, + protected OptionJavaGenerator(JavaGeneratorContext _context, OptionContext context, String pack, String simpleName, String superClass) { - super(out, timestamp, i18nPrefix, PUBLIC, pack, simpleName, superClass); + super(_context, PUBLIC, pack, simpleName, superClass); this.context = context; } Index: maven-commandline-plugin/src/java/org/codelutin/option/generate/java/OptionParserJavaGenerator.java diff -u maven-commandline-plugin/src/java/org/codelutin/option/generate/java/OptionParserJavaGenerator.java:1.13 maven-commandline-plugin/src/java/org/codelutin/option/generate/java/OptionParserJavaGenerator.java:1.14 --- maven-commandline-plugin/src/java/org/codelutin/option/generate/java/OptionParserJavaGenerator.java:1.13 Wed Mar 19 20:21:42 2008 +++ maven-commandline-plugin/src/java/org/codelutin/option/generate/java/OptionParserJavaGenerator.java Sat Mar 22 06:07:59 2008 @@ -32,9 +32,9 @@ import org.codelutin.option.def.DefinitionParserUtil; import org.codelutin.option.def.OptionDefinition; import org.codelutin.option.def.OptionDefinitionBuilder; +import org.codelutin.option.generate.JavaGeneratorContext; import org.codelutin.util.StringUtil; -import java.io.File; import java.io.IOException; import static java.lang.reflect.Modifier.FINAL; import static java.lang.reflect.Modifier.PUBLIC; @@ -45,26 +45,16 @@ * Permet de générer un {@link OptionParser} ŕ  partir des résultats du parsing * d'un {@link DefinitionParser}. *

- * Utiliser la méthode {@link #doGenerate(java.io.File,long, String,org.codelutin.option.def.DefinitionParserContexts.OptionContext[], String, String, String, String, String, String, String, String)} + * Utiliser la méthode {@link #doGenerate(JavaGeneratorContext)} * pour générer un nouveeau parseur. * * @author chemit */ public class OptionParserJavaGenerator extends AbstractJavaGenerator { - public static void doGenerate(File out, - long timestamp, - String i18nPrefix, - OptionContext[] ocontexts, - String pack, - String simpleName, - String optionKeySimpleName, - String optionPack, - String optionClassPrefix, - String actionPack, - String actionClassPrefix, - String superClass) throws IOException { + + public static void doGenerate(JavaGeneratorContext context) throws IOException { OptionParserJavaGenerator gen; - gen = new OptionParserJavaGenerator(out, timestamp, i18nPrefix, ocontexts, pack, simpleName, optionKeySimpleName, optionPack, optionClassPrefix, actionPack, actionClassPrefix, superClass); + gen = new OptionParserJavaGenerator(context, context.getParserPackageName(), context.getParserSimpleName(), context.getParserSuperClass()); gen.generate(); } @@ -78,33 +68,11 @@ private static final MessageFormat CLASS_JAVADOC_MESSAGE = new MessageFormat("Implantation du parseur d''options.\n\n@author {0}\n@see {1}"); - protected String optionPack; - - protected String optionKeySimpleName; - protected String optionClassPrefix; - protected String actionPack; - protected String actionClassPrefix; - protected OptionContext[] ocontexts; - - protected OptionParserJavaGenerator(File out, - long timestamp, - String i18nPrefix, - OptionContext[] ocontexts, + protected OptionParserJavaGenerator(JavaGeneratorContext context, String pack, String simpleName, - String optionKeySimpleName, - String optionPack, - String optionClassPrefix, - String actionPack, - String actionClassPrefix, String superClass) { - super(out, timestamp, i18nPrefix, PUBLIC, pack, simpleName, superClass); - this.optionKeySimpleName = optionKeySimpleName; - this.optionPack = optionPack; - this.actionPack = actionPack; - this.optionClassPrefix = optionClassPrefix; - this.actionClassPrefix = actionClassPrefix; - this.ocontexts = ocontexts; + super(context, PUBLIC, pack, simpleName, superClass); this.annotation = '@' + I18nable.class.getName(); } @@ -116,7 +84,7 @@ StringBuilder staticBloc = new StringBuilder(); // add OptionKey constant fields - if (ocontexts.length > 0) { + if (getContext().getOptionContexts().length > 0) { addOptionKeyFields(staticBloc); // add static bloc to initiliaze the constants @@ -124,7 +92,7 @@ } // add static method to build the definition by programmation - String body = new ToInitMethodSourceWalker().doWalk(ocontexts); + String body = new ToInitMethodSourceWalker().doWalk(getContext().getOptionContexts()); addStaticMethod("void", "buildDefinitions", BUILD_DEFINITIONS_JAVADOC, 0, body, null, OptionDefinitionBuilder.class.getSimpleName() + " builder"); } @@ -138,28 +106,28 @@ protected void addOptionKeyFields(StringBuilder sb) { String classPrefix; - classPrefix = optionKeySimpleName; - String factoryMethod = "new" + optionKeySimpleName; - registerStaticImport(staticImports, pack + "." + optionKeySimpleName + "." + factoryMethod); + classPrefix = getContext().getOptionKeySimpleName(); + String factoryMethod = "new" + getContext().getOptionKeySimpleName(); + registerStaticImport(staticImports, pack + "." + getContext().getOptionKeySimpleName() + "." + factoryMethod); sb.append("\n// build options definitions"); sb.append("\nOptionDefinition[] definitions = buildDefinitions(").append(simpleNameWithNoType).append(".class);"); sb.append("\n// options key init"); - for (int i = 0; i < ocontexts.length; i++) { - OptionContext context = ocontexts[i]; + for (int i = 0; i < getContext().getOptionContexts().length; i++) { + OptionContext context = getContext().getOptionContexts()[i]; String key = context.getKey(); DefaultOptionAction option = getDefaultOptionAction(key); String suffix = StringUtils.capitalize(key); - String optionImpl = optionClassPrefix + suffix; - String actionImpl = actionClassPrefix + suffix; + String optionImpl = getContext().getOptionSimpleName() + suffix; + String actionImpl = getContext().getActionSimpleName() + suffix; if (option != null) { actionImpl = actionImpl.replace("Abstract", ""); } - if (!pack.equals(optionPack)) { - registerImport(normalImports, optionPack + "." + optionImpl); + if (!pack.equals(getContext().getOptionPackageName())) { + registerImport(normalImports, getContext().getOptionPackageName() + "." + optionImpl); } - if (!pack.equals(actionPack)) { - registerImport(normalImports, actionPack + "." + actionImpl); + if (!pack.equals(getContext().getActionPackageName())) { + registerImport(normalImports, getContext().getActionPackageName() + "." + actionImpl); } String clazz = classPrefix + "<" + optionImpl + ',' + actionImpl + ">"; //String clazz = classPrefix + "<" + optionImpl + ',' + simpleName + ',' + actionImpl + ">"; Index: maven-commandline-plugin/src/java/org/codelutin/option/generate/java/AbstractContextJavaGenerator.java diff -u maven-commandline-plugin/src/java/org/codelutin/option/generate/java/AbstractContextJavaGenerator.java:1.7 maven-commandline-plugin/src/java/org/codelutin/option/generate/java/AbstractContextJavaGenerator.java:1.8 --- maven-commandline-plugin/src/java/org/codelutin/option/generate/java/AbstractContextJavaGenerator.java:1.7 Wed Mar 19 20:21:42 2008 +++ maven-commandline-plugin/src/java/org/codelutin/option/generate/java/AbstractContextJavaGenerator.java Sat Mar 22 06:07:59 2008 @@ -25,9 +25,9 @@ import org.codelutin.option.Config; import org.codelutin.option.ConfigKey; import org.codelutin.option.def.DefinitionParserContexts.ConfigContext; +import org.codelutin.option.generate.JavaGeneratorContext; import org.codelutin.util.StringUtil; -import java.io.File; import java.io.IOException; import static java.lang.reflect.Modifier.ABSTRACT; import static java.lang.reflect.Modifier.FINAL; @@ -39,78 +39,50 @@ /** * Permet de générer un {@link AbstractContext} encapsulant le parser et les configurations *

- * Utiliser la méthode {@link #doGenerate(java.io.File,long, String,ConfigContext[], String, String, String, String,String, String)} + * Utiliser la méthode {@link #doGenerate(JavaGeneratorContext)} * pour générer un nouveeau parseur. * * @author chemit */ public class AbstractContextJavaGenerator extends AbstractJavaGenerator { - public static void doGenerate(File out, - long timestamp, - String i18nPrefix, - ConfigContext[] ccontexts, - String pack, - String configPack, - String parserSimpleName, - String configSimpleName, - String simpleName, - String superClass) throws IOException { + + public static void doGenerate(JavaGeneratorContext context) throws IOException { AbstractContextJavaGenerator gen; - String superClassWithType = superClass + "<" + parserSimpleName + ">"; - gen = new AbstractContextJavaGenerator(out, timestamp, i18nPrefix, ccontexts, pack, configPack, parserSimpleName, configSimpleName, simpleName, superClassWithType); + String superClassWithType = context.getContextSuperClass() + "<" + context.getParserSimpleName() + ">"; + gen = new AbstractContextJavaGenerator(context, context.getContextPackageName(), context.getContextSimpleName(), superClassWithType); gen.generate(); } private static final MessageFormat CLASS_JAVADOC_MESSAGE = new MessageFormat("Implantation du context d''aplication encapsulant le parseur et les configurations.\n\n@author {0}\n@see {1}"); - protected String configPack; - protected String configSimpleName; - protected String parserSimpleName; - - protected ConfigContext[] ccontexts; - - protected AbstractContextJavaGenerator(File out, - long timestamp, - String i18nPrefix, - ConfigContext[] ccontexts, + protected AbstractContextJavaGenerator(JavaGeneratorContext context, String pack, - String configPack, - String parserSimpleName, - String configSimpleName, String simpleName, String superClass) { - super(out, timestamp, i18nPrefix, PUBLIC | ABSTRACT, pack, simpleName, superClass); - this.configPack = configPack; - this.parserSimpleName = parserSimpleName; - this.configSimpleName = configSimpleName; - this.ccontexts = ccontexts; + super(context, PUBLIC | ABSTRACT, pack, simpleName, superClass); annotation = '@' + I18nable.class.getName(); } protected void addContent() { registerStaticImport(staticImports, I18n.class, "n_"); registerImport(normalImports, Config.class); - //registerImport(normalImports, ParserFailedException.class); StringBuilder staticBloc = new StringBuilder(); - if (ccontexts.length > 0) { + if (getContext().getConfigContexts().length > 0) { // add ConfigKey constant fields addConfigKeyFields(staticBloc); } builder.append('\n'); - addConstructor(null, PROTECTED, "super(" + parserSimpleName + ".class);", new String[]{Exception.class.getSimpleName()}); + addConstructor(null, PROTECTED, "super(" + getContext().getParserSimpleName() + ".class);", new String[]{Exception.class.getSimpleName()}); builder.append('\n'); - addConstructor(null, PROTECTED, "super(" + parserSimpleName + ".class, configs);", new String[]{Exception.class.getSimpleName()}, "Class... configs"); - - // add main config accessor - //generateMainConfigAccessor(); + addConstructor(null, PROTECTED, "super(" + getContext().getParserSimpleName() + ".class, configs);", new String[]{Exception.class.getSimpleName()}, "Class... configs"); - if (ccontexts.length > 0) { + if (getContext().getConfigContexts().length > 0) { // add configs shared instances accessors - for (ConfigContext context : ccontexts) { + for (ConfigContext context : getContext().getConfigContexts()) { generateConfigAccessor(context); } @@ -120,7 +92,7 @@ } protected void generateMainConfigAccessor() { - String mainConfig = configSimpleName + "Main"; + String mainConfig = getContext().getConfigSimpleName() + "Main"; String javadoc = generateMainConfigAccessorJavadoc(mainConfig); addMethod(mainConfig, "getConfig", javadoc, PUBLIC, "return getMainConfig();", null); } @@ -130,13 +102,13 @@ String suffix = StringUtils.capitalize(key); String methodName = "get" + suffix + "Config"; String fieldName = getConstantFieldName(key, OptionParserJavaGenerator.SUFFIX_CONFIG_FIELD); - String abstractClass = configSimpleName + suffix; + String abstractClass = getContext().getConfigSimpleName() + suffix; String javadoc = generateConfigAccessorJavadoc(abstractClass, key, fieldName); addMethod(abstractClass, methodName, javadoc, PUBLIC, "return getConfig(" + fieldName + ");", null); } protected void addConfigKeyFields(StringBuilder sb) { - if (ccontexts.length == 0) { + if (getContext().getConfigContexts().length == 0) { return; } registerImport(normalImports, ConfigKey.class); @@ -144,12 +116,12 @@ sb.append("\n// configs key init"); String classPrefix; classPrefix = ConfigKey.class.getSimpleName(); - for (ConfigContext context : ccontexts) { + for (ConfigContext context : getContext().getConfigContexts()) { String key = context.getCategory(); String suffix = StringUtils.capitalize(key); - String configImpl = configSimpleName + suffix; - if (!pack.equals(configPack)) { - registerImport(normalImports, configPack + "." + configImpl); + String configImpl = getContext().getConfigSimpleName() + suffix; + if (!pack.equals(getContext().getConfigPackageName())) { + registerImport(normalImports, getContext().getConfigPackageName() + "." + configImpl); } String clazz = classPrefix + "<" + configImpl + ">"; String fieldName = StringUtil.convertToConstantName(key) + OptionParserJavaGenerator.SUFFIX_CONFIG_FIELD; Index: maven-commandline-plugin/src/java/org/codelutin/option/generate/java/OptionActionJavaGenerator.java diff -u maven-commandline-plugin/src/java/org/codelutin/option/generate/java/OptionActionJavaGenerator.java:1.3 maven-commandline-plugin/src/java/org/codelutin/option/generate/java/OptionActionJavaGenerator.java:1.4 --- maven-commandline-plugin/src/java/org/codelutin/option/generate/java/OptionActionJavaGenerator.java:1.3 Sun Mar 16 11:15:48 2008 +++ maven-commandline-plugin/src/java/org/codelutin/option/generate/java/OptionActionJavaGenerator.java Sat Mar 22 06:07:59 2008 @@ -26,8 +26,8 @@ import org.codelutin.option.def.DefinitionParserContexts.ArgumentContext; import org.codelutin.option.def.DefinitionParserContexts.GroupContext; import org.codelutin.option.def.DefinitionParserContexts.OptionContext; +import org.codelutin.option.generate.JavaGeneratorContext; -import java.io.File; import java.io.IOException; import static java.lang.reflect.Modifier.ABSTRACT; import static java.lang.reflect.Modifier.PUBLIC; @@ -38,7 +38,7 @@ * Le générateur d'action. *

* Utiliser la méthode - * {@link #doGenerate(File,long,String, OptionContext , String, String,String, String, String, String, String, String)} + * {@link #doGenerate(JavaGeneratorContext , OptionContext , String, String,String)} *

* pour générer une nouvelle action. * @@ -46,18 +46,12 @@ */ public class OptionActionJavaGenerator extends AbstractJavaGenerator { - public static void doGenerate(File out, - long timestamp, - String i18nPrefix, + public static void doGenerate(JavaGeneratorContext _context, OptionContext context, - String pack, String simpleName, String superClass, - String optionPack, - String optionClass, - String parserPack, - String parserClass, - String contextClass) throws IOException { + String optionClass + ) throws IOException { String key = context.getKey(); DefaultOptionAction option; try { @@ -69,19 +63,9 @@ OptionActionJavaGenerator gen; if (option == null) { - gen = new OptionActionJavaGenerator(out, timestamp, i18nPrefix, context, - pack, simpleName, superClass, - optionPack, optionClass, - parserPack, parserClass, - contextClass, option - ); + gen = new OptionActionJavaGenerator(_context, context, _context.getActionPackageName(), simpleName, superClass, option, optionClass); } else { - gen = new DefaultOptionActionJavaGenerator(out, timestamp, i18nPrefix, context, - pack, simpleName, superClass, - optionPack, optionClass, - parserPack, parserClass, - contextClass, option - ); + gen = new DefaultOptionActionJavaGenerator(_context, context, _context.getActionPackageName(), simpleName, superClass, option, optionClass); } gen.generate(); } @@ -89,33 +73,21 @@ private static final MessageFormat CLASS_JAVADOC_MESSAGE = new MessageFormat("Implantation de l''action associ\u00E9e ŕ l''option {0}\n" + "qui est implant\u00E9e dans la classe {1}.\n\n@author {2}\n@see {3}\n@see {4}"); protected DefaultOptionAction option; - protected OptionContext context; - protected String optionPack, parserPack; - - protected String optionClass, parserClass, contextClass; + protected String optionClass; - protected OptionActionJavaGenerator(File out, - long timestamp, - String i18nPrefix, + protected OptionActionJavaGenerator(JavaGeneratorContext _context, OptionContext context, String pack, String simpleName, String superClass, - String optionPack, - String optionClass, - String parserPack, - String parserClass, - String contextClass, - DefaultOptionAction option) { - super(out, timestamp, i18nPrefix, option == null ? PUBLIC | ABSTRACT : PUBLIC, pack, option == null ? simpleName : simpleName.replace("Abstract", ""), superClass); - this.optionClass = optionClass; - this.parserClass = parserClass; - this.optionPack = optionPack; - this.parserPack = parserPack; + DefaultOptionAction option, + String optionClass) { + //super(_context, PUBLIC, pack, simpleName.replace("Abstract", ""), superClass); + super(_context, option == null ? PUBLIC | ABSTRACT : PUBLIC, pack, option == null ? simpleName : simpleName.replace("Abstract", ""), superClass); this.context = context; - this.contextClass = contextClass; this.option = option; + this.optionClass = optionClass; } protected void addFields() { @@ -129,9 +101,9 @@ protected void addContent() { // add protected constructor (this is an abstract class) builder.append('\n'); - registerImport(normalImports, optionPack, optionClass); - registerImport(normalImports, parserPack, parserClass); - registerImport(normalImports, parserPack, superClass); + registerImport(normalImports, getContext().getOptionPackageName(), optionClass); + registerImport(normalImports, getContext().getParserPackageName(), getContext().getParserSimpleName()); + registerImport(normalImports, getContext().getParserPackageName(), superClass); addFields(); @@ -151,7 +123,7 @@ @Override protected String generateClassJavadoc() { StringBuffer sb = new StringBuffer(); - CLASS_JAVADOC_MESSAGE.format(new Object[]{context.getKey(), optionClass, userName, optionClass, parserClass}, sb, new FieldPosition(0)); + CLASS_JAVADOC_MESSAGE.format(new Object[]{context.getKey(), optionClass, userName, optionClass, getContext().getParserSimpleName()}, sb, new FieldPosition(0)); return sb.toString(); } Index: maven-commandline-plugin/src/java/org/codelutin/option/generate/java/ConfigJavaGenerator.java diff -u maven-commandline-plugin/src/java/org/codelutin/option/generate/java/ConfigJavaGenerator.java:1.14 maven-commandline-plugin/src/java/org/codelutin/option/generate/java/ConfigJavaGenerator.java:1.15 --- maven-commandline-plugin/src/java/org/codelutin/option/generate/java/ConfigJavaGenerator.java:1.14 Wed Mar 19 20:21:42 2008 +++ maven-commandline-plugin/src/java/org/codelutin/option/generate/java/ConfigJavaGenerator.java Sat Mar 22 06:07:59 2008 @@ -26,9 +26,9 @@ import org.codelutin.option.def.ConfigPropertyModifier; import org.codelutin.option.def.DefinitionParserContexts.ConfigContext; import org.codelutin.option.def.DefinitionParserContexts.ConfigPropertyContext; +import org.codelutin.option.generate.JavaGeneratorContext; import static org.codelutin.option.generate.java.OptionParserJavaGenerator.SUFFIX_PROPERTY_FIELD; -import java.io.File; import java.io.IOException; import static java.lang.reflect.Modifier.ABSTRACT; import static java.lang.reflect.Modifier.FINAL; @@ -40,24 +40,19 @@ /** * Generateur d'implantation de Config. *

- * Utiliser la méthode {@link #doGenerate(File, long, String, ConfigContext, String,String, String, String,String,boolean)} + * Utiliser la méthode {@link #doGenerate(JavaGeneratorContext , ConfigContext, ,String,boolean)} * pour générer la nouvelle config. * * @author tony */ public class ConfigJavaGenerator extends AbstractJavaGenerator { - public static void doGenerate(File out, - long timestamp, - String i18nPrefix, + + public static void doGenerate(JavaGeneratorContext _context, ConfigContext context, - String parserPack, - String pack, String simpleName, - String parserSimpleName, - String superClass, boolean concreteClass) throws IOException { ConfigJavaGenerator gen; - gen = new ConfigJavaGenerator(out, timestamp, i18nPrefix, context, parserPack, pack, simpleName, parserSimpleName, superClass, concreteClass); + gen = new ConfigJavaGenerator(_context, context, _context.getConfigPackageName(), simpleName, _context.getConfigSuperClass(), concreteClass); gen.generate(); } @@ -65,32 +60,23 @@ protected boolean concreteClass; protected ConfigContext context; - protected String parserPack; - protected String parserSimpleName; - protected ConfigJavaGenerator(File out, - long timestamp, - String i18nPrefix, + protected ConfigJavaGenerator(JavaGeneratorContext _context, ConfigContext context, - String parserPack, String pack, String simpleName, - String parserSimpleName, String superClass, boolean concreteClass) { - super(out, timestamp, i18nPrefix, concreteClass ? PUBLIC : ABSTRACT | PUBLIC, pack, simpleName, superClass); + super(_context, concreteClass ? PUBLIC : ABSTRACT | PUBLIC, pack, simpleName, superClass); this.concreteClass = concreteClass; this.context = context; - this.parserPack = parserPack; - this.parserSimpleName = parserSimpleName; annotation = '@' + I18nable.class.getName(); } protected void addContent() { registerStaticImport(staticImports, ConfigPropertyKey.class, "newConfigPropertyKey"); registerImport(normalImports, ConfigPropertyKey.class); - //registerImport(normalImports,parserPack, parserSimpleName); - registerImport(normalImports, parserPack, superClass); + registerImport(normalImports, getContext().getParserPackageName(), superClass); registerStaticImport(staticImports, I18n.class, "n_"); Index: maven-commandline-plugin/src/java/org/codelutin/option/generate/java/AbstractConfigJavaGenerator.java diff -u maven-commandline-plugin/src/java/org/codelutin/option/generate/java/AbstractConfigJavaGenerator.java:1.2 maven-commandline-plugin/src/java/org/codelutin/option/generate/java/AbstractConfigJavaGenerator.java:1.3 --- maven-commandline-plugin/src/java/org/codelutin/option/generate/java/AbstractConfigJavaGenerator.java:1.2 Sun Mar 16 21:24:10 2008 +++ maven-commandline-plugin/src/java/org/codelutin/option/generate/java/AbstractConfigJavaGenerator.java Sat Mar 22 06:07:59 2008 @@ -23,7 +23,7 @@ import org.codelutin.option.def.DefaultOptionAction; import org.codelutin.option.def.DefinitionParser; import org.codelutin.option.def.DefinitionParser.MandatoryConfigProperty; -import org.codelutin.option.def.DefinitionParserContexts; +import org.codelutin.option.generate.JavaGeneratorContext; import org.codelutin.util.StringUtil; import java.io.File; @@ -38,13 +38,14 @@ * Generateur d'implantation de classe de base de config. *

* Utiliser la méthode - * {@link #doGenerate(java.io.File,long, String,org.codelutin.option.def.DefinitionParserContexts.ConfigContext[], String, String, String, String,String, String, String, String, String,String)} + * {@link #doGenerate(JavaGeneratorContext context, String)} * pour générer une nouvelle action. * * @author tony */ public class AbstractConfigJavaGenerator extends AbstractJavaGenerator { - public static void doGenerate(File out, + + /*public static void doGenerate(File out, long timestamp, String i18nPrefix, DefinitionParserContexts.ConfigContext[] ccontexts, @@ -62,30 +63,22 @@ AbstractConfigJavaGenerator gen; gen = new AbstractConfigJavaGenerator(out, timestamp, i18nPrefix, ccontexts, parserPack, contextPack, optionPack, configPack, simpleName, superClass, parserSimpleName, contextSimpleName, optionKeySimpleName, configSimpleName); gen.generate(); - } - - private static final MessageFormat CLASS_JAVADOC_MESSAGE = new MessageFormat("Implantation de base des configurations sp\u00E9cifiques a l''application au parseur {0}.\n\n@author {1}\n@see {2}\n@see {3}\n@see {4}"); - - protected String parserSimpleName; + }*/ - protected String contextSimpleName; + public static void doGenerate(JavaGeneratorContext context, String simpleName) throws IOException { + AbstractConfigJavaGenerator gen; + gen = new AbstractConfigJavaGenerator(context, context.getPackageName(), simpleName, context.getConfigSuperClass()); + gen.generate(); + } - protected String optionKeySimpleName; - - protected DefinitionParserContexts.ConfigContext[] ccontexts; + private static final MessageFormat CLASS_JAVADOC_MESSAGE = new MessageFormat("Implantation de base des configurations sp\u00E9cifiques a l''application au parseur {0}.\n\n@author {1}\n@see {2}\n@see {3}\n@see {4}"); protected MandatoryConfigProperty configFileNameConfigPropertyKey; protected DefaultOptionAction configOptionKey; protected DefaultOptionAction configFileOptionKey; - protected String contextPack; - protected String optionPack; - protected String configPack; - protected String configSimpleName; - - - protected AbstractConfigJavaGenerator(File out, + /*protected AbstractConfigJavaGenerator(File out, long timestamp, String i18nPrefix, DefinitionParserContexts.ConfigContext[] ccontexts, @@ -114,16 +107,27 @@ this.optionPack = optionPack; this.configPack = configPack; + }*/ + + protected AbstractConfigJavaGenerator(JavaGeneratorContext context, + String pack, + String simpleName, + String superClass) { + super(context, ABSTRACT | PUBLIC, pack, simpleName, superClass); + this.configOptionKey = DefaultOptionAction.changeConfig; + this.configFileOptionKey = DefaultOptionAction.changeFileConfig; + this.configFileNameConfigPropertyKey = DefinitionParser.MandatoryConfigProperty.configFileName; } protected void addContent() { + String optionKeySimpleName = getContext().getOptionKeySimpleName() + ""; + // add a proptected constructor (this is an abstract class) registerImport(normalImports, ConfigPropertyKey.class); registerImport(normalImports, File.class); - //registerImport(normalImports, superClassWithNoType); - registerImport(normalImports, pack, parserSimpleName); + registerImport(normalImports, pack, getContext().getParserSimpleName()); registerImport(normalImports, pack, optionKeySimpleName); - registerImport(normalImports, contextPack, contextSimpleName); + registerImport(normalImports, getContext().getContextPackageName(), getContext().getContextSimpleName()); registerImport(normalImports, pack, optionKeySimpleName); builder.append('\n'); addConstructor(null, PUBLIC, "super(category, description);", null, "String category", "String description"); @@ -131,18 +135,18 @@ String field; field = StringUtil.convertToConstantName(configOptionKey.name()) + OptionParserJavaGenerator.SUFFIX_OPTION_FIELD; - registerStaticImport(staticImports, pack + '.' + parserSimpleName + '.' + field); + registerStaticImport(staticImports, pack + '.' + getContext().getParserSimpleName() + '.' + field); addMethod(optionKeySimpleName, "getConfigOptionKey", null, PROTECTED, "return " + field + ";", null); field = StringUtil.convertToConstantName(configFileOptionKey.name()) + OptionParserJavaGenerator.SUFFIX_OPTION_FIELD; - registerStaticImport(staticImports, pack + '.' + parserSimpleName + '.' + field); + registerStaticImport(staticImports, pack + '.' + getContext().getParserSimpleName() + '.' + field); addMethod(optionKeySimpleName, "getConfigFileOptionKey", null, PROTECTED, "return " + field + ";", null); field = StringUtil.convertToConstantName(configFileNameConfigPropertyKey.name()) + OptionParserJavaGenerator.SUFFIX_PROPERTY_FIELD; - String configImpl = configSimpleName + "Main"; + String configImpl = getContext().getConfigSimpleName() + "Main"; - registerStaticImport(staticImports, configPack + '.' + configImpl + '.' + field); + registerStaticImport(staticImports, getContext().getConfigPackageName() + '.' + configImpl + '.' + field); addMethod("ConfigPropertyKey", "getFileNameConfigKey", null, PROTECTED, "return " + field + ";", null); } @@ -150,7 +154,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/OptionKeyJavaGenerator.java diff -u maven-commandline-plugin/src/java/org/codelutin/option/generate/java/OptionKeyJavaGenerator.java:1.4 maven-commandline-plugin/src/java/org/codelutin/option/generate/java/OptionKeyJavaGenerator.java:1.5 --- maven-commandline-plugin/src/java/org/codelutin/option/generate/java/OptionKeyJavaGenerator.java:1.4 Wed Mar 19 20:21:42 2008 +++ maven-commandline-plugin/src/java/org/codelutin/option/generate/java/OptionKeyJavaGenerator.java Sat Mar 22 06:07:59 2008 @@ -22,8 +22,8 @@ import org.codelutin.option.Option; import org.codelutin.option.OptionKey; import org.codelutin.option.def.OptionDefinition; +import org.codelutin.option.generate.JavaGeneratorContext; -import java.io.File; import java.io.IOException; import static java.lang.reflect.Modifier.PRIVATE; import static java.lang.reflect.Modifier.PUBLIC; @@ -33,27 +33,19 @@ /** * Generateur d'implantation de clef d'Option. *

- * Utiliser la méthode {@link #doGenerate(java.io.File,long, String, 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 OptionKeyJavaGenerator extends AbstractJavaGenerator { - public static void doGenerate(File out, - long timestamp, - String i18nPrefix, - String parserPack, - String contextPack, - String optionPack, - String parserSimpleName, - String contextSimpleName, - String simpleName, - String abstractActionSimpleName - ) throws IOException { - String superClassWithType = OptionKey.class.getSimpleName() + ""; - String simpleNameWithType = simpleName + getClassType(abstractActionSimpleName); + + + public static void doGenerate(JavaGeneratorContext context) throws IOException { + String superClassWithType = OptionKey.class.getSimpleName() + ""; + String simpleNameWithType = context.getOptionKeySimpleName() + getClassType(context.getActionSuperClass()); OptionKeyJavaGenerator gen; - gen = new OptionKeyJavaGenerator(out, timestamp, i18nPrefix, parserPack, contextPack, optionPack, simpleNameWithType, superClassWithType, parserSimpleName, contextSimpleName, abstractActionSimpleName); + gen = new OptionKeyJavaGenerator(context, context.getPackageName(), simpleNameWithType, superClassWithType); gen.generate(); } @@ -63,46 +55,23 @@ private static final MessageFormat CLASS_JAVADOC_MESSAGE = new MessageFormat("Implantation de clef d''option sp\u00E9cifique pour le parseur {0}.\n\n@author {1}\n@see {2}\n@see {3}"); - protected String parserSimpleName; - - protected String contextSimpleName; - - protected String abstractActionSimpleName; - protected String contextPack; - protected String actionPack; - protected String optionPack; - - protected OptionKeyJavaGenerator(File out, - long timestamp, - String i18nPrefix, - String parserPack, - String contextPack, - String optionPack, + protected OptionKeyJavaGenerator(JavaGeneratorContext context, + String pack, String simpleName, - String superClass, - String parserSimpleName, - String contextSimpleName, - String abstractActionSimpleName - ) { - super(out, timestamp, i18nPrefix, PUBLIC, parserPack, simpleName, superClass); - this.parserSimpleName = parserSimpleName; - this.abstractActionSimpleName = abstractActionSimpleName; - this.contextSimpleName = contextSimpleName; - this.optionPack = optionPack; - this.contextPack = contextPack; - + String superClass) { + super(context, PUBLIC, pack, simpleName, superClass); } protected void addContent() { registerImport(normalImports, Option.class); registerImport(normalImports, OptionKey.class); registerImport(normalImports, OptionDefinition.class); - //registerImport(normalImports, parserPack,parserSimpleName); - registerImport(normalImports, contextPack, contextSimpleName); + + registerImport(normalImports, getContext().getContextPackageName(), getContext().getContextSimpleName()); // add factory static method newXXX String methodName = "new" + simpleNameWithNoType; - String returnType = getClassType(abstractActionSimpleName) + " " + simpleNameWithNoType + ""; + String returnType = getClassType(getContext().getActionSuperClass()) + " " + simpleNameWithNoType + ""; StringBuilder body = new StringBuilder(); body.append("return new ").append(simpleNameWithNoType).append("(key, optionClass, abstractActionClass, description, definition);"); builder.append('\n'); @@ -115,7 +84,7 @@ @Override protected String generateClassJavadoc() { StringBuffer sb = new StringBuffer(); - CLASS_JAVADOC_MESSAGE.format(new Object[]{parserSimpleName, userName, superClassWithNoType, parserSimpleName}, sb, new FieldPosition(0)); + CLASS_JAVADOC_MESSAGE.format(new Object[]{getContext().getParserSimpleName(), userName, superClassWithNoType, getContext().getParserSimpleName()}, sb, new FieldPosition(0)); return sb.toString(); } 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.7 maven-commandline-plugin/src/java/org/codelutin/option/generate/java/DefaultOptionActionJavaGenerator.java:1.8 --- maven-commandline-plugin/src/java/org/codelutin/option/generate/java/DefaultOptionActionJavaGenerator.java:1.7 Sat Mar 22 01:36:21 2008 +++ maven-commandline-plugin/src/java/org/codelutin/option/generate/java/DefaultOptionActionJavaGenerator.java Sat Mar 22 06:07:59 2008 @@ -2,28 +2,28 @@ import org.codelutin.option.def.DefaultOptionAction; import org.codelutin.option.def.DefinitionParserContexts.OptionContext; +import org.codelutin.option.generate.JavaGeneratorContext; +import org.apache.commons.lang.StringUtils; -import java.io.File; import java.lang.reflect.Modifier; /** @author chemit */ public class DefaultOptionActionJavaGenerator extends OptionActionJavaGenerator { - - 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); + public DefaultOptionActionJavaGenerator(JavaGeneratorContext _context, OptionContext context, String pack, String simpleName, String superClass, DefaultOptionAction option, String optionClass) { + super(_context, context, pack, simpleName, superClass, option, optionClass); } @Override protected void addFields() { - - String type = option.action().getName(); - - registerImport(normalImports, type); - - builder.append('\n'); - addConstructor(null, Modifier.PUBLIC, "super(\"" + type + "\");", new String[]{Exception.class.getSimpleName()}); + String runnable; + if (option == null) { + runnable = getFQN(); + } else { + runnable = "org.codelutin.option.actions.OptionAction" + StringUtils.capitalize(context.getKey()); + } + addConstructor(null, Modifier.PUBLIC, "super(\"" + runnable + "Runnable\");", new String[]{Exception.class.getSimpleName()}); } }