package dmg.util.command;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Indicates that a field represents the entire command line.
*
* Applies to fields of types Args and String. In the former case, the entire
* argument and option set is injected. In the latter case, the entire command
* line in textual form is injected.
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface CommandLine
{
/**
* Whether to allow any option or only those enumerated by @Option annotations.
*/
boolean allowAnyOption() default false;
/**
* See {@link Option#valueSpec()}.
*/
String valueSpec() default "[-KEY[=VALUE]] ...";
/**
* Help string used to display the usage screen.
*
* <p>
* If this value is empty, the option will not be displayed
* in the usage screen.
*/
String usage() default "";
/**
* Category descriptor used to group options in help output.
*/
String category() default "";
}