Index: maven-commandline-plugin/src/java/org/codelutin/util/OptionParserGenerator.java diff -u maven-commandline-plugin/src/java/org/codelutin/util/OptionParserGenerator.java:1.2 maven-commandline-plugin/src/java/org/codelutin/util/OptionParserGenerator.java:1.3 --- maven-commandline-plugin/src/java/org/codelutin/util/OptionParserGenerator.java:1.2 Wed Dec 12 21:04:40 2007 +++ maven-commandline-plugin/src/java/org/codelutin/util/OptionParserGenerator.java Wed Dec 12 22:12:50 2007 @@ -30,7 +30,6 @@ import static org.codelutin.i18n.I18n._; import org.codelutin.log.LutinLog; import org.codelutin.log.LutinLogFactory; -import org.codelutin.util.OptionDefinitionParser.OptionArgumentContext; import org.codelutin.util.OptionDefinitionParser.OptionContext; import org.codelutin.util.OptionParserAnnotationHelper.ApplicationA; import org.codelutin.util.OptionParserAnnotationHelper.ArgumentA; @@ -54,9 +53,6 @@ /** prefix of option field in OptionParser implementation */ private static final String PREFIX_OPTION_FIELD = "OPTION_"; - /** prefix of argument field in OptionParser implementation */ - private static final String PREFIX_ARGUMENT_FIELD = "ARGUMENT_"; - /** chemin du classpath où générer les classes compilées */ protected final String out; @@ -95,9 +91,6 @@ // class of impl of Option (@see OptionA.impl()) generateOptionImpls(pool, optionClazz, clazz, map); - // add a property in OptionParser to contains special option - generateApplicationArgumentsProperty(clazz, map); - // add ApplicationA annotation to OptionParser ApplicationA anno = addApplicationAnnotation(pool, clazz, cf, constPool); @@ -131,20 +124,10 @@ protected Map generateParserConstants(CtClass clazz) throws CannotCompileException, NotFoundException, IOException { Map map = new HashMap(); - for (OptionArgumentContext context : parser.arguments) { - String key = context.key; - String name = PREFIX_ARGUMENT_FIELD + StringUtil.convertToConstantName(key); - // add a constant field in OptionParser with key of argument - generateOptionKeyField(clazz, name, key); - } - - String key = OptionParser.APPLICATION_ARGUMENTS_FIELD_NAME; - String name = StringUtil.convertToConstantName(key); - map.put(key, name); for (OptionContext context : parser.options) { - key = context.key; - name = StringUtil.convertToConstantName(key); + String key = context.key; + String name = StringUtil.convertToConstantName(key); map.put(key, name); // add a constant field in OptionParser with key of option generateOptionKeyField(clazz, PREFIX_OPTION_FIELD + name, key); @@ -154,20 +137,14 @@ @SuppressWarnings({"unchecked"}) protected void generateOptionImpls(ClassPool pool, CtClass optionClazz, CtClass clazz, Map map) throws NotFoundException, CannotCompileException, IOException { - // generate Option impl for special Option Option_ApplicationArguments - // which contains application's arguments - CtClass resultCLass = generateOptionImplClass(pool, clazz, map.get(OptionParser.APPLICATION_ARGUMENTS_FIELD_NAME), optionClazz); - // reload it - resultCLass = pool.get(resultCLass.getName()); - // now we have the impl generated to be pushed in context - parser.argumentImpl = resultCLass.toClass(); + // we must create first the impl of Option (for the moment empty) // to push the impl class in ApplicationA annotation. for (OptionContext context : parser.options) { String name = map.get(context.key); if (generateOptionImplementation) { // generate Option impl - resultCLass = generateOptionImplClass(pool, clazz, name, optionClazz); + CtClass resultCLass = generateOptionImplClass(pool, clazz, name, optionClazz); // reload it resultCLass = pool.get(resultCLass.getName()); // now we have the impl generated to be pushed in context @@ -180,46 +157,14 @@ } } - protected void generateApplicationArgumentsProperty(CtClass clazz, Map map) throws CannotCompileException { - String fieldName = OptionParser.APPLICATION_ARGUMENTS_FIELD_NAME; - String className = clazz.getName() + '_' + map.get(fieldName); - //CtField fld = CtField.make("protected " + className + ' ' + fieldName + ";", clazz); - //fld.setModifiers(Modifier.PROTECTED); - //clazz.addField(fld); - CtMethod method; - StringBuilder builder; - builder = new StringBuilder(); - builder.append("public ").append(className).append(" get"); - builder.append(StringUtils.capitalize(fieldName)); - builder.append("() { return (").append(className).append(")").append(fieldName).append(";}"); - method = CtMethod.make(builder.toString(), clazz); - System.out.println(builder); - clazz.addMethod(method); - //method = CtNewMethod.getter("get" + StringUtils.capitalize(fieldName), fld); - //method.setModifiers(Modifier.PROTECTED); - //builder = new StringBuilder(); - //builder.append("public void set").append(StringUtils.capitalize(fieldName)).append("(").append(Option.class.getName()); - //builder.append(" option) {this.").append(fieldName).append("=(").append(className).append(")option ;}"); - //System.out.println(builder); - //method = CtMethod.make(builder.toString(), clazz); - //clazz.addMethod(method); - //method = CtNewMethod.setter("set" + StringUtils.capitalize(fieldName), fld); - //method.setModifiers(Modifier.PROTECTED); - //clazz.addMethod(method); - } - protected void generateOptionImplAccessors(ClassPool pool, CtClass clazz, Map map, ApplicationA anno) throws NotFoundException, CannotCompileException, IOException { // generate accessors for application arguments - String name = map.get(OptionParser.APPLICATION_ARGUMENTS_FIELD_NAME); - String className = clazz.getName() + '_' + name; - generateApplicationOptionImplMethods(pool, className, anno.arguments()); - log.info(_("commandline.parser.impl.build.info", OptionParser.APPLICATION_ARGUMENTS_FIELD_NAME, className)); if (generateOptionImplementation) { // generate all Options accessors for (OptionA definition : anno.options()) { - name = map.get(definition.key()); - className = clazz.getName() + '_' + name; + String name = map.get(definition.key()); + String className = clazz.getName() + '_' + name; generateOptionImplMethods(pool, className, definition); log.info(_("commandline.parser.impl.build.info", definition.key(), className)); } Index: maven-commandline-plugin/src/java/org/codelutin/util/Generate.java diff -u maven-commandline-plugin/src/java/org/codelutin/util/Generate.java:1.1 maven-commandline-plugin/src/java/org/codelutin/util/Generate.java:1.2 --- maven-commandline-plugin/src/java/org/codelutin/util/Generate.java:1.1 Wed Dec 12 21:03:16 2007 +++ maven-commandline-plugin/src/java/org/codelutin/util/Generate.java Wed Dec 12 22:12:51 2007 @@ -170,7 +170,6 @@ try { OptionDefinitionParser parser = OptionDefinitionParser.doParse(typeP, source); log.info(_("commandline.parser.result.info", parser, parser.options.length)); - log.info(_("commandline.parser.result2.info", parser, parser.arguments.length)); return parser; } catch (IOException e) { throw new MojoFailureException(e.getMessage()); @@ -233,9 +232,8 @@ try { String head = _("commandline.generateRstFile.head", projectName); String prefixO = _("commandline.generateRstFile.options.head", projectName); - String prefixA = _("commandline.generateRstFile.arguments.head", projectName); String prefix = _("commandline.generateRstFile.prefix") + ' '; - w.append(OptionParserUtil.toString(applicationA, head, prefixO, prefixA, prefix)); + w.append(OptionParserUtil.toString(applicationA, head, prefixO, prefix)); } catch (IOException e) { throw new MojoFailureException(e.getMessage()); } finally {