Package org.eclipse.jgit.api

## Class SubmoduleAddCommand

- java.lang.Object
- - org.eclipse.jgit.api.GitCommand<T>
  - - org.eclipse.jgit.api.TransportCommand<SubmoduleAddCommand,​Repository>
    - - org.eclipse.jgit.api.SubmoduleAddCommand

All Implemented Interfaces:
  `Callable<Repository>`

    public class SubmoduleAddCommand
    extends TransportCommand<SubmoduleAddCommand,​Repository>

A class used to execute a submodule add command. This will clone the configured submodule, register the submodule in the .gitmodules file and the repository config file, and also add the submodule and .gitmodules file to the index.

See Also:
  Git documentation about submodules

### Field Summary

### Fields inherited from class org.eclipse.jgit.api.TransportCommand

`credentialsProvider, timeout, transportConfigCallback`

### Fields inherited from class org.eclipse.jgit.api.GitCommand

`repo`

### Constructor Summary

Constructors
`SubmoduleAddCommand​(Repository repo)`

### Method Summary

All Methods Instance Methods Concrete Methods
`Repository` `call()` Executes the `SubmoduleAddCommand` The `Repository` instance returned by this command needs to be closed by the caller to free resources held by the `Repository` instance.
`SubmoduleAddCommand` `setPath​(String path)` Set repository-relative path of submodule
`SubmoduleAddCommand` `setProgressMonitor​(ProgressMonitor monitor)` The progress monitor associated with the clone operation.
`SubmoduleAddCommand` `setURI​(String uri)` Set URI to clone submodule from
`protected boolean` `submoduleExists()` Is the configured already a submodule in the index?

### Methods inherited from class org.eclipse.jgit.api.TransportCommand

`configure, configure, self, setCredentialsProvider, setTimeout, setTransportConfigCallback`

### Methods inherited from class org.eclipse.jgit.api.GitCommand

`checkCallable, getRepository, setCallable`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### SubmoduleAddCommand

    public SubmoduleAddCommand​(Repository repo)

Parameters:
  `repo` -

### Method Detail

#### setPath

    public SubmoduleAddCommand setPath​(String path)

Set repository-relative path of submodule

Parameters:
  `path` - (with `/` as separator)
Returns:
  this command

#### setURI

    public SubmoduleAddCommand setURI​(String uri)

Set URI to clone submodule from

Parameters:
  `uri` -
Returns:
  this command

#### setProgressMonitor

    public SubmoduleAddCommand setProgressMonitor​(ProgressMonitor monitor)

The progress monitor associated with the clone operation. By default, this is set to `NullProgressMonitor`

Parameters:
  `monitor` -
Returns:
  this command
See Also:
  `NullProgressMonitor`

#### submoduleExists

    protected boolean submoduleExists()
                               throws IOException

Is the configured already a submodule in the index?

Returns:
  true if submodule exists in index, false otherwise
Throws:
  `IOException`

#### call

    public Repository call()
                    throws GitAPIException

Executes the `SubmoduleAddCommand` The `Repository` instance returned by this command needs to be closed by the caller to free resources held by the `Repository` instance. It is recommended to call this method as soon as you don't need a reference to this `Repository` instance anymore.

Specified by:
  `call` in interface `Callable<Repository>`
Specified by:
  `call` in class `GitCommand<Repository>`
Returns:
  the newly created `Repository`
Throws:
  `GitAPIException`