# Package picocli

Provides classes and interfaces for the main picocli command line parsing and `autocompletion` functionality.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  CommandLine.Help.Ansi.IStyle | Defines the interface for an ANSI escape sequence.
  CommandLine.Help.IOptionRenderer | When customizing online help for `Option` details, a custom `IOptionRenderer` can be used to create textual representation of an Option in a tabular format: one or more rows, each containing one or more columns.
  CommandLine.Help.IParameterRenderer | When customizing online help for positional parameters details, a custom `IParameterRenderer` can be used to create textual representation of a Parameters field in a tabular format: one or more rows, each containing one or more columns.
  CommandLine.Help.IParamLabelRenderer | When customizing online usage help for an option parameter or a positional parameter, a custom `IParamLabelRenderer` can be used to render the parameter name or label to a String.
  CommandLine.IDefaultValueProvider | Provides default value for a command.
  CommandLine.IExceptionHandler | Deprecated Use `CommandLine.IExceptionHandler2` instead.
  CommandLine.IExceptionHandler2<R> | Classes implementing this interface know how to handle `ParameterExceptions` (usually from invalid user input) and `ExecutionExceptions` that occurred while executing the `Runnable` or `Callable` command.
  CommandLine.IFactory | Factory for instantiating classes that are registered declaratively with annotation attributes, like `CommandLine.Command.subcommands()`, `CommandLine.Option.converter()`, `CommandLine.Parameters.converter()` and `CommandLine.Command.versionProvider()`.
  CommandLine.IHelpCommandInitializable | Help commands that provide usage help for other commands can implement this interface to be initialized with the information they need.
  CommandLine.IHelpFactory | Creates the `CommandLine.Help` instance used to render the usage help message.
  CommandLine.IHelpSectionRenderer | Renders a section of the usage help message.
  CommandLine.IParseResultHandler | Deprecated Use `CommandLine.IParseResultHandler2` instead.
  CommandLine.IParseResultHandler2<R> | Represents a function that can process the `ParseResult` object resulting from successfully parsing the command line arguments.
  CommandLine.ITypeConverter<K> | When parsing command line arguments and initializing fields annotated with `@Option` or `@Parameters`, String values can be converted to any type for which a `ITypeConverter` is registered.
  CommandLine.IVersionProvider | Provides version information for a command.
  CommandLine.Model.IGetter | Customizable getter for obtaining the current value of an option or positional parameter.
  CommandLine.Model.ISetter | Customizable setter for modifying the value of an option or positional parameter.

- Class Summary
  Class | Description
  --- | ---
  AutoComplete | Stand-alone tool that generates bash auto-complete scripts for picocli-based command line applications.
  CommandLine | CommandLine interpreter that uses reflection to initialize an annotated domain object with values obtained from the command line arguments.
  CommandLine.AbstractHandler<R,T extends CommandLine.AbstractHandler<R,T>> | Abstract superclass for `CommandLine.IParseResultHandler2` and `CommandLine.IExceptionHandler2` implementations.
  CommandLine.AbstractParseResultHandler<R> | Command line parse result handler that returns a value.
  CommandLine.DefaultExceptionHandler<R> | Default exception handler that handles invalid user input by printing the exception message, followed by the usage message for the command or subcommand whose input was invalid.
  CommandLine.Help | A collection of methods and inner classes that provide fine-grained control over the contents and layout of the usage help message to display to end users when help is requested or invalid input values were specified.
  CommandLine.Help.ColorScheme | All usage help message are generated with a color scheme that assigns certain styles and colors to common parts of a usage message: the command name, options, positional parameters and option parameters.
  CommandLine.Help.Column | Columns define the width, indent (leading number of spaces in a column before the value) and Overflow policy of a column in a TextTable.
  CommandLine.Help.Layout | Use a Layout to format usage help text for options and parameters in tabular format.
  CommandLine.Help.TextTable | Responsible for spacing out `CommandLine.Help.Ansi.Text` values according to the `CommandLine.Help.Column` definitions the table was created with.
  CommandLine.Help.TextTable.Cell | Helper class to index positions in a `Help.TextTable`.
  CommandLine.HelpCommand | Help command that can be installed as a subcommand on all application commands.
  CommandLine.Model | This class provides a namespace for classes and interfaces that model concepts and attributes of command line interfaces in picocli.
  CommandLine.Model.ArgSpec | Models the shared attributes of `CommandLine.Model.OptionSpec` and `CommandLine.Model.PositionalParamSpec`.
  CommandLine.Model.CommandSpec | The `CommandSpec` class models a command specification, including the options, positional parameters and subcommands supported by the command, as well as attributes for the version help message and the usage help message of the command.
  CommandLine.Model.Messages | Utility class for getting resource bundle strings.
  CommandLine.Model.OptionSpec | The `OptionSpec` class models aspects of a named option of a command, including whether it is required or optional, the option parameters supported (or required) by the option, and attributes for the usage help message describing the option.
  CommandLine.Model.OptionSpec.Builder | Builder responsible for creating valid `OptionSpec` objects.
  CommandLine.Model.ParserSpec | Models parser configuration specification.
  CommandLine.Model.PositionalParamSpec | The `PositionalParamSpec` class models aspects of a positional parameter of a command, including whether it is required or optional, and attributes for the usage help message describing the positional parameter.
  CommandLine.Model.PositionalParamSpec.Builder | Builder responsible for creating valid `PositionalParamSpec` objects.
  CommandLine.Model.UnmatchedArgsBinding | This class allows applications to specify a custom binding that will be invoked for unmatched arguments.
  CommandLine.Model.UsageMessageSpec | Models the usage help message specification and can be used to customize the usage help message.
  CommandLine.ParseResult | Encapsulates the result of parsing an array of command line arguments.
  CommandLine.ParseResult.Builder | Builds immutable `ParseResult` instances.
  CommandLine.Range | Describes the number of parameters required and accepted by an option or a positional parameter.
  CommandLine.RunAll | Command line parse result handler that prints help if requested, and otherwise executes the top-level command and all subcommands as `Runnable` or `Callable`.
  CommandLine.RunFirst | Command line parse result handler that prints help if requested, and otherwise executes the top-level `Runnable` or `Callable` command.
  CommandLine.RunLast | Command line parse result handler that prints help if requested, and otherwise executes the most specific `Runnable` or `Callable` subcommand.

