Interface ScmCommandBuilder<B extends ScmCommandBuilder<B>>

All Superinterfaces:
CommandBuilder<B>, CommandBuilderSupport<B>

@NotThreadSafe public interface ScmCommandBuilder<B extends ScmCommandBuilder<B>> extends CommandBuilder<B>
Augments the CommandBuilder with SCM-related properties, still supporting creating free-form commands. SCM command builders are specifically intended to be used with binaries such as git, hg or svn, which provide a variety of different commands, each accepting different arguments and input and producing different output, to carry out their functionality.
  • Method Details

    • build

      @Nonnull <T> Command<T> build(@Nonnull CommandOutputHandler<T> outputHandler)
      Builds a Command which, when executed, will provide output to the provided outputHandler for processing.

      If no command has been set, the first argument is assumed to be the command. For SCMs with unified binaries that have no default command, if no command has been set and no arguments have been provided, implementations may throw an exception rather than executing the process which, most likely, will simply print usage information and exit.

      Specified by:
      build in interface CommandBuilderSupport<B extends ScmCommandBuilder<B>>
      Type Parameters:
      T - type for the builder
      Parameters:
      outputHandler - the handler to receive and process output from the command as it executes
      Returns:
      the built command
      Throws:
      IllegalStateException - if no command has been set and no arguments were provided
      NullPointerException - if the provided outputHandler is null
    • command

      @Nonnull B command(@Nonnull String command)
      Sets the command to execute.

      Most SCMs, such as git, hg or svn, have a single unified binary which expects the command to run as its first argument. This property separates that special command argument from the others, allowing other arguments to be cleared without clearing the command as well.

      Parameters:
      command - the SCM command to execute
      Returns:
      this
      Throws:
      IllegalArgumentException - if the provided command is empty or blank
      NullPointerException - if the provided command is null