Index: lutinutil/src/java/org/codelutin/util/OptionArgumentDefinition.java diff -u lutinutil/src/java/org/codelutin/util/OptionArgumentDefinition.java:1.2 lutinutil/src/java/org/codelutin/util/OptionArgumentDefinition.java:1.3 --- lutinutil/src/java/org/codelutin/util/OptionArgumentDefinition.java:1.2 Wed Nov 28 01:23:48 2007 +++ lutinutil/src/java/org/codelutin/util/OptionArgumentDefinition.java Wed Nov 28 17:13:27 2007 @@ -25,7 +25,7 @@ * de la constante elle même, pour un ValuedArgument de sa description et * pour un NamedValuedArgument de sa clef). *
  • sa cardinalité {@link #min} {@link #max}
  • - *
  • sa position {@link #position} (si argument dans un groupe + *
  • sa position {@link #pos} (si argument dans un groupe * d'arguments obligatoires) , sinon -1
  • * * De manière générale cette classe ne doit pas être instanciée directement, @@ -57,18 +57,27 @@ protected int max; /** la position de l'argument dans l'option si argument obligatoire, -1 sinon */ - protected int position; + protected int pos; protected OptionArgumentDefinition(OptionArgumentType type, OptionArgumentValueType valueType, String key, - int min, int max, int position) { + int min, int max, int pos) { this.type = type; this.valueType = valueType; this.key = key; this.min = min; this.max = max; - this.position = position; + this.pos = pos; + } + + public OptionArgumentDefinition(OptionParserAnnotationHelper.OptionArgumentDefinitionA definition) { + this.type = definition.type(); + this.valueType = definition.valueType(); + this.key = definition.key(); + this.min = definition.min(); + this.max = definition.max(); + this.pos = definition.pos(); } public OptionArgumentType getType() { @@ -91,12 +100,12 @@ return min; } - public int getPosition() { - return position; + public int getPos() { + return pos; } public boolean isMandatory() { - return position > -1; + return pos > -1; } @Override Index: lutinutil/src/java/org/codelutin/util/OptionDefinition.java diff -u lutinutil/src/java/org/codelutin/util/OptionDefinition.java:1.2 lutinutil/src/java/org/codelutin/util/OptionDefinition.java:1.3 --- lutinutil/src/java/org/codelutin/util/OptionDefinition.java:1.2 Thu Nov 22 01:08:37 2007 +++ lutinutil/src/java/org/codelutin/util/OptionDefinition.java Wed Nov 28 17:13:27 2007 @@ -14,6 +14,8 @@ package org.codelutin.util; import static org.codelutin.i18n.I18n._; +import org.codelutin.util.OptionParserAnnotationHelper.OptionArgumentDefinitionA; +import org.codelutin.util.OptionParserAnnotationHelper.OptionDefinitionA; import java.io.IOException; import java.io.Writer; @@ -67,6 +69,20 @@ /** la liste de tous les argument possibles */ protected OptionArgumentDefinition[] arguments; + public OptionDefinition(OptionDefinitionA anno) { + this.name = anno.key(); + this.definition = anno.definition(); + this.description = anno.description(); + this.min = anno.min(); + this.max = anno.max(); + this.alias = anno.alias(); + OptionArgumentDefinitionA[] argumentDefinitions = anno.arguments(); + this.arguments = new OptionArgumentDefinition[argumentDefinitions.length]; + for (int i = 0; i < argumentDefinitions.length; i++) { + this.arguments[i] =new OptionArgumentDefinition(argumentDefinitions[i]); + } + } + /** * Pour construire une définition d'option en connaissant à l'avance * la définition de tous ses arguments. @@ -148,11 +164,11 @@ public void printDetail(Writer writer) throws IOException { - String csq = _("lutinutil.parserdef.printDetail.head",definition, + String csq = _("lutinutil.parserdef.printDetail.head", definition, description, String.valueOf((arguments == null ? 0 : arguments.length)), String.valueOf(getNbGroups())); - + writer.append(csq); if (arguments != null) { @@ -162,13 +178,13 @@ for (int i = 0, j = arguments.length; i < j; i++) { OptionArgumentDefinition argument = arguments[i]; - if (currentGroup == -2 || argument.getPosition() != currentGroup) { + if (currentGroup == -2 || argument.getPos() != currentGroup) { // new group found // save old group (if not empty only) printGroupDetail(writer, listGroup, currentGroup, mandatoryGroup); - currentGroup = argument.getPosition(); + currentGroup = argument.getPos(); mandatoryGroup = currentGroup > -1; } listGroup.add(_("lutinutil.parserdef.printDetail.argument.head", i + 1, j, argument)); @@ -223,8 +239,8 @@ } List list = new ArrayList(); for (OptionArgumentDefinition argument : arguments) { - if (!list.contains(argument.getPosition())) { - list.add(argument.getPosition()); + if (!list.contains(argument.getPos())) { + list.add(argument.getPos()); } } int result = list.size(); @@ -241,9 +257,9 @@ } String txt; if (mandatoryGroup) { - txt = _("lutinutil.parserdef.printDetail.group.mandatory",currentGroup, list.size()); + txt = _("lutinutil.parserdef.printDetail.group.mandatory", currentGroup, list.size()); } else { - txt = _("lutinutil.parserdef.printDetail.group.optional",list.size()); + txt = _("lutinutil.parserdef.printDetail.group.optional", list.size()); } writer.append(txt); for (String s : list) {