org.eclipse.jgit.api
Class GitCommand<T>

java.lang.Object
  extended by 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, BlameCommand, CheckoutCommand, CherryPickCommand, CleanCommand, CommitCommand, CreateBranchCommand, DeleteBranchCommand, DeleteTagCommand, DiffCommand, ListBranchCommand, ListNotesCommand, ListTagCommand, LogCommand, MergeCommand, RebaseCommand, ReflogCommand, RemoveNoteCommand, RenameBranchCommand, ResetCommand, RevertCommand, RmCommand, ShowNoteCommand, StashApplyCommand, StashCreateCommand, StashDropCommand, StashListCommand, StatusCommand, SubmoduleInitCommand, SubmoduleStatusCommand, SubmoduleSyncCommand, TagCommand, TransportCommand

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 Summary
protected  Repository repo
          The repository this command is working with
 
Constructor Summary
protected GitCommand(Repository repo)
          Creates a new command which interacts with a single repository
 
Method Summary
abstract  T call()
          Executes the command
protected  void checkCallable()
          Checks that the property callable is true.
 Repository getRepository()
           
protected  void setCallable(boolean callable)
          Set's the state which tells whether it is allowed to call call() on this instance.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

repo

protected final Repository repo
The repository this command is working with

Constructor Detail

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 Detail

getRepository

public Repository getRepository()
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
Executes the command

Specified by:
call in interface Callable<T>
Returns:
T a result. Each command has its own return type
Throws:
GitAPIException - or subclass thereof when an error occurs


Copyright © 2012. All Rights Reserved.