Class GitCommand<T>

java.lang.Object
org.eclipse.jgit.api.GitCommand<T>
Type Parameters:
T - the return type which is expected from call()
All Implemented Interfaces:
Callable<T>
Direct Known Subclasses:
AddCommand, AddNoteCommand, ApplyCommand, ArchiveCommand, BlameCommand, CheckoutCommand, CherryPickCommand, CleanCommand, CommitCommand, CreateBranchCommand, DeleteBranchCommand, DeleteTagCommand, DescribeCommand, DiffCommand, GarbageCollectCommand, ListBranchCommand, ListNotesCommand, ListTagCommand, LogCommand, MergeCommand, NameRevCommand, RebaseCommand, ReflogCommand, RemoteAddCommand, RemoteListCommand, RemoteRemoveCommand, RemoteSetUrlCommand, RemoveNoteCommand, RenameBranchCommand, RepoCommand, ResetCommand, RevertCommand, RmCommand, ShowNoteCommand, StashApplyCommand, StashCreateCommand, StashDropCommand, StashListCommand, StatusCommand, SubmoduleDeinitCommand, SubmoduleInitCommand, SubmoduleStatusCommand, SubmoduleSyncCommand, TagCommand, TransportCommand, VerifySignatureCommand

public abstract class GitCommand<T> extends Object implements Callable<T>
Common superclass of all commands in the package org.eclipse.jgit.api

This class ensures that all commands fulfill the Callable interface. It also has a property repo holding a reference to the git Repository this command should work with.

Finally this class stores a state telling whether it is allowed to call call() on this instance. Instances of GitCommand can only be used for one single successful call to call(). Afterwards this instance may not be used anymore to set/modify any properties or to call call() again. This is achieved by setting the callable property to false after the successful execution of call() and to check the state (by calling checkCallable()) before setting of properties and inside call().

  • Field Details

    • repo

      protected final Repository repo
      The repository this command is working with
    • callable

      private AtomicBoolean callable
      a state which tells whether it is allowed to call call() on this instance.
  • Constructor Details

    • GitCommand

      protected GitCommand(Repository repo)
      Creates a new command which interacts with a single repository
      Parameters:
      repo - the Repository this command should interact with
  • Method Details

    • getRepository

      public Repository getRepository()
      Get repository this command is working on
      Returns:
      the Repository this command is interacting with
    • setCallable

      protected void setCallable(boolean callable)
      Set's the state which tells whether it is allowed to call call() on this instance. checkCallable() will throw an exception when called and this property is set to false
      Parameters:
      callable - if true it is allowed to call call() on this instance.
    • checkCallable

      protected void checkCallable()
      Checks that the property callable is true. If not then an IllegalStateException is thrown
      Throws:
      IllegalStateException - when this method is called and the property callable is false
    • call

      public abstract T call() throws GitAPIException

      Execute the command

      Specified by:
      call in interface Callable<T>
      Throws:
      GitAPIException