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) {