@NotThreadSafe public interface

ScmCommandBuilder

implements CommandBuilder<B extends CommandBuilder<B>>
com.atlassian.stash.scm.ScmCommandBuilder<B extends com.atlassian.stash.scm.ScmCommandBuilder<B>>

Class Overview

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.

Summary

Public Methods
@Nonnull <T> Command<T> build(CommandOutputHandler<T> outputHandler)
Builds a Command which, when executed, will provide output to the provided outputHandler for processing.
@Nonnull B command(String command)
Sets the command to execute.
[Expand]
Inherited Methods
From interface com.atlassian.stash.scm.CommandBuilder
From interface com.atlassian.stash.scm.CommandBuilderSupport

Public Methods

@Nonnull public Command<T> build (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.

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

@Nonnull public B command (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