Package org.eclipse.jgit.transport

## Class ReceiveCommand

- java.lang.Object
- - org.eclipse.jgit.transport.ReceiveCommand

    public class ReceiveCommand
    extends Object

A command being processed by `BaseReceivePack`.

This command instance roughly translates to the server side representation of the `RemoteRefUpdate` created by the client.

### Nested Class Summary

Nested Classes
`static class` `ReceiveCommand.Result` Result of the update command.
`static class` `ReceiveCommand.Type` Type of operation requested.

### Constructor Summary

Constructors
`ReceiveCommand​(ObjectId oldId, ObjectId newId, String name)` Create a new command for `BaseReceivePack`.
`ReceiveCommand​(ObjectId oldId, ObjectId newId, String name, ReceiveCommand.Type type)` Create a new command for `BaseReceivePack`.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `execute​(BaseReceivePack rp)` Execute this command during a receive-pack session.
`static List<ReceiveCommand>` `filter​(List<ReceiveCommand> commands, ReceiveCommand.Result want)` Filter a list of commands according to result.
`String` `getMessage()`
`ObjectId` `getNewId()`
`ObjectId` `getOldId()`
`Ref` `getRef()`
`String` `getRefName()`
`ReceiveCommand.Result` `getResult()`
`ReceiveCommand.Type` `getType()`
`void` `setResult​(RefUpdate.Result r)` Set the result of this command.
`void` `setResult​(ReceiveCommand.Result s)` Set the status of this command.
`void` `setResult​(ReceiveCommand.Result s, String m)` Set the status of this command.
`String` `toString()`
`void` `updateType​(RevWalk walk)` Update the type of this command by checking for fast-forward.

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

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

### Constructor Detail

#### ReceiveCommand

    public ReceiveCommand​(ObjectId oldId,
                          ObjectId newId,
                          String name)

Create a new command for `BaseReceivePack`.

Parameters:
  `oldId` - the old object id; must not be null. Use `ObjectId.zeroId()` to indicate a ref creation.
  `newId` - the new object id; must not be null. Use `ObjectId.zeroId()` to indicate a ref deletion.
  `name` - name of the ref being affected.

#### ReceiveCommand

    public ReceiveCommand​(ObjectId oldId,
                          ObjectId newId,
                          String name,
                          ReceiveCommand.Type type)

Create a new command for `BaseReceivePack`.

Parameters:
  `oldId` - the old object id; must not be null. Use `ObjectId.zeroId()` to indicate a ref creation.
  `newId` - the new object id; must not be null. Use `ObjectId.zeroId()` to indicate a ref deletion.
  `name` - name of the ref being affected.
  `type` - type of the command.
Since:
  2.0

### Method Detail

#### filter

    public static List<ReceiveCommand> filter​(List<ReceiveCommand> commands,
                                              ReceiveCommand.Result want)

Filter a list of commands according to result.

Parameters:
  `commands` - commands to filter.
  `want` - desired status to filter by.
Returns:
  a copy of the command list containing only those commands with the desired status.
Since:
  2.0

#### getOldId

    public ObjectId getOldId()

Returns:
  the old value the client thinks the ref has.

#### getNewId

    public ObjectId getNewId()

Returns:
  the requested new value for this ref.

#### getRefName

    public String getRefName()

Returns:
  the name of the ref being updated.

#### getType

    public ReceiveCommand.Type getType()

Returns:
  the type of this command; see `ReceiveCommand.Type`.

#### getRef

    public Ref getRef()

Returns:
  the ref, if this was advertised by the connection.

#### getResult

    public ReceiveCommand.Result getResult()

Returns:
  the current status code of this command.

#### getMessage

    public String getMessage()

Returns:
  the message associated with a failure status.

#### setResult

    public void setResult​(ReceiveCommand.Result s)

Set the status of this command.

Parameters:
  `s` - the new status code for this command.

#### setResult

    public void setResult​(ReceiveCommand.Result s,
                          String m)

Set the status of this command.

Parameters:
  `s` - new status code for this command.
  `m` - optional message explaining the new status.

#### updateType

    public void updateType​(RevWalk walk)
                    throws IOException

Update the type of this command by checking for fast-forward.

If the command's current type is UPDATE, a merge test will be performed using the supplied RevWalk to determine if `getOldId()` is fully merged into `getNewId()`. If some commits are not merged the update type is changed to `ReceiveCommand.Type.UPDATE_NONFASTFORWARD`.

Parameters:
  `walk` - an instance to perform the merge test with. The caller must allocate and release this object.
Throws:
  `IOException` - either oldId or newId is not accessible in the repository used by the RevWalk. This usually indicates data corruption, and the command cannot be processed.

#### execute

    public void execute​(BaseReceivePack rp)

Execute this command during a receive-pack session.

Sets the status of the command as a side effect.

Parameters:
  `rp` - receive-pack session.
Since:
  2.0

#### setResult

    public void setResult​(RefUpdate.Result r)

Set the result of this command.

Parameters:
  `r` - the new result code for this command.

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`