Class ReceiveCommand


  • public class ReceiveCommand
    extends java.lang.Object
    A command being processed by BaseReceivePack.

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

    • Constructor Detail

      • ReceiveCommand

        public ReceiveCommand​(ObjectId oldId,
                              ObjectId newId,
                              java.lang.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,
                              java.lang.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 java.util.List<ReceiveCommand> filter​(java.util.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 java.lang.String getRefName()
        Returns:
        the name of the ref being updated.
      • getRef

        public Ref getRef()
        Returns:
        the ref, if this was advertised by the connection.
      • getMessage

        public java.lang.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,
                              java.lang.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 java.io.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:
        java.io.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 java.lang.String toString()
        Overrides:
        toString in class java.lang.Object