code: public CommandLine setDefaultValueProvider(IDefaultValueProvider newValue) {
          getCommandSpec().defaultValueProvider(newValue);
          for (CommandLine command : getCommandSpec().subcommands().values()) {
              command.setDefaultValueProvider(newValue);
          }
          return this;
      }
docs: Sets a default value provider for the command and sub-commands
  <p>The specified setting will be registered with this {@code CommandLine} and the full hierarchy of its
  sub-commands and nested sub-subcommands <em>at the moment this method is called</em>. Sub-commands added
  later will have the default setting. To ensure a setting is applied to all
  sub-commands, call the setter last, after adding sub-commands.</p>
  @param newValue the default value provider to use
  @return this {@code CommandLine} object, to allow method chaining
  @since 3.6