Index: lutinutil/src/java/org/codelutin/util/OptionParserAnnotationHelper.java diff -u /dev/null lutinutil/src/java/org/codelutin/util/OptionParserAnnotationHelper.java:1.1 --- /dev/null Wed Nov 28 17:12:06 2007 +++ lutinutil/src/java/org/codelutin/util/OptionParserAnnotationHelper.java Wed Nov 28 17:12:01 2007 @@ -0,0 +1,102 @@ +package org.codelutin.util; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * This classe contains all Annotations used in {@link OptionParser} to describe + * parser. + * + * @author chemit + */ + +public class OptionParserAnnotationHelper { + + /** + * Annotation pour définir le paramétrage d'un parseur d'option + * + * @author chemit + */ + @Retention(value = RetentionPolicy.RUNTIME) + + @Target(value = ElementType.TYPE) + + public static @interface OptionParserA { + + /** @return la liste des clef d'options disponibles */ + public abstract String[] keys(); + + } + + /** + * Annotation pour définir le paramétrage d'une définition d'option + * + * @author chemit + */ + @Retention(value = RetentionPolicy.RUNTIME) + + @Target(value = ElementType.FIELD) + + public static @interface OptionDefinitionA { + + /** @return le nom unique de l'option */ + public String key(); + + /** @return la liste des alias de l'option */ + public String[] alias(); + + /** @return le min */ + public int min(); + + /** @return le max */ + public int max(); + + /** @return les arguments connus pour cette option */ + public OptionArgumentDefinitionA[] arguments(); + + /** @return la définition originale */ + public String definition(); + + /** @return la description de la définition */ + public String description(); + } + + /** + * Annotation pour définir le paramétrage d'une définition d'option + * + * @author chemit + */ + @Retention(value = RetentionPolicy.RUNTIME) + + @Target(value = ElementType.ANNOTATION_TYPE) + + public static @interface OptionArgumentDefinitionA { + + /** @return la clef de l'argument */ + public String key(); + + /** + * @return le type de l'argument + * @see OptionArgumentType + */ + public OptionArgumentType type(); + + /** + * @return le type de la valeur de l'argument + * @see OptionArgumentValueType + */ + public OptionArgumentValueType valueType(); + + /** @return le min */ + public int min(); + + /** @return le max */ + public int max(); + + /** @return la position de l'argument (-1 si facultatif) */ + public int pos(); + + } +}