Interface CLI


public interface CLI
Interface defining a command-line interface (in other words a command such as 'run', 'ls'...). This interface is polyglot to ease reuse such as in Vert.x Shell.

A command line interface has a name, and defines a set of options and arguments. Options are key-value pair such as -foo=bar or -flag. The supported formats depend on the used parser. Arguments are unlike options raw values. Options are defined using Option, while argument are defined using Argument.

Command line interfaces also define a summary and a description. These attributes are used in the usage generation . To disable the help generation, set the hidden attribute to true.

Command Line Interface object does not contains "value", it's a model. It must be evaluated by a parser that returns a CommandLine object containing the argument and option values.

Author:
Clement Escoffier invalid input: '<'[email protected]>
See Also:
  • Method Details

    • create

      static CLI create(String name)
      Creates an instance of CLI using the default implementation.
      Parameters:
      name - the name of the CLI (must not be null)
      Returns:
      the created instance of CLI
    • create

      static CLI create(Class<?> clazz)
      Creates an instance of CLI from the given Java class. It instantiates the CLI object from the annotations used in the class.
      Parameters:
      clazz - the annotated class
      Returns:
      the created instance of CLI
    • parse

      CommandLine parse(List<String> arguments)
      Parses the user command line interface and create a new CommandLine containing extracting values.
      Parameters:
      arguments - the arguments
      Returns:
      the creates command line
    • parse

      CommandLine parse(List<String> arguments, boolean validate)
      Parses the user command line interface and create a new CommandLine containing extracting values.
      Parameters:
      arguments - the arguments
      validate - enable / disable parsing validation
      Returns:
      the creates command line
    • getName

      String getName()
      Returns:
      the CLI name.
    • setName

      CLI setName(String name)
      Sets the name of the CLI.
      Parameters:
      name - the name
      Returns:
      the current CLI instance
    • getDescription

      String getDescription()
      Returns:
      the CLI description.
    • setDescription

      CLI setDescription(String desc)
    • getSummary

      String getSummary()
      Returns:
      the CLI summary.
    • setSummary

      CLI setSummary(String summary)
      Sets the summary of the CLI.
      Parameters:
      summary - the summary
      Returns:
      the current CLI instance
    • isHidden

      boolean isHidden()
      Checks whether or not the current CLI instance is hidden.
      Returns:
      true if the current CLI is hidden,
      invalid @link
      {@link false
      } otherwise
    • setHidden

      CLI setHidden(boolean hidden)
      Sets whether or not the current instance of CLI must be hidden. Hidden CLI are not listed when displaying usages / help messages. In other words, hidden commands are for power user.
      Parameters:
      hidden - enables or disables the hidden aspect of the CI
      Returns:
      the current CLI instance
    • getOptions

      List<Option> getOptions()
      Gets the list of options.
      Returns:
      the list of options, empty if none.
    • addOption

      CLI addOption(Option option)
      Adds an option.
      Parameters:
      option - the option, must not be null.
      Returns:
      the current CLI instance
    • addOptions

      CLI addOptions(List<Option> options)
      Adds a set of options. Unlike setOptions(List)}, this method does not remove the existing options. The given list is appended to the existing list.
      Parameters:
      options - the options, must not be null
      Returns:
      the current CLI instance
    • setOptions

      CLI setOptions(List<Option> options)
      Sets the list of arguments.
      Parameters:
      options - the list of options, must not be null
      Returns:
      the current CLI instance
    • getArguments

      List<Argument> getArguments()
      Gets the list of defined arguments.
      Returns:
      the list of argument, empty if none.
    • addArgument

      CLI addArgument(Argument arg)
      Adds an argument.
      Parameters:
      arg - the argument, must not be null
      Returns:
      the current CLI instance
    • addArguments

      CLI addArguments(List<Argument> args)
      Adds a set of arguments. Unlike setArguments(List), this method does not remove the existing arguments. The given list is appended to the existing list.
      Parameters:
      args - the arguments, must not be null
      Returns:
      the current CLI instance
    • setArguments

      CLI setArguments(List<Argument> args)
      Sets the list of arguments.
      Parameters:
      args - the list of arguments, must not be null
      Returns:
      the current CLI instance
    • getOption

      Option getOption(String name)
      Gets an Option based on its name (short name, long name or argument name).
      Parameters:
      name - the name, must not be null
      Returns:
      the Option, null if not found
    • getArgument

      Argument getArgument(String name)
      Gets an Argument based on its name (argument name).
      Parameters:
      name - the name of the argument, must not be null
      Returns:
      the Argument, null if not found.
    • getArgument

      Argument getArgument(int index)
      Gets an Argument based on its index.
      Parameters:
      index - the index, must be positive or zero.
      Returns:
      the Argument, null if not found.
    • removeOption

      CLI removeOption(String name)
      Removes an option identified by its name. This method does nothing if the option cannot be found.
      Parameters:
      name - the option name
      Returns:
      the current CLI instance
    • removeArgument

      CLI removeArgument(int index)
      Removes an argument identified by its index. This method does nothing if the argument cannot be found.
      Parameters:
      index - the argument index
      Returns:
      the current CLI instance
    • usage

      CLI usage(StringBuilder builder)
      Generates the usage / help of the current CLI.
      Parameters:
      builder - the string builder in which the help is going to be printed
      Returns:
      the current CLI instance
    • usage

      CLI usage(StringBuilder builder, String prefix)
      Generates the usage / help of the current CLI.
      Parameters:
      builder - the string builder in which the help is going to be printed
      prefix - an optional prefix
      Returns:
      the current CLI instance
    • getPriority

      int getPriority()
      Returns:
      the CLI priority.
    • setPriority

      CLI setPriority(int priority)
      Sets the priority of the CLI.
      Parameters:
      priority - the priority
      Returns:
      the current CLI instance