// The five files // Option.java // OptionGroup.java // Options.java // Unpublicized.java // OptionsDoclet.java // together comprise the implementation of command-line processing. package plume; import java.lang.annotation.*; /** * Indicates that the annotated field is set via command-line option. * Takes a single string argument that describes the option. The string * is in the format '[-c] [<type>] description': * <ul> * <li>'-c' is an optional single-character short name for the option. * <li>'<type>' is an optional description of the option type more * specific than its Java type (e.g., '<filename>' if the variable's * type is String). The less-than and greater-than symbols are required. * <li>'description' is a short (one-line) description of the option * suitable for a usage message. By convention. it does not end with * a period. The field's Javadoc comment should contain a longer * description appropriate for a manual or manpage. The Javadoc * comment often repeats something similar to the @Option * description. * </ul> * <p> * * The command-line options are processed by the {@link plume.Options} class. * For example usage, see the documentation for {@link plume.Options}. * @see plume.Options * @see plume.OptionGroup * @see plume.Unpublicized * @see plume.OptionsDoclet */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface Option { String value(); /** * For information about the this parameter, see the section on Option * aliases in {@link plume.Options}. */ String[] aliases() default {}; /** * For information about this parameter, see the section on hiding default * values strings in {@link plume.OptionsDoclet}. */ boolean noDocDefault() default false; }