- Enum Summary
  Enum | Description
  --- | ---
  CommandLine.Help.Ansi | Provides methods and inner classes to support using ANSI escape codes in usage help messages.
  CommandLine.Help.Ansi.Style | A set of pre-defined ANSI escape code styles and colors, and a set of convenience methods for parsing text with embedded markup style names, as well as convenience methods for converting styles to strings with embedded escape codes.
  CommandLine.Help.Column.Overflow | Policy for handling text that is longer than the column width: span multiple columns, wrap to the next row, or simply truncate the portion that doesn't fit.
  CommandLine.Help.Visibility | Controls the visibility of certain aspects of the usage help message.

- Exception Summary
  Exception | Description
  --- | ---
  CommandLine.DuplicateOptionAnnotationsException | Exception indicating that multiple fields have been annotated with the same Option name.
  CommandLine.ExecutionException | Exception indicating a problem while invoking a command or subcommand.
  CommandLine.InitializationException | Exception indicating a problem during `CommandLine` initialization.
  CommandLine.MaxValuesExceededException | Exception indicating that more values were specified for an option or parameter than its `arity` allows.
  CommandLine.MissingParameterException | Exception indicating that a required parameter was not specified.
  CommandLine.MissingTypeConverterException | Exception indicating that an annotated field had a type for which no `CommandLine.ITypeConverter` was registered.
  CommandLine.OverwrittenOptionException | Exception indicating that an option for a single-value option field has been specified multiple times on the command line.
  CommandLine.ParameterException | Exception indicating something went wrong while parsing command line options.
  CommandLine.ParameterIndexGapException | Exception indicating that there was a gap in the indices of the fields annotated with `CommandLine.Parameters`.
  CommandLine.PicocliException | Base class of all exceptions thrown by `picocli.CommandLine`.
  CommandLine.TypeConversionException | Exception thrown by `CommandLine.ITypeConverter` implementations to indicate a String could not be converted.
  CommandLine.UnmatchedArgumentException | Exception indicating that a command line argument could not be mapped to any of the fields annotated with `CommandLine.Option` or `CommandLine.Parameters`.

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  CommandLine.Command | Annotate your class with `@Command` when you want more control over the format of the generated help message.
  CommandLine.Mixin | Fields annotated with `@Mixin` are "expanded" into the current command: `@Option` and `@Parameters` in the mixin class are added to the options and positional parameters of this command.
  CommandLine.Option | Annotate fields in your class with `@Option` and picocli will initialize these fields when matching arguments are specified on the command line.
  CommandLine.Parameters | Fields annotated with `@Parameters` will be initialized with positional parameters.
  CommandLine.ParentCommand | Fields annotated with `@ParentCommand` will be initialized with the parent command of the current subcommand.
  CommandLine.Spec | Fields annotated with `@Spec` will be initialized with the `CommandSpec` for the command the field is part of.
  CommandLine.Unmatched | Fields annotated with `@Unmatched` will be initialized with the list of unmatched command line arguments, if any.

## Package picocli Description

Provides classes and interfaces for the main picocli command line parsing and `autocompletion` functionality.

The `CommandLine` class is a one-file framework for creating Java command line applications with almost zero code. `CommandLine` is in a single file, so it can be included in source form. This lets users run picocli-based applications without requiring picocli as an external dependency.

## Classes and Interfaces for Defining a CommandSpec Model

## Classes Related to Parsing Command Line Arguments

## Class Diagram of the Picocli Exceptions

## Class Diagram of the CommandLine.Help API

Copyright © 2020. All rights reserved.