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