package bluej.groupwork;
import threadchecker.OnThread;
import threadchecker.Tag;
import java.io.File;
| An interface for teamwork providers - CVS, Subversion
|
| @author Davin McCall
|
public interface TeamworkProvider
{
| Get the name of this provider ("CVS", "Subversion", etc)
|*/
public String getProviderName();
/**
* Get a list of the different protocols this provider supports (as human-
* readable strings, not necessarily the same as what appears in the
| repository url)
|
public String [] getProtocols();
| Get the protocol string used internally to represent the given protocol
| @param protocol an index into the array returned by getProviderName()
|
public String getProtocolKey(int protocol);
| Get the label for a given protocol key.
|
public String getProtocolLabel(String protocolKey);
| Check that supplied information can be used to connect to a repository.
| This might take some time to execute.
|
@OnThread(Tag.Any)
public TeamworkCommandResult checkConnection(TeamSettings settings);
| Get a repository from the given settings
|
p.public Repository getRepository(File projectDir, TeamSettings settings) throws UnsupportedSettingException;
| Checks if the repository needs the name of the user
|
public boolean needsName();
| Checks if the repository needs an email
|
public boolean needsEmail();
| Retrieve the user's email address as configured in the version control metadata associated
| with a project, if any.
|
| @param projectPath path to the BlueJ project
| @return the configured email address, if any, or null
|
public String getYourEmailFromRepo(File projectPath);
| Opens the repository and returns the stored Name
| @param projectPath path to the BlueJ project
| @return String with the stored name in the repo.
|
public String getYourNameFromRepo(File projectPath) ;
| Get a repository's working copy version number. This method is intended
| to be used by SVN.
| @param projectDir project's directory.
| @return working copy version if applicable. -1 if not applicable, or if
| version cannot be found.
|
public default double getWorkingCopyVersion(File projectDir){
return -1;
}
| Is this a distributed version control system?
| @return
|
public boolean isDVCS();
}
top,
use,
map,
interface TeamworkProvider
. getProtocols
. getProtocolKey
. getProtocolLabel
. checkConnection
. getRepository
. needsName
. needsEmail
. getYourEmailFromRepo
. getYourNameFromRepo
. getWorkingCopyVersion
. isDVCS
60 neLoCode
+ 26 LoComm