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 extends Config>... configs"); - - // add main config accessor - //generateMainConfigAccessor(); + addConstructor(null, PROTECTED, "super(" + getContext().getParserSimpleName() + ".class, configs);", new String[]{Exception.class.getSimpleName()}, "Class extends Config>... 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{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 + "