Class CommandLine.Model.ArgGroupSpec

java.lang.Object
nz.org.riskscape.picocli.CommandLine.Model.ArgGroupSpec
All Implemented Interfaces:
CommandLine.Model.IOrdered
Enclosing class:
CommandLine.Model

public static class CommandLine.Model.ArgGroupSpec extends Object implements CommandLine.Model.IOrdered
The ArgGroupSpec class models a group of arguments (options, positional parameters or a mixture of the two).
Since:
4.0
See Also:
  • Method Details

    • builder

      public static CommandLine.Model.ArgGroupSpec.Builder builder()
      Returns:
      a new ArgGroupSpec.Builder instance
    • builder

      Returns a new CommandLine.Model.ArgGroupSpec.Builder associated with the specified annotated element.
      Parameters:
      annotatedElement - the annotated element containing @Option and @Parameters
      Returns:
      a new ArgGroupSpec.Builder instance
    • exclusive

      public boolean exclusive()
      Returns whether this is a mutually exclusive group; true by default. If false, this is a co-occurring group. Ignored if validate() is false.
      See Also:
    • multiplicity

      public CommandLine.Range multiplicity()
      Returns the multiplicity of this group: how many occurrences it may have on the command line; "0..1" (optional) by default. A group can be made required by specifying a multiplicity of "1". For a group of mutually exclusive arguments, being required means that one of the arguments in the group must appear on the command line, or a MissingParameterException is thrown. For a group of co-occurring arguments, being required means that all arguments in the group must appear on the command line. Ignored if validate() is false.
      See Also:
    • validate

      public boolean validate()
      Returns whether picocli should validate the rules of this group: for a mutually exclusive group this means that no more than one arguments in the group is specified on the command line; for a co-ocurring group this means that all arguments in the group are specified on the command line. true by default.
      See Also:
    • order

      public int order()
      Returns the position in the options list in the usage help message at which this group should be shown. Groups with a lower number are shown before groups with a higher number. This attribute is only honored for groups that have a heading (or a headingKey with a non-null resource bundle value).
      Specified by:
      order in interface CommandLine.Model.IOrdered
    • heading

      public String heading()
      Returns the heading of this group (may be null), used when generating the usage documentation.
      See Also:
    • headingKey

      public String headingKey()
      Returns the heading key of this group (may be null), used to get the heading from a resource bundle.
      See Also:
    • parentGroup

      public CommandLine.Model.ArgGroupSpec parentGroup()

      Returns the parent group that this group is part of, or null if this group is not part of a composite.

    • subgroups

      public List<CommandLine.Model.ArgGroupSpec> subgroups()
      Return the subgroups that this group is composed of; may be empty but not null.
      Returns:
      immutable list of subgroups that this group is composed of.
    • isSubgroupOf

      public boolean isSubgroupOf(CommandLine.Model.ArgGroupSpec group)

      Returns true if this group is a subgroup (or a nested sub-subgroup, to any level of depth) of the specified group, false otherwise.

      Parameters:
      group - the group to check if it contains this group
      Returns:
      true if this group is a subgroup or a nested sub-subgroup of the specified group
    • typeInfo

      public CommandLine.Model.ITypeInfo typeInfo()
      Returns the type info for the annotated program element associated with this group.
      Returns:
      type information that does not require Class objects and be constructed both at runtime and compile time
    • getter

      public CommandLine.Model.IGetter getter()
      Returns the CommandLine.Model.IGetter that is responsible for supplying the value of the annotated program element associated with this group.
    • setter

      public CommandLine.Model.ISetter setter()
      Returns the CommandLine.Model.ISetter that is responsible for modifying the value of the annotated program element associated with this group.
    • scope

      public CommandLine.Model.IScope scope()
      Returns the CommandLine.Model.IScope that determines where the setter sets the value (or the getter gets the value) of the annotated program element associated with this group.
    • args

      Returns the options and positional parameters in this group; may be empty but not null.
    • requiredArgs

      public Set<CommandLine.Model.ArgSpec> requiredArgs()
      Returns the required options and positional parameters in this group; may be empty but not null.
    • positionalParameters

      public List<CommandLine.Model.PositionalParamSpec> positionalParameters()
      Returns the list of positional parameters configured for this group.
      Returns:
      an immutable list of positional parameters in this group.
    • options

      Returns the list of options configured for this group.
      Returns:
      an immutable list of options in this group.
    • synopsis

      public String synopsis()
      Returns the synopsis of this group.
    • synopsisText

      public CommandLine.Help.Ansi.Text synopsisText(CommandLine.Help.ColorScheme colorScheme, Set<CommandLine.Model.ArgSpec> outparam_groupArgs)

      Returns the synopsis of this group.

      Parameters:
      colorScheme - the color scheme to use for options and positional parameters in this group and subgroups
      outparam_groupArgs - all options and positional parameters in the groups this method generates a synopsis for; these options and positional parameters should be excluded from appearing elsewhere in the synopsis
      Returns:
      the synopsis Text
    • createLabelRenderer

      public CommandLine.Help.IParamLabelRenderer createLabelRenderer(CommandLine.Model.CommandSpec commandSpec)
    • messages

      public CommandLine.Model.Messages messages()
      Returns the Messages for this argument group specification, or null.
    • messages

      Sets the Messages for this ArgGroupSpec, and returns this ArgGroupSpec.
      Parameters:
      msgs - the new Messages value, may be null
      See Also:
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